Friday, 3 November 2017

microcontroller - Designing a large 7-Segment display


I'm trying to design a product that have the following features for mass production, and I'm asking from your experience, how to get the lowest price for the components, quality of the chips in terms of stability due to temperature (it must work in temps over 40°C)


I would like to control a 34-digit 7-segment display. Which way should I go? Just connect lots of switch transistors, and give them one data line each? Or are there easier ways, such as dedicated chips with low price?




  1. There are 6 groups of 4 digits

  2. 8 digits for the date

  3. 2 digits for a counter


I have been away from the Electronics industry since 2008, and I mostly need help to refresh my memory.


I'm keeping in the design that I also need to play mp3 files, read RF remote control, RTC,..etc. So I may run out of the pins because of controlling 34 digits using TDM.



Answer



You want to control 34 7-segment displays. In my experience/opinion you should not multiplex beyond about an 8:1 ratio, especially if you need bright displays and/or high \$T_A\$ operation. So let's try that (8 groups of up to 5 digits).


Let's suppose you want an average operating current of 15mA/segment. Say they are common anode displays..the low side (segment) drivers must be able to handle 120mA each (8 times 15mA). ULN2803A or ULN2003A will handle 8 or 7 segments. You would need one output per segment per set, or 40 outputs (assuming decimal points). That's ~5 chips. And another set of outputs to drive the drivers, ~5 74HC595s. There will have to be 40 current limiting resistors (perhaps arrays, if the power dissipation capability is acceptable).


You would need 8 high side drivers, each of which is capable of handling 8 * 5 * 120mA = 4.8A for 12.5% of the time. This could be handled with 8 P-channel MOSFETs driven from something like a 1-of-8 demultiplexer (with enable).



To control this from a micro, you have 3 bits to select the digit (1 of 8), and preferably an enable line. Before you turn the digit on, you shift out serially 40 bits (assuming decimal points) to the 74HC595s, strobe the data to the output and only then bring the appropriate set of 5 anodes high. Repeat this about every 1msec, sending different data to the segments depending on the digit, of course. So only 7 GPIO lines are required for all digits (up to 40 digits).


The above-mentioned parts are all very inexpensive and suited for mass production. You'll need about an 5A 5V (25W) supply using the numbers above (worst case with 34 * 8 * 0.015A illuminated at once is 4.1A).


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...