Winbond ISD1700 Voice Recorder


Closed Thread
Results 1 to 40 of 59

Hybrid View

  1. #1
    Join Date
    Mar 2009
    Location
    San Antonio, Tx
    Posts
    2


    Did you find this post helpful? Yes | No

    Default ISD17240PY Project

    Quote Originally Posted by milestag View Post
    I'm working on a modified version of the code, and hope to test it this weekend. I'll be driving the ISD1700 with a PIC16F684 and will post the final (working) code here. So far I am just checking all the commands against the datasheets.

    I do have a couple observations.

    The SetPlay command should only send SEVEN bytes. The END address is contained within TWO bytes (12 bits). That THIRD address byte (last byte sent) should be set to "0x00" as it is not supported in existing hardware. Same case for SetRecord.

    I finally figured out your use of "While CmdError." Had me stumped for a while, then it clicked. That's pretty clever. Though it looks like in some cases it will be better to check the "RDY" status (depending on which command you are sending).

    Also I did not realize that you can shift data into a byte using "status, c" carry bit in assembly. That is a very cool trick, indeed! Pretty much all of the other SPI examples I've found for PicBasic just used the Shiftout command which does not allow reading the Status bits.

    For anyone interested, the original ISD1700 development kit made by Windbond (which cost me $270 from Digikey last year) does NOT support batch recording of sounds. You have to set the Start and End address manually and record one sound at a time. Very tedious and not usable other than basic function tests. However... there is a NEW ISD1700 development kit made by Nuvoton and it DOES support batch programming of wav files. So it can function as a decent production programmer. Unfortunately it's going to cost me another $270 - ouch. I called tech support at Nuvoton and they confirmed the new software is NOT compatible with the original Winbond development hardware.

    You should also be aware that the Quadravox QV400D programmer never added support for the ISD1700 series. I still use it for programming ISD2560 chips, but they are starting to get expensive and much harder to find.
    --------
    I found a Development Board for $70 from Elusions Co.

    Dennis

  2. #2
    Join Date
    Nov 2006
    Location
    Murrieta, CA
    Posts
    62


    Did you find this post helpful? Yes | No

    Default Missing a Key element here ! !

    Thanks everyone (including Jerson) for the code for these ISD devices. However we only have half of the issue resolved.

    According to the code only "set_play" was included. How you gonna play something if it is not recorded?

    What i am getting at is... in my original post.....

    Show me a simple code to Record 5 messages using set_rec and play any of them back using Set_play... i.e. for the ISD17120

    Thanks again.
    There are 10 kinds of people. Those that know binary and those that do not.

  3. #3
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    4,172


    Did you find this post helpful? Yes | No

    Default

    Trying to understand how these devices work, I could not found a way to play e.g. the third message out of 10. How is the messages indexed? I mean if you record 10 messages, how can you know the position of each and how to play them?

    Are these devices confussing or am I too dumb to get it? Doh...

    Ioannis

  4. #4
    Join Date
    Nov 2006
    Location
    Murrieta, CA
    Posts
    62


    Did you find this post helpful? Yes | No

    Default Dont worry man !!

    Are these devices confussing or am I too dumb to get it? Doh...
    dude... these are very difficult devices... if you were to take the previous version the 2500 series... they were addressed very easily through and address bus. this SPI interface is a real headache.

    my OLED is far simpler to write code for than these chips.

    don't worry man this is exactly why i posted this thread.
    There are 10 kinds of people. Those that know binary and those that do not.

  5. #5
    Join Date
    Sep 2005
    Location
    Dayton, Ohio
    Posts
    72


    Did you find this post helpful? Yes | No

    Default

    Hang in there - it's not that bad. It's just that the ISD1700 has a TON of features and options so it's overwhelming to sort out the datasheets and find what you need.

    As soon as I am able, I will post some more code examples (PicBasic Pro and Liberty BASIC). I have all the record and playback functions working fine using SetPlay and SetRecord. The PIC firmware (PBPro) translates serial commands from the PC (Liberty BASIC Windows app) and controls the ISD1700 for record, play, erase, etc.

    Note: I use DEBUGIN so no UART or level shifter is required for the PC to PIC serial connection.

    As far as addressing, for SetRecord and SetPlay you must know the Start and End address of each sound. To make addressing easier, I just divided the ISD memory into predefined "blocks" of 1,2 or 4 seconds. This way I always know the Start address of each sound, and I use the EOM function so I don't need to know the exact length of the sound during playback (it stops automatically when it hits the EOM marker even in SetPlay). So I can replace (re-record) any sound as long as the new sound fits within the block.

    Tip: When you are using SetRecord, you must specify the Start and End address. But you can send a STOP command before the End address is reached and the ISD will place an EOM marker at that spot. If you enable the EOM function, playback will stop at the EOM regardless of the End address - even when you use SetPlay!! This is very cool, and it's what allowed me to use the pre-defined memory map without knowing the exact length of the sounds.

    It's not the most efficient use of available memory, but it's simple and the software/firmware does not have to calculate length of each wav file and write locations to a table. The table is pre-defined. It works well for my application (Laser Tag) as I just need to trigger a few short sound effects, and my customers want to be able to replace the stock sound effects with their own custom sounds.

    Jim
    Jim Robertson
    "MilesTag" DIY Lasertag
    www.lasertagparts.com/mtdesign.htm
    Dayton, Ohio

  6. #6
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    4,172


    Did you find this post helpful? Yes | No

    Default

    Oh boy! Its worst than I thought!

    What stupid memory administration these chips have!

    I hoped that there was an auto mark method for the start and stop. Well for the stop there is the EOM but what about the 3rd message for example? How can the PIC know where it resides?

    Stupid.

    Ioannis

  7. #7
    Join Date
    Sep 2005
    Location
    Dayton, Ohio
    Posts
    72


    Did you find this post helpful? Yes | No

    Default

    If you don't want to use direct addressing, then you can still operate in "pushbutton mode" with fast-forward to each message (same as ISD2560). This can be done with actual 'buttons', microcontroller I/O, or through SPI interface commands simulating tape recorder style operation.

    For my application, it is better to use the SPI and 'memory map' scheme. I need the fast response and instant triggering of sounds. But the ISD1700 is VERY flexible so you can still do it the 'old school' way.

    I do not have any code for controlling via pushbutton mode, so you would have to read up the datasheets on that. There is some documentation on migrating from ISD2560 to ISD1700 from Winbond (Nuvoton) that should help.

    Also they have a tech support email and phone. I used the phone tech support to solve some issues I ran into last year.

    There is always a learning curve with a device that has so much flexibility...

    Also you may want to check out the Cowlacious website, they have an ISD1700 recorder/player that may be more similar to what you are looking for.
    Jim Robertson
    "MilesTag" DIY Lasertag
    www.lasertagparts.com/mtdesign.htm
    Dayton, Ohio

  8. #8
    Join Date
    Nov 2006
    Location
    Murrieta, CA
    Posts
    62


    Did you find this post helpful? Yes | No

    Default Finally !!! Complete !

    Thanks everyone for helping me understand this device and the steps to get it coded. i have been playing with it all day recording messages and playing them back.

    Thanks Jerson, Brenon and Jim for simplifying and breaking it down so that i may understand it line by line. my problem i was using the SHIFTOUT commands in PBP and i was not working properly. i now know how much memory space i need for the 20, 1 to 4 second sounds that i will be using.

    Cheers to all of you... today is a good day.

    - Gary
    There are 10 kinds of people. Those that know binary and those that do not.

  9. #9
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    971


    Did you find this post helpful? Yes | No

    Default

    Hi Gary

    Good to know you have figured it out. You have yourself to thank for the patience and dedication to figure it out.

    Regards

  10. #10
    Join Date
    Jan 2014
    Posts
    84


    Did you find this post helpful? Yes | No

    Default Re: ISD17240PY Project

    I found the problem ..

    TRISC = %00000000

    Now all is ok !

Similar Threads

  1. ISD1700 series Winbond chipcorder
    By rickeybell in forum mel PIC BASIC Pro
    Replies: 12
    Last Post: - 21st March 2010, 07:13
  2. optical voice link
    By Macgman2000 in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 18th May 2008, 22:11
  3. Voice CODEC
    By Ron Marcus in forum Off Topic
    Replies: 0
    Last Post: - 15th May 2005, 20:28

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts