Re: Voice annunciated test box circuitry

From: Robert Monsen (rcsurname_at_comcast.net)
Date: 02/22/05


Date: Mon, 21 Feb 2005 18:18:53 -0800

John Fields wrote:
> On Mon, 21 Feb 2005 14:09:21 -0800, Robert Monsen
> <rcsurname@comcast.net> wrote:
>
>
>>John Fields wrote:
>>
>>>On Mon, 21 Feb 2005 12:02:40 -0800, Robert Monsen
>>><rcsurname@comcast.net> wrote:
>>>
>>>
>>>
>>>>John Fields wrote:
>>>>
>>>>
>>>>>On Sun, 20 Feb 2005 20:13:34 -0800, Robert Monsen
>>>>><rcsurname@comcast.net> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>and a partridge in a pair tree.
>>>>>>
>>>>>>Actually, those winbond SPI voice chips are very cheap,
>>>>>
>>>>>
>>>>>---
>>>>>Got a part number and a price?
>>>>>---
>>>>>
>>>>>
>>>>
>>>>The ISD400x looks promising. It's $7 at futurlec
>>>>
>>>>http://www.futurlec.com/ICSFOthers.shtml
>>>>
>>>>I'm sure you can get it far cheaper in volume, although fururlec tends
>>>>to have alarmingly good prices for certain things. I'm guessing one
>>>>could sample a few as well. It's available it in PDIP, which is nice for
>>>>quick prototypes.
>>>>
>>>>I reread the datasheet last night. It does have an internal amplifier
>>>>that can be used for a headset. The datasheet has a schematic for a
>>>>small system using it.
>>>>
>>>>I was hoping they have a version with a prerecorded 'voice model' doing
>>>>digits, but, sadly, they don't appear to.
>>>
>>>
>>>---
>>>2ea HC164 @ 0.50........ $1.00
>>>4ea HC163 @ 0.50........ $2.00
>>>1ea 27C256.............. $1.50
>>>8ea 1% 1/8W R........... $0.25
>>>1ea LM386............... $0.75
>>> -----
>>>Total, Digi-Key......... $5.50
>>>
>>>Approximately...
>>>
>>
>>Where is the DAC? Are you planning on using the EEPROM to bitbang a
>>filter to get the right sounds? I've seen tricks like that for the PIC.
>
>
>
>
> +------+
> | Q7|----[128R]--+
> | | |
> | Q6|----[64R]---+
> | | |
> | Q5|----[32R]---+
> | | |
> | Q4|----[16R]---+
> | | |
> | Q3|----[8R]----+
> | | |
> | Q2|----[4R]----+
> | | |
> | Q1|----[2R]----+
> | | |
> | Q0|----[R]-----+---|+\
> +------+ | >--+--
> 27C256 +---|-/ |
> | |
> +--[R1]---+
> |
> [R2]
> |
> GND
>
>
>

Your resistors are set up for Q0 outputting MSB. Do Windows sound
programs save bits this way? I've seen gang programmers can be set up to
reverse the order of bits.

Do you know what kind of fidelity you'll get with that setup? Not that
it matters much for digit output, but you want it to be intelligible.

>>Also, you don't include the tools for creating the sounds and burning
>>them into the eeprom. He only wants a few of them. The winbond chip has
>>a facility to do it itself.
>
>
> ---
> The tools for creating the sounds are a microphone, a PC sound card,
> and whatever editing software came with the card or with Windows. I
> already have an EPROM programmer but if the OP doesn't, oh, well...
> He'll have to work out all the addresses and do a lot of bit-banging
> on the SPI interface to set up the addresses to do the recording, so
> he'll have to, essentially, build a programmer and program each chip
> in real time unless he buys a Winbond programmer.
> ---

Or, he could use a simple onboard programmer, and perhaps a simple uC
program to copy from one device to another using the analog ports. I
don't think you can gang-program the winbond chip, unfortunately, and it
doesn't look like the SPI interface allows programming the flash. It
really is designed to be a voice recorder playback toy.

>
>
>>You could probably clock the counters using an output from the uC. The
>>PIC chips, have the option of outputting the instruction clock on one of
>>their pins. However, I'm guessing that you would need to divide down the
>>output somewhat.
>>
>>One advantage of the SPI interface for the winbond chip is that it's
>>probably less than a day of work to get working for both record and
>>send, and has a facility to cue at any point for either recording or
>>playback. I noticed you are using a counter to clock the eeprom. How are
>>you going to start at particular digit values? I suppose you could
>>preset the counters using microprocessor pins, but that means you need
>>extra uC pins and traces for that.
>
>
> ---
> You load the starting address of the digit to be spoken into the shift
> registers with two µC IOs, then broadside load it into the counters
> (and through the counters into the EPROM) and clock the counters 'n'
> times until the digit data at those addresses has exited the EPROM.
> ---
>
>
>>Maybe outputting a couple of high address pins from the microprocessor
>>would work. That way, you could divide the address space up into 16
>>chunks, and easily clock through any of them. All you would need is a
>>reset line for the counters, and a clock source.
>
>
> ---
> You don't need to reset the counters, you need to load them with the
> address corresponding to the start of the audio data for the peculiar
> digit needed and then clock them until the digit data has been played
> back.
>

You could save the shift registers by using 4 bits to set the high
address bits, dividing your eeprom up into 16 equal sections. Program
the digits at those sections, set those bits, and perform a reset when
you want to start playing a section. It's a couple more uC pins, and
it's less flexible, obviously, but it saves the shift registers. That's
a buck!

> To make it work you only need three µC IOs; SERIAL DATA for the shift
> register, ASYNCHRONOUS PARALLEL LOAD for the counter, and CLOCK for
> both of them. With a little judicious programming and counter
> selection, the clock line can be shared with the shift register.
>

You can get the ISD4002 winbond chips from digikey for $5.08 each if you
buy 25.

You can get the 20 second verion (which is probably enough for 10
digits) for $3.27, although it may be more difficult to cue the output,
since it doesn't have an SPI interface.

There are also dedicated sound output chips that use external eeprom,
similar to your scheme, but they seem designed for higher end systems.

-- 
Regards,
   Robert Monsen
"Your Highness, I have no need of this hypothesis."
     - Pierre Laplace (1749-1827), to Napoleon,
        on why his works on celestial mechanics make no mention of God.


Relevant Pages

  • Re: Voice annunciated test box circuitry
    ... already have an EPROM programmer but if the OP doesn't, oh, well... ... >You could probably clock the counters using an output from the uC. ... You load the starting address of the digit to be spoken into the shift ...
    (sci.electronics.basics)
  • Re: Any way to upgrade CMOS clock??
    ... Any way to upgrade CMOS clock?? ... Timecode is a good start, but it needs a sequence number added to it, at ... You claim to be a programmer and make wild assumptions. ...
    (alt.sys.pc-clone.dell)
  • Re: Programmer for AT24C64
    ... microcontroller, therefore there is no possibility of using the RS232 ... So the options left open to me are to make a device that programs the EEPROM ... I think Jim's idea about asking the factory write a .hex file that changes ... Remove the EEPROM from the product and install it in a programmer. ...
    (comp.arch.embedded)
  • Re: PIC16F628: whats the addr of EEPROM?
    ... -> Where in the docs is the starting address of EEPROM defined?? ... used to describe the address space of the data EEPROM to the programmer. ... PIC programmer to describe the data for the data EEPROM. ...
    (comp.arch.embedded)
  • Re: PIC16F628: whats the addr of EEPROM?
    ... The data EEPROM of pics ... > used to describe the address space of the data EEPROM to the programmer. ... > PIC programmer to describe the data for the data EEPROM. ...
    (comp.arch.embedded)