Winbond ISD1700 Voice Recorder


Closed Thread
Results 1 to 40 of 59

Hybrid View

  1. #1
    Starfix's Avatar
    Starfix Guest


    Did you find this post helpful? Yes | No

    Default

    Hello all,
    first, I want to thank you. With your help I was able to quickly understand ISD1700 functionnality (really bad datasheet !!).

    I made a system that can speak numerous messages: Not full messages are recorded, but words.
    Then I compose my message, sending play for words one after other.

    My question is: How to copy memory from one ISD to another ? Is there a digital way via SPI commands ? I don't want to record my voice on each ISD !!!

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


    Did you find this post helpful? Yes | No

    Default

    You have 2 choices.

    1. Buy the evaluation kit (programmer) that Nuvoton makes. The new design supports "batch" programming. The old version from Winbond does not, so make sure it's the new one made by Nuvoton.

    2. Build your own custom programmer. I did this for my laser tag system by embedding the "recorder" functions in my PIC firmware. SO I also wrote a simple Windows application (in Liberty Basic) that plays wav files and sends commands to the PIC telling it to START or STOP recording. It also sends address commands.

    To make it easier, I set up a memory map of pre-defined addresses for the ISD1700. Then I just make sure that the wav files are not longer than each memory location. Since the wav files will usually be shorter than the memory slot, I send a STOP command after the PC plays the wav file. The ISD1700 will insert a EOM marker. When the ISD plays the file it will stop playback at the EOM (the EOM feature must be enabled).

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

  3. #3
    Join Date
    Mar 2009
    Posts
    11


    Did you find this post helpful? Yes | No

    Default C Code, PIC SPI Settings

    Hi Guys,

    I started a project using the PIC16F887 and a WINBOND ISD1700 Chip. I've been struggling to get the SPI communications working.

    In googling and searching through forums I came across this post.

    In reading through your posts and some of the code you have posted, it appears that you guys "bit banged" the ISD commands. Have any of you used the specific hardware on your PICs? Do you know if this is possible?

    I've used the PIC16F887 before with assembly so it's not that big of a deal to try and read your code, but I was wondering if any of you did any work in C? This is my first project using MPLAB and the HI-Tech C compiler.

    Thanks, Alan

  4. #4
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    4,132


    Did you find this post helpful? Yes | No

    Default

    Hmm, then you are at wrong forum. This is about PicBasic Pro compiler. Not the C compiler of any company.

    Ioannis

  5. #5
    Join Date
    Mar 2009
    Posts
    11


    Did you find this post helpful? Yes | No

    Default My Apologies

    Ioannis,

    I'm not a fan of those who stray off topic and don't pay attention to forum etiquette. More of my concern was whether or not any of you were able to use your PICs and the actual SPI hardware in them. Or did all of you "bit bang" to communicate?

    Thanks, Alan

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


    Did you find this post helpful? Yes | No

    Default

    The best code so far is at post #30 by RFEFX.

    It uses SPI.

    Ioannis

  7. #7
    Join Date
    May 2013
    Posts
    1


    Did you find this post helpful? Yes | No

    Default Re: Winbond ISD1700 Voice Recorder

    I implemented hardware SPI using a PIC 16F877A and an ISD1740. I do it with ASM, but you can translate it to PICBasic if needed.

    I'm posting it here because is the most extensive thread in the subject I could found, and I haven't found information about how to do it by hardware anywhere. I haven't finish yet, but I will probably forget to post it here late, so here goes what I've done so far.

    As PIC SPI is Msb -> Lsb and ISD1700 is Lsb -> Msb, everything is inverted.
    Code:
    ISD commands:
    
    ;ISD led active on all the commands, for debugging, set bit 3 to 0 to disable ISD led flashing
    
    CONSTANT SND_CMD_PU        = b'10001000'
    CONSTANT SND_CMD_SET_PLAY  = b'00001001'
    CONSTANT SND_CMD_SET_REC   = b'10001001'
    CONSTANT SND_CMD_PD        = b'11101000'
    CONSTANT SND_CMD_CLR_INT   = b'00101000'
    CONSTANT SND_CMD_WR_APC2   = b'10101110'
    CONSTANT SND_CMD_WR_NVCFG  = b'01101010'
    CONSTANT SND_CMD_RD_STATUS = b'10101000'
    
    ;PIC ISD ports and pins
    
    		CONSTANT	SND_PUERTO_ES			=	PORTC
    		CONSTANT	SND_CONTROL_ES			=	TRISC
    		CONSTANT	SND_PIN_E			=	.4
    		CONSTANT	SND_PIN_S			=	.5
    		CONSTANT	SND_PUERTO_CLK			=	PORTC
    		CONSTANT	SND_CONTROL_CLK			=	TRISC
    		CONSTANT	SND_PIN_CLK			=	.3
    		CONSTANT	SND_PUERTO_SS			=	PORTA
    		CONSTANT	SND_CONTROL_SS			=	TRISA
    		CONSTANT	SND_PIN_SS			=	.5
    
    
    ;SPI configuration and activation
    
    		;PORTS config
    		banksel		SND_CONTROL_ES
    		BCF		SND_CONTROL_ES,SND_PIN_S
    		BSF		SND_CONTROL_ES,SND_PIN_E
    		banksel		SND_CONTROL_CLK
    		BCF		SND_CONTROL_CLK,SND_PIN_CLK
    		banksel		SND_PUERTO_ES
    		BCF		SND_PUERTO_ES,SND_PIN_S
    		banksel		SND_PUERTO_CLK
    		BSF		SND_PUERTO_CLK,SND_PIN_CLK
    		;SPI config
    		banksel		PIE1
    		BSF		PIE1,SSPIE		;enable interrupt
    		banksel		SSPSTAT
    		MOVLW		b'00000000'
    		MOVWF		SSPSTAT
    		;SSPM3:0 = 0001 = Fosc/16
    		banksel		SSPCON
    		MOVLW		b'00110001'
    		MOVWF		SSPCON
    		;use SS to signal command start/stop
    		banksel		SND_CONTROL_SS
    		BCF		SND_CONTROL_SS,SND_PIN_SS
    		banksel		SND_PUERTO_SS
    		BSF		SND_PUERTO_SS,SND_PIN_SS
    
    ;SPI usage if not using interrupts
    
    ;active waiting for SPI transmission to end
    snd_debug_esperar
    		banksel		SSPSTAT
    		BTFSS		SSPSTAT,BF
    		GOTO		snd_debug_esperar
    		BCF		SSPSTAT,BF
    		RETURN
    
    ;SPI without interrupts, to verify it works
    snd_debug
    		;it has to be already configured, I'm ignoring ISD response
    		banksel		SND_PUERTO_SS
    		BCF		SND_PUERTO_SS,SND_PIN_SS ;start command
    		banksel		SSPBUF
    		MOVLW		SND_CMD_PU ;first byte
    		MOVWF		SSPBUF
    		CALL		snd_debug_esperar
    		banksel		SSPBUF
    		MOVFW		SSPBUF
    		CLRW
    		MOVWF		SSPBUF
    		call		snd_debug_esperar
    		banksel		SND_PUERTO_SS
    		BSF		SND_PUERTO_SS,SND_PIN_SS
    		;enviar un SET_PLAY
    		pagesel		snd_debug
    		banksel		SND_PUERTO_SS
    		BCF		SND_PUERTO_SS,SND_PIN_SS
    		MOVLW		SND_CMD_SET_PLAY
    		banksel		SSPBUF
    		MOVWF		SSPBUF
    		CALL		snd_debug_esperar
    		banksel		SSPBUF
    		MOVFW		SSPBUF
    		CLRW
    		MOVWF		SSPBUF
    		call		snd_debug_esperar
    		banksel		SSPBUF
    		MOVFW		SSPBUF
    		MOVLW		b'0000100' ; 0x10 inverted
    		MOVWF		SSPBUF
    		call		snd_debug_esperar
    		banksel		SSPBUF
    		MOVFW		SSPBUF
    		MOVLW		0x00
    		MOVWF		SSPBUF
    		call		snd_debug_esperar
    		banksel		SSPBUF
    		MOVFW		SSPBUF
    		MOVLW		b'0111111' ; 0x7E inverted
    		MOVWF		SSPBUF
    		call		snd_debug_esperar
    		banksel		SSPBUF
    		MOVFW		SSPBUF
    		MOVLW		0x00
    		MOVWF		SSPBUF
    		call		snd_debug_esperar
    		banksel		SSPBUF
    		MOVFW		SSPBUF
    		CLRW
    		MOVWF		SSPBUF
    		call		snd_debug_esperar
    		banksel		SND_PUERTO_SS
    		BSF		SND_PUERTO_SS,SND_PIN_SS
    		return
    Sorry for the code format, I couldn't find a way to post it properly formatted.

    DAvid

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


    Did you find this post helpful? Yes | No

    Default

    Yes, bit-banged.

    The ISD1700 chips are tempermental to say the least. I have it working fine in my project, but there are some undocumented problems with this chip. Overall the documentation is inconsistent/poor and difficult to find current versions. I found out after a year of using this chip that I had the outdated datasheets.

    Also, the development systems were redesigned when it moved from Winbond to Nuvoton. And the Winbond hardware does not work with Nuvoton software, so if you were unlucky to buy the early ones, you get to buy it all over again (or you just design your own). I like this chip, but Nuvoton does not help with the problems.

    As for SPI, I have worked with the ISD1700 and another SPI device connected to the same PIC micro. Each device uses the complete opposite SPI communications format. The logic levels are inverted and the MSB/LSB is reversed on each device. I don't know which way is "standard" for SPI. So you may want to try changing MSB/LSB data and try inverting various signals (clock, data, chip select).

    Otherwise the code examples in previous posts on this thread should be a good head start.
    Jim Robertson
    "MilesTag" DIY Lasertag
    www.lasertagparts.com/mtdesign.htm
    Dayton, Ohio

  9. #9
    Join Date
    Aug 2006
    Location
    Omaha, Nebraska USA
    Posts
    263


    Did you find this post helpful? Yes | No

    Exclamation

    Quote Originally Posted by milestag View Post
    The ISD1700 chips are tempermental to say the least. I have it working fine in my project, but there are some undocumented problems with this chip. Overall the documentation is inconsistent/poor and difficult to find current versions. I found out after a year of using this chip that I had the outdated datasheets.
    They are indeed temperamental. The timing information in the data sheets may be off by as much as 25%, and this is different from one device model to the next.

    I've been working with one for the past 2 weeks . . .
    Russ
    N0EVC, xWB6ONT, xWN6ONT

    "Easy to use" is easy to say.

Similar Threads

  1. ISD1700 series Winbond chipcorder
    By rickeybell in forum mel PIC BASIC Pro
    Replies: 12
    Last Post: - 21st March 2010, 06:13
  2. optical voice link
    By Macgman2000 in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 18th May 2008, 21:11
  3. Voice CODEC
    By Ron Marcus in forum Off Topic
    Replies: 0
    Last Post: - 15th May 2005, 19: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