Shop OBEX P1 Docs P2 Docs Learn Events
How to use the sixteen segment displays on the Prop. Prof. Dev. Board? — Parallax Forums

How to use the sixteen segment displays on the Prop. Prof. Dev. Board?

jmspaggijmspaggi Posts: 629
edited 2010-04-27 06:53 in Propeller 1
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

Comments

  • MagIO2MagIO2 Posts: 2,243
    edited 2010-04-21 21:49
    You're right, only one digit can be turned on at a time. And yes, you have to do time multiplexing for driving all. But that's common, as you'd need a lot more lines if you don't do it this way: 16 x 6

    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
  • hover1hover1 Posts: 1,929
    edited 2010-04-21 22:46
    You might want to consider a support chip for multiplexing the LED's. A good program for the Propeller and the MAX7419 chip attached. Uses three pins.

    Jim
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2010-04-21 22:47
    jmspaggi said...
    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???

    JM

    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.
  • David BDavid B Posts: 592
    edited 2010-04-21 23:46
    I breadboarded a multiplexer circuit on my PPDB that cut down on the pins needed, but the problem then became that the multiplexing chips were using up too much breadboard space!

    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.
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-22 12:53
    Thanks all for your replies.

    @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
  • hover1hover1 Posts: 1,929
    edited 2010-04-22 13:06
    Sorry for the typo. Yes, MAX7219 is the correct part.
    You might try ebay for a cheaper price. I got six chips for $2.00 each.
    Jim
    jmspaggi said...
    Thanks all for your replies.

    @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]

  • jmspaggijmspaggi Posts: 629
    edited 2010-04-22 13:18
    Hi 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
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-22 14:45
    This has been pondered at times in the Sandbox. I've researched all the driver chips, and I'm still thinking that the most efficient driver chip ($/segment) might actually be the propeller. 16 high side higher current drivers (?transistor ?? mosfet). Low side collectors for each segment - these might even be 595 or 373 or 374 latches with no drivers. Turn on segment 1. Turn on the relevant characters. Turn off segment 1 and turn on segment 2. Turn on the relevant characters. 1:16 drive ratio regardless of how many displays there are.

    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
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-22 15:46
    Sorry, I'm not very good in electronic, but why do we need current drivers? What is that used for? Can't we just plug the segments to the propeller?

    For the latches, can't we do without that and "simply" loop through all the digits? Will that blink to much?

    Thanks,

    JM
  • MagIO2MagIO2 Posts: 2,243
    edited 2010-04-22 17:14
    The segment displays have only one cathode ( or anode - depending on the type ) to switch it on in general and 17 lines for switching on each segment. Each of the segments will consume some currency ... say 10mA is enough for a given display. In case you light all segments you have 17 x 10 mA which will go through the cathode. Thats by far to much for a propeller pin.

    That's why you need a driver for the cathode. Transistor ... MOSFET ... or a dedicated driver IC.
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-22 17:44
    Ok! Got it! Segments are common cathode. I have a big bunch of BC557 and BC547. Can I use them? Which one? Else, is there any IC with 6 drivers you can recommand me?

    Thanks,

    JM
  • hover1hover1 Posts: 1,929
    edited 2010-04-22 17:47
    The use of the MAX7219 chip not only manages the current for you, (and protects the Prop), it also does all the multiplexing for you. Less code to write.

    I remember the thread Dr A talks of. I have to go back and re-read it.

    Jim
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-22 18:07
    The problem with MAX7219 is that it's driving only 8 segments per digit. I have 17 segments. So I would like to "play" with those 17 segments.

    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
  • hover1hover1 Posts: 1,929
    edited 2010-04-22 19:04
    Yea.. the MAX6954 is the way to go, but at $24.00 each, it's a little expensive. And only available in surface mount.
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-22 19:58
    It seems to be a pretty good component, but it's quite expensive... It's the price of 3 Propellers. Also, surface mount is really not an option for me. But they gave me an idea [noparse];)[/noparse] They have a "blink" option which allow all the digits to blink. I will add such option in my prop driver, but per digit. No necessary for all of them. Also, they need 4 wires for it. I will need only 1 and use serial communication. The protocol will look like the DC-16 one (www.parallax.com/dl/docs/prod/motors/DC16_Manual_v1.0.pdf so I can put all my DC-16 and displays in the same wire...

    JM
  • eod_punkeod_punk Posts: 146
    edited 2010-04-24 20:29
    jmspaggi said...

    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...

    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
  • hover1hover1 Posts: 1,929
    edited 2010-04-24 20:48
    I don't think the cost of the chip was the problem, but the shipping to Spain that jmspaggi had a problem with.
  • w8anw8an Posts: 176
    edited 2010-04-24 21:52
    If you're going to devote a prop to the display process, there is an obex object to do the job.

    Sixteen Segment Display
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-25 00:51
    Hi,

    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
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-25 02:48
    Given the price of the dedicated driver chips, I am still thinking the propeller might be the best driver chip of all.

    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
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-25 17:48
    Why so many BCs?

    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
  • jazzedjazzed Posts: 11,803
    edited 2010-04-25 20:53
    jmspaggi said...
    Why so many BCs?

    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
    @JM, I wouldn't worry about it too much. However, since the total current required for 16 LED's will be closer to 250ma, one or more of your transistors may eventually burn out (assuming 3.3VDC, 0.7VDC per LED drop, and 150 Ohms series resistor per LED according to the PPDB schematic). The actual current on average will likely be much less than spec unless you decide to test how long you can keep all LEDs per segment continuously lit.

    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.
  • w8anw8an Posts: 176
    edited 2010-04-26 00:41
    The professional development board has 150ohm resistors on the anode of each of the LED segments. It is recommended you put these current limiters in your circuit as well.
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-26 00:59
    Thanks Steve, Thanks W8an. I think I got it.

    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
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-26 03:47
    Some displays use very efficient leds. As a quick test, try running a led at 1ma (experiment with resistors but it will probably be about 1k). It might well be bright enough in which case you would not need any transistors at all. Just the dropping resistors.

    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
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-26 12:22
    That's why I love this forum! we always found very valuable information. I will never have though about the 2 options...

    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
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-26 13:27
    The IRFZ44N is overkill for this solution and a bit expensive for what it would do. Save them for other things - turning on big motors, car headlamp bulbs, pumps etc.

    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
    1018 x 550 - 121K
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-26 15:18
    Perfect. Thanks. So I will kepp my BCs. Also, since they are only "on" 1/6th of the time, does it reduce the power asked to the BC?

    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
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-27 06:53
    Yes, 1/6th of the time is 1/6th of the heat. I'd still try to keep under the 100mA for a BC5xx transistor. It is very easy to use another transistor if it goes over that.

    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
    1016 x 638 - 78K
    1022 x 598 - 99K
Sign In or Register to comment.