Electronics > Projects, Designs, and Technical Stuff
16 bit to 4 digit 7 segment decoder
obiwanjacobi:
I have a (couple of) 4 digit 7 segment display module (NSB3881) and want to use it to plug into data and address buses of hobby projects to display bus values. The 7seg unit is common cathode and has all the segment lines (a-g/dp) connected over all 4 digits.
I want to make a self-contained module with a 0.1" header that can be plugged into breadboards (5V logic).
So I started to try to program a 2-digit version into a GAL22V10 (winCupl) but the segment mapping table generated too many product terms.
My other thought was to use a cheap micro (preferably Atmel/AVR - don't know PIC and don't have the programmer for it) to read the bus signals and output the 7seg data for each digit. It would need 16 (bus data) + 8 (a-g/dp) + 4 (digit common cathodes) = 28 IO pins. (would like a reset and an optional latch too => 30 IO pins).
Then I thought that perhaps there is a(nother) clever way to solve this problem and came here for inspiration.
Suggestions?
ChristofferB:
The simplest (and oldschoolest) way of making a logic look up table like that is using Eproms or Eeproms. You'll need an eprom per segment though.
--chris
obiwanjacobi:
--- Quote from: ChristofferB on December 19, 2019, 10:38:26 am ---The simplest (and oldschoolest) way of making a logic look up table like that is using Eproms or Eeproms. You'll need an eprom per segment though.
--- End quote ---
Ouch. I know this method and would like to avoid it. I would also need logic to multiplex the 4 digits.
I want to keep the chip count down and the module as small as possible.
Meantime I remembered 5V cpld's like the Xilinx XC9572XL (*). Not too expensive and should be a one chip solution...
*) Edit: this is a 3V3 version! See this post for the correct info.
Ed.Kloonk:
Youtuber Ben Eater uses an arduino to do the dirty work. Get one with enough I/O pins.
@ 10m 55s
Buriedcode:
You could use a 40-pin Arduino, like the MajorCore or MightyCore. Atmega8515 isn't that expensive, and has 35 IO. Only suggesting Arduino because it'll be slightly quicker to develop with, but if you're already set up with AVRs then might as well go bare metal.
Navigation
[0] Message Index
[#] Next page
Go to full version