??? 03/04/05 02:42 Modified: 03/04/05 03:01 Read: times |
#89066 - A big address decoder and many drivers! Responding to: ???'s previous message |
You have not said much about your project; there are some important things to consider, such as how much current your LEDs require, and what level of performance you require.
If your current needs are modest, say 20mA per LED or so or less, you might have great luck with a handful Xilinx XC95xxx CPLDs, configured to serve as combination address decoder/output latch/driver. I mention these in particular, due to the fact that they operate at 5V like your (presumably) DS89C430, and have a pretty impressive output drive capability (they can sink 24 mA per channel). If your current requirements are more substantial, you will need to use dedicated drivers. At the simplest level, 74xx573 latches could be used to do the job; they offer the convenient benefit of serving as your output latches as well. If you pick one of the logic families with more powerful output drive (i.e, ABT), you could be looking at an ability to sink 64 mA per channel. If you need more current than that, you'll need to consider dedicated output driver chips. There are lots of these around, from the lowly ULN2803 to much more advanced, higher performance devices. Note that in this scenario and the previous scenario (the one with the '573s), we are talking about a lot of chips, and you would have to be careful to maintain the integrity of your busses. If you can tolerate somewhat lower performance, you could always adopt a serial solution, and enjoy less risk of bus issues; there are a number of chips expressly intended to serve as LED drivers that can be controlled by a serial bus such as SPI or I2C. Dallas Semiconductor makes some of these, although I am sure there are others. Note that your DS89C430 does not have SPI or I2C though. Thus, you would either need to bit-bang the serial interface (costing you even more performance), use a parallel to serial bridge of the proper type, or move to a derivative that has hardware support for the type of serial bus in question. Using just about any of these approaches, depending on your application, you could also use a matrix-based configuration of drivers. In so doing, you greatly reduce the amount of decoder/latch/driver hardware required. But, there is a tradeoff: you give up the ability to have truly arbitrary combinations of LEDs lit at any given instant. Still, thanks to persistence of vision, which simply stated means that the human eye cannot detect brief interruptions in emissions from a light source, you can get away with this approach in most cases. Finally, I should point out that there has recently been an extensive discussion of a problem exceedingly similar to yours; you might want to check out Big I/O expansion. I have summarized some of the key points mentioned there, but it is still worth a look as it is by no means an exhaustive summary; there is a great deal of information in this thread. Good luck. --Sasha Jevtic |
Topic | Author | Date |
Driving LED matrix 16x16x3 with 89C430 | 01/01/70 00:00 | |
Look at Allegro's UCN5833 | 01/01/70 00:00 | |
A big address decoder and many drivers! | 01/01/70 00:00 | |
Re Sahsa | 01/01/70 00:00 | |
serial, Sasha![]() | 01/01/70 00:00 |