0
\$\begingroup\$

I want to have and EEPROM with the address connected to a counter. For my purposes, this(https://eater.net/datasheets/28c256.pdf) EEPROM will suffice. However, I need a counter to go along with it. I highly doubt that there exsists a 15 bit counter, but I found this(ti.com/lit/ds/symlink/sn74lv8154.pdf) counter. However, it has an irritating byte-wide output, whereas I need 2 byte-wide. Does anyone know any other counter or another way to have a counter with an eeprom? Thanks!

\$\endgroup\$
  • \$\begingroup\$ What are you trying to do with the counter and the EEPROM? Are you trying to cycle through addresses? You might not need a specific counter IC to accomplish counting \$\endgroup\$ – dsizzle83 Mar 9 at 19:12
  • 1
    \$\begingroup\$ The usual MSI way is to use two 8-bit counters, either synchronous or not, depending on your requirements. \$\endgroup\$ – Spehro Pefhany Mar 9 at 19:22
  • \$\begingroup\$ diszzle I am trying to play back an audio sample stored in the EEPROM. What do you mean I don't need a specific IC? Don't I need to hook up something to the address of the EEPROM? \$\endgroup\$ – Nikos Mar 10 at 0:32
1
\$\begingroup\$

I highly doubt that there exsists a 15 bit counter

No, but you could concatenate several smaller counters to get the number of bits you need.

The 74HC393 has two 4 bit counters in it. Two of these ICs could give you up to 16 bits. To do it you connect the highest output of each 4 bit counter to the clock input of the next one, like this:-

enter image description here

Since the counters advance on high to low clock transitions, as each counter rolls over from 7 to 0 the next counter gets clocked. This is called a 'ripple' counter because the clock 'ripples' through from one counter to the next.

The more stages there are the longer it takes for the clock to ripple through all of them. The 74HC393 has a maximum propagation delay time of 78 ns from clock input to the Q3 output and 63 ns to the Q2 output. With 3 stages of 4 bits and 1 stage of 3 bits the total delay time for 15 bits should be (78 x 3) + 63 = 297 ns or less.

When the counter is transitioning from one count to the next the EEPROM address is not stable. The EEPROM itself takes up to 150 ns to output correct data, so you should wait at least 150 + 297 = 447 ns before clocking the EEPROM data into your DAC. An easy way to get this timing would be to clock DAC data on the low to high clock transition (assumes clock frequency is 1/(0.447*2) = 1.1 MHz or lower).

| improve this answer | |
\$\endgroup\$
3
\$\begingroup\$

XY problem. Lots of questions that need some clarifications.

First, know this. 8-bit (let alone 16-bit) parallel NOR flash is old technology now. It's been replaced by serial NOR in embedded applications. There are versions of serial NOR that are multiple bits (4 and 8) and very high speed (100-200MB/s), so there isn't a compelling reason to continue to support a full address bus along with the data pins anymore.

Second, you're playing an audio sample. Where are you sending it? An audio DAC? Why then do you need 16-bit parallel? Audio DACs, even high-end ones, are serial, using a format called I2S.

Anyway... my suggestion is to use a serial NOR flash with a small microcontroller to read your data and forward to your device. Operation is simple: issue a block read to the serial flash and the data comes out as a sequential stream; which you can then send where you wish - as I2S to a DAC, say. There are lots of Arduino projects that do exactly that.

If you still feel you need 16-bit parallel (again, why?), you can allocate a port on your device and post bytes to low/high halves. If you choose a micro with a lot of pins, you can post your 16-bit values to a pair of 8-bit GPIO ports.

| improve this answer | |
\$\endgroup\$
1
\$\begingroup\$

Back in the day it was common to use a CPU as a 16-bit counter in your case of playing audio from a ROM chip. Wire the CPU data bus for a NOP instruction and the address bus will count up. You can use a modern MCU as the counter too. You can get a eval board with USB programmer/debugger and a 200 MHz MCU that has built-in 12-bit DAC and 2 megabytes of Flash for about 20 euros/dollars so it can be used for the whole thing with more memory and better sound quality unless you specifically want to tinker with old technology.

| improve this answer | |
\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.