How to use the sixteen segment displays on the Prop. Prof. Dev. Board?
jmspaggi
Posts: 629
Hi,
I'm wondering how should we use the sixteen segment displays embeded in the Propeller Professional Development Board?
Based on the schematic, it seems that only one at the time can be turned on. So I think that mean we have to do all of them in a loop pretty quickly, but for the segments, how should that beem done? Do I really need to use 23 pins of my propeller to display 6 digits???
Is there any other better solution?
Thanks,
JM
I'm wondering how should we use the sixteen segment displays embeded in the Propeller Professional Development Board?
Based on the schematic, it seems that only one at the time can be turned on. So I think that mean we have to do all of them in a loop pretty quickly, but for the segments, how should that beem done? Do I really need to use 23 pins of my propeller to display 6 digits???
Is there any other better solution?
Thanks,
JM
Comments
What can you do:
Use em as 7 segment displays ... or use shift registers for driving the segments and the digits ...
I don't know how much current one segment draws, so please be aware that all segments switched on might draw to much current for a propeller pin on the line switching on a digit.
Post Edited (MagIO2) : 4/21/2010 9:55:40 PM GMT
Jim
This was the way I did it, but it does become at bit I/O intensive...
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Are you Propeller Powered? PropellerPowered.com
Visit the: PROPELLERPOWERED SIG forum kindly hosted by Savage Circuits.
Those LEDs are a perfect application for an auxiliary outboard to be designed with driver software that takes just a pin or two from the propeller to control the LEDs.
@hover1: You are talking about MAX7419, but I think you meant 7219 [noparse];)[/noparse] I looked at 7419 datasheet and I'm not sure it will help me [noparse];)[/noparse]
So based on all the comments above, look like the main issue will be the wiring which will request a lot. I will have been nice
For the components, 7219 seems to be perfect, but I don't have one. And if I want to order one, the shipping will cost the price of a Propeller...
Another option seems to be with 2xMAX7233 (2x4 digits). There is no 6 digits. But again, this will cost more than a propeller, even without the shipping costs.
So I think I will "simply" use a dedicated propeller for that and build the code to make a fully customaziable controller (configure the pins you are using, the number of digits, etc.). With only 1 wire. Instead of a bunch for the other solutions. At the end, this option should be able to handle 11 digits with 17 segments.
I will work on that and post the result I'm able to complet it [noparse];)[/noparse]
Thanks again all for your replies.
JM
You might try ebay for a cheaper price. I got six chips for $2.00 each.
Jim
I checked eBay. But the best price I found was $4/component, shipping included. And I have to get 5. Which I don't really need. On DigiKey, it's $4.9/component +8$ shipping. Ok, it's not a big costc compared to the board price [noparse];)[/noparse] But since I already have another propeller at home, will be easier for me to just use it, and will allow me to learn/practice Spin... I will first do the driver in Java to have it working quickly, then try to migrate it in Spin...
JM
I need to do some experiments with mark space ratios and brightness. I have 40 sixteen segment displays from Futurlec sitting in the shed and they look absolutely gorgeous with individual segments lit up.
I need to make a measurements regarding how these displays might sit on a pCB. And a few more tests on the breadboard. But it would be fun to have "HELLO WORLD" on 16 segment displays.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
For the latches, can't we do without that and "simply" loop through all the digits? Will that blink to much?
Thanks,
JM
That's why you need a driver for the cathode. Transistor ... MOSFET ... or a dedicated driver IC.
Thanks,
JM
I remember the thread Dr A talks of. I have to go back and re-read it.
Jim
I totally agree with you that 7219 will be a way easier solution. Less wires, less code (already done), etc. But I prefer to try first to use the 17 segments, and I will go back on 8 if I see that I'm not able to drive them.
Also, based on my first investigations, a fully dedicated prop will be able to handle 11 digits with 17 segments to 20 digits with 8 segments. With all the options between the two. Total of digits + segments need to be less or equal than 28. Much more flexible. But way more time consuming, I agree.
JM
JM
You can get some free samples of the 7219 and most other chips Maxim makes here.
www.maxim-ic.com/samples
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
There is no problem that can't be solved with a suitable amount of explosives!
EOD Memorial
Sixteen Segment Display
Yes, I'm going to devote a prop to the display. So thanks A LOT for the link. I will first do a java version because it's way easier for me. But after that I will continue with the spin one. I will mostly reuse what has already been done. But I will had a lot of configuration options, a serial communication, etc. I want any microcontroller to be able to use this devoted prop simply by sending him instructions over a wire serial communication.
Thanks again,
JM
I think there are 14 or 16 segments and you can add a decimal point if you want. So ok, 17 segments. There are 32 pins on the propeller and for simplicity, let's devote the two standard pins to serial. So 32-2-17 means we have 13 pins for common cathode drivers so up to 13 displays. Lots of combinations there.
jmspaggi says they have lots of 547s and 557s. They are good for up to 100mA which might be perfect here.
Ok, on the high side drivers, we have 16 BC557s. There is a standard 'high side driver' circuit using a BC547 and a BC557, where the 547 pulls the base of the 557 low. So each segment driver is two transisitors. 32 transistors.
Then on the cathode drivers, a 547 and a dropping resistor. Say we go for 12 displays, that is 12 more transistors and 12 resistors.
This is not very expensive at all. Those transistors and resistors might only be $2 or less.
Another thought. If you drive the displays from 3V and you use high side BC557s, I think you could drive the 557s directly off the propeller pins (with a dropping resistor to the base). Low is 'on' and High is 'off'. So now it is 16+12=28 transistors. Back of envelope calculations with the 547/557 current gain properties and current drain for all the prop pins and I think it all works out ok.
To make things really easy, 1k to each base, and 16 BC557s for the high side and 12 BC547s on the low side, so that is 28 transistors, 28 resistors, and then the current dropping resistors - ? 220R on each segment so another 12 resistors.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Post Edited (Dr_Acula) : 4/25/2010 3:05:29 AM GMT
I already putted 6 BC547 to the cathode side. So when I put the Prop at 1, I have the cathode linked to the ground. I have also already linked all the anodes to the prop's pins. So far, it's working pretty well. But am I going to burn something? I have not put any resostir anywhere. So should I put 17 resistors somewhere? If I put a resistor on each anode, do I need to put some on the BC side too?
Thanks,
JM
Cheers.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
May the road rise to meet you; may the sun shine on your back.
May you create something useful, even if it's just a hack.
150ohm / anode = 22mA / anode. So if the 17 are on, I have 374mA. The BC547 can only support 100mA. So it will burn if put all the LEDs on.
So. I have also a big bunch of IRFZ44N. www.datasheetcatalog.org/datasheet/philips/IRFZ44N_1.pdf
I have absolutly no clue what this component should be used for. But look like it can drain 49A! That might be way enought, but can I replace a BC547 with a IRFZ44N?
Regarding the speed, IRFZ44 turn-on delay is 18ns, raise time 50ns, turn-off 40ns and fall time 30ns... Which mean a complet cycle in 128ns... BC547 is 300Mhz, which mean 3.3ns... Maybe to slow?
Else, which transistor should I use? Maybe I will be better to buy something instead of burning all my components? [noparse];)[/noparse]
JM
Next question - do you put dropping resistors on the high side or the low side.
You can do either and this was the concept we were discussing over in the sandbox.
Consider two seven segment displays. The simple concept is you light up a number with the appropriate segments and connect the cathode of display 1 to ground. Then you light up display 2. Then repeat. Each display is on 50% of the time.
This works well for small numbers of displays. But if you had 20 displays thne the display is only 1/20th of the brightness. There are two solutions and you can use either or both
1) increase the drive current with transistors/mosfets
2) drive the display differently.
For 7 segment displays and 20 of these displays you can turn on segment A on all the displays where you want that segment on, then segment B etc. This way each display is only 1/7th the brightness instead of 1/20th, plus you can add as many displays as you like and the brightness does not decrease.
If you drive each display one at a time then the dropping resistors should be on the high side.
If you drive each segment one at a time then the dropping resistors should be on the low side.
The mistake not to make is to drive each display one at a time and put the dropping resistors on the low side. Then the brightness of different letters/numbers changes.
For 16 segment displays, there are less components driving each display one at a time, up to when you have 16 displays. With more than 16 displays, it uses less components to drive each segment one at a time.
I hope that makes sense!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
On the PPDB, the resistor is on the segments side. So I have 17 resistores. which mean it's designed to display digit by digit if we want to keep a constant brightness.
For the brightness, I will try to display only 2 digits to compare with 6 digits.
Also, any clue what I can do with and IRFZ44N?
Thanks again for sharing.
JM
Ok, 17 segments. What is the most segments that will ever be on at the same time? 8 maybe. 10mA per segment comes in under 100mA so you could use a BC549 on each of the cathodes.
There are transistors for every current range. BC337/BC328 are good for up to 800mA.
Only two letters is a bit hard to display things. 8 or 16 or even 20 would be a lot better. The ones I have are from here www.futurlec.com/LEDDisp.shtml scroll down to near the bottom, $1.30 for a dual 14 segment display.
I'm designing a library part for Eagle for this dual 14 segment display. See photo below.
And a webpage for a project for this display (in Japanese but the photos are still very helpful) pc.watch.impress.co.jp/docs/column/musashino_proto/20090709_300483.html
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Post Edited (Dr_Acula) : 4/26/2010 2:39:42 PM GMT
There is already 6 digits on the prop board, so I will play with 6 digits first, but make the driver compatible for more or less digits if required.
JM
I have a crazy idea of building a 16x2 display using a propeller, with a standard RS232 plug to connect to the CP/M board (or any other board for that matter). These modules from futurlec are only $1.30 for two, so that is only 16 modules. It would depend on board space as much as anything.
I finished building the library and started wiring things up. It seems to connect up as expected.
I paid $125 to Eagle and that gives me a board twice as big as the demo 'beer coaster' sized board. I can fit a display 12 characters by 4 lines, plus a propeller chip and hopefully the support transistors as well. I'm thinking about 595s or 373s or 374s for the column drivers as there are not enough pins on a prop chip for 48 characters.
Back of envelope calculations for 1 prop plus some 50c support chips still suggests the propeller is the cheapest display driver option.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Post Edited (Dr_Acula) : 4/27/2010 2:24:23 PM GMT