Update: this is now a subproject, moved to #DYPLED
They say when you have a hammer, everything looks like a nail !
The multiply unit has been replaced with a 1M×16 parallel Flash device. Only 17 address bits are used but when you find cheap trays of these parts, you don't care.
Since I successfully programmed some of those chips, I see other places where it could be used and one of them is none other than the infamous 7-segments LED decoder...
Overkill is fun but the question of price remains. The system with Shottky diodes+74HC154+74HC273+pull-up resistors costs about 0.5$ (in bulk). This can drive one digit, and can be multiplexed for maximum reuse.
Multiplexing can be done with a couple of 74HC153 (dual MUX4) to select one nibble in a 16-bits word, so it adds about 0.3$. Furthermore there is only one 7-bits output and this increases the multiplexing speed.
Now let's suppose a 1M×16 Flash chip costs $1, that's marginally more expensive than the previous circuit. There are 16 outputs which can drive 2 digits. 16 inputs can read a whole bus at once, no need of an input multiplexer. Another address bit can be used to switch between the high bit and low bit so a couple of (cheap) MOSFETs is enough to drive a full 28-segments display (an oscillator is required though, 4 phases is better to reduce phantom lights).
Some more dirty thoughts come while drawing the schematics. For example there are 2 unused outputs. These could be used to drive individual MOSFET gates and save an inverter. The /OE (output enable) would act as a "blank" input and there is only a need for an external oscillator (1-20KHz).
The unused inputs now can serve for sequencing the transistors and even add some luminosity control. The 4 remaining address bits are tied to a 4-bits running counter : the slowest signal goes to A19 which selects the high/low part of the display, the others control the blanking time. Only the code 000b will output data so the LED's duty cycle can be 2×, 4× or 8× according to which of the inputs are grounded.
These features depend on the availability of the running binary counter but it comes "for free" on the P1A/B boards (a wide range of frequencies is provided).
Smart coding will also help: the leading zeros can be removed without extra wiring/electronics.
Dimming will also come from the control of the power supply's voltage, the parallel Flash should work between 2.7 and 3.3V but going too low will show individual LED mismatches. I don't even use current limiting resistors, this saves soldering time (and there is digital dimming). I didn't show the decoupling caps.
Routing will determine which Flash pin goes where. The above diagram shows that each half is assigned to the Data output but this is not necessary. Routing can be easier if a Dout pin goes to adjacent segments.
What other feature can be extracted from this circuit without adding a part ?
Update: The BLANK signal should go to /CE, not /OE, and the MOSFET's pull-down resistors are not needed since the LEDs will not be driven anyway.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
OK this is turning into a full subproject: after #PICTIL here comes #DYPLED
Are you sure? yes | no
Now, who can beat the $1/pc price for 1M×16 Flash or PROM ? :-D (it could also work with 128K×16 with external circuits)
Are you sure? yes | no
I found big lots at 1/2$/pc on eBay... But I'm broke at this moment :-/
Are you sure? yes | no
and with "a bit more money" I could get them for 1/3$ but I'd have to recoup by selling the rest or assembled modules...
Are you sure? yes | no
Forget CPLDs and FPGAs, use FlashLogic!
Are you sure? yes | no
Use whatever is cheapest and does the work ;-) In other words, that's a hack !
Are you sure? yes | no