Forum Menu




 


Log in Problems?
New User? Sign Up!
AVR Freaks Forum Index

Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
iwoloschin
PostPosted: Sep 17, 2012 - 04:53 PM
Hangaround


Joined: May 11, 2011
Posts: 337
Location: Boston, MA

I have a project I'm starting on, which at the core is a clock. To prototype, I'm just using a Teensy++ on a breadboard, so I'd like to start with some small off the shelf 7 segment displays (at least 6 digits). Eventually, the final project will require large (at least 6 inches, and maybe 12 inches tall) digits, as I'll need to be able to see them clearly from at least 100 feet away (these may wind up being a custom part I make with a *LOT* of LEDs).

For now, I'm trying to figure out the best way to drive a bunch of these displays. Here's a few generic ideas I've found...

1) Multiplexing. It's the cheapest, all done in software, and most power efficient, but I'm not sure if it will scale well to the larger display, as that will definitely require a separate driver. Also, it may take up too much CPU time, though not certain.
2) Latches. I'm not hurting for I/O pins, so I could just set up some pins (a quick calculation suggests something like 16 pins total) and just use the latches to drive the displays. This is pretty simple, but it requires 8 latches per digit, which winds up being a lot of hardware.
3) SPI/I2C driver. Doesn't require a lot of I/O pins, though maybe a bit more CPU time. The driver shouldbe able to drive the prototype directly, or hook into a higher powered driver for the larger display.
4) Other ideas...?

I'm leaning towards using SPI/I2C driver, as I think that's probably the easiest. If I do that, then I can use something like this http://adafruit.com/products/879 for prototyping, and then if I build my own driver for the larger display, just copy the I2C commands. I'm not sure if this actually makes sense though, or if there is a better way to do this that I'm totally missing?

FYI, this will be mounted on a wall with external power, so power draw is not a concern (within reason, I don't want a nuclear power plant to run this thing Laughing). There will also be a Wiznet (or similar) SPI ethernet adapter, and probably an SD card on the SPI bus as well.
 
 View user's profile Send private message  
Reply with quote Back to top
david.prentice
PostPosted: Sep 17, 2012 - 06:29 PM
10k+ Postman


Joined: Feb 12, 2005
Posts: 20564
Location: Wormshill, England

Whatever happens, you will need external drivers of some description to provide enough current/ voltage for a monster display.
An SPI chip seems a good idea.

For development purposes, you can just multiplex small 7-segment modules with the AVR pins. Multiplexing takes very few AVR cycles. Of course an external SPI chip is even easier.

David.
 
 View user's profile Send private message Send e-mail  
Reply with quote Back to top
clawson
PostPosted: Sep 17, 2012 - 08:49 PM
10k+ Postman


Joined: Jul 18, 2005
Posts: 71281
Location: (using avr-gcc in) Finchingfield, Essex, England

Maybe not the most professional solution but the following will introduce you to "charlieplexing":

http://atmega32-avr.com/charlieplexing- ... ontroller/
http://www.instructables.com/id/Charlie ... /?ALLSTEPS


_________________
 
 View user's profile Send private message  
Reply with quote Back to top
iwoloschin
PostPosted: Sep 17, 2012 - 09:14 PM
Hangaround


Joined: May 11, 2011
Posts: 337
Location: Boston, MA

Is there anything to worry about with chaining too many peripherals onto the SPI or I2C buses? I've used both in the past, but I've only ever had a single peripheral on the bus at any one time. I know that in theory you can have a bunch of devices connected, I'm looking for more practical experience here.

Thanks!
 
 View user's profile Send private message  
Reply with quote Back to top
iwoloschin
PostPosted: Sep 17, 2012 - 09:18 PM
Hangaround


Joined: May 11, 2011
Posts: 337
Location: Boston, MA

clawson wrote:
Maybe not the most professional solution but the following will introduce you to "charlieplexing"


Ha, I'm familiar with charlieplexing, trying to avoid that since I'm not pin limited (yet!) and I'm thinking that's not the type of design I'd want on a scaled up monster LED display... Smile

That's a neat application to charlieplexing 7 segment displays though!
 
 View user's profile Send private message  
Reply with quote Back to top
bobgardner
PostPosted: Sep 17, 2012 - 10:37 PM
10k+ Postman


Joined: Sep 04, 2002
Posts: 23987
Location: Orlando Florida

There is a max chip that will drive 64 seven seg displays, but it costs something. How many of these you building?

_________________
Imagecraft compiler user
 
 View user's profile Send private message Send e-mail Visit poster's website 
Reply with quote Back to top
gchapman
PostPosted: Sep 18, 2012 - 12:41 AM
Raving lunatic


Joined: Jan 09, 2007
Posts: 2777
Location: Arlington, Texas, u.S.A.

iwoloschin wrote:
2) Latches. I'm not hurting for I/O pins, so I could just set up some pins (a quick calculation suggests something like 16 pins total) and just use the latches to drive the displays. This is pretty simple, but it requires 8 latches per digit, which winds up being a lot of hardware.
Intersil ICM7228 uses a byte-wide small SRAM for 8 digits.
 
 View user's profile Send private message  
Reply with quote Back to top
jayjay1974
PostPosted: Sep 18, 2012 - 01:50 AM
Raving lunatic


Joined: Oct 30, 2002
Posts: 5768
Location: The Netherlands

For a monstrous design like this I'd hesitate about using SPI, which really is a board level comms thingy.

I presume you will have quite a few large boards with relatively long connections between them.

I would consider using one MCU per digit communicating to a master MCU with a RS485 bus.

And no multiplexing either, too many wires required. With RS485 you only need power, ground and A/B which you wire in as a daisychain with no wires dedicated to a single digit. You could even string 32+ of them together with just four wires Smile (And a massive power supply)
 
 View user's profile Send private message  
Reply with quote Back to top
jgmdesign
PostPosted: Sep 18, 2012 - 03:56 AM
Raving lunatic


Joined: Apr 20, 2007
Posts: 7533
Location: Long Island New York

Take a look at this:
http://www.etteam.com/product/14A06.html
I have used them and they work great. The driver is a MAX7219 like BobG mentioned.

YOu can also get them from Futurlec if you can wait as they are slow delivering.

Here is an appnote with code:
http://lutheran.ro/download/hobby/futur ... T-SDP8.pdf

_________________
Jim

I would rather attempt something great and fail, than attempt nothing and succeed. - Fortune cookie

As I am getting older I find things are fading. Like my eyesight and my patience, with the latter going faster than the former!
 
 View user's profile Send private message  
Reply with quote Back to top
alank2
PostPosted: Sep 18, 2012 - 04:23 AM
Posting Freak


Joined: Jul 16, 2009
Posts: 1818


Hi,

The max7219 can drive 8 seven segment displays, I've used it on a couple of projects for fun.

Good luck,

Alan
 
 View user's profile Send private message  
Reply with quote Back to top
Kartman
PostPosted: Sep 18, 2012 - 04:59 AM
10k+ Postman


Joined: Dec 30, 2004
Posts: 11693
Location: Melbourne,Australia

I designed a large display (digits 12" high) made from 52mm led clusters with three clusters per segment. It pulled over 1kW at full brighness. No multiplexing was used, mosfets drove the led clusters and each digit had a dc/dc converter. I used 74hc595 shift registers to drive the mosfets. The design goal was readability at 200m.
 
 View user's profile Send private message  
Reply with quote Back to top
iwoloschin
PostPosted: Sep 18, 2012 - 03:59 PM
Hangaround


Joined: May 11, 2011
Posts: 337
Location: Boston, MA

Kartman wrote:
I designed a large display (digits 12" high) made from 52mm led clusters with three clusters per segment. It pulled over 1kW at full brighness. No multiplexing was used, mosfets drove the led clusters and each digit had a dc/dc converter. I used 74hc595 shift registers to drive the mosfets. The design goal was readability at 200m.


That's pretty insane! I don't think I need quite that level of visibility, but I like the method you're using to drive the display. Out of curiosity, why did each digit have it's own DC/DC converter? Any tips or gotchas for driving a large display? Seems like it'd be fairly straightforward, so long as I'm careful and do out some power numbers and make sure nothing is going to blow up when it's powered up.
 
 View user's profile Send private message  
Reply with quote Back to top
jgmdesign
PostPosted: Sep 18, 2012 - 04:14 PM
Raving lunatic


Joined: Apr 20, 2007
Posts: 7533
Location: Long Island New York

I'm gonna guess that there are two reasons:
1)Thats a lot of Wattage to suck out of one DC-DC converter(big sucker too)

2)Surge's?? A 12" 7segment is gonna have quite the spikes on turn on so by having a separate DC/DC on each digit you minimise transients.

Probably wrong on both counts though Confused

_________________
Jim

I would rather attempt something great and fail, than attempt nothing and succeed. - Fortune cookie

As I am getting older I find things are fading. Like my eyesight and my patience, with the latter going faster than the former!
 
 View user's profile Send private message  
Reply with quote Back to top
jayjay1974
PostPosted: Sep 18, 2012 - 05:58 PM
Raving lunatic


Joined: Oct 30, 2002
Posts: 5768
Location: The Netherlands

It's more difficult to design a reliable 1+ kW power supply then a small one and then use many of them. And you probably want a stabilized power supply at every node anyway to compensate for drops along the supply lines.
 
 View user's profile Send private message  
Reply with quote Back to top
iwoloschin
PostPosted: Sep 18, 2012 - 06:34 PM
Hangaround


Joined: May 11, 2011
Posts: 337
Location: Boston, MA

Thanks guys, I was assuming something along those lines, I haven't dealt with anything more than a 2.5W (USB powered) in a while, so I forget that simple things like power supplies don't scale up as simply as I might hope Smile.

In either case, I don't need to worry about the high power display part just yet, and I think I've got enough info now to get started on making something and not doing tons of redesign.
 
 View user's profile Send private message  
Reply with quote Back to top
Chuck-Rowst
PostPosted: Sep 18, 2012 - 06:55 PM
Resident


Joined: Jul 19, 2011
Posts: 698


iwoloshin,

I'm a little confused about your total system.

A. There are multiple 6-digit displays, visible from 100 feet away. How many 6-digit displays are there and how far apart are they from one another?

B. Are they all getting their displayable time information from one central "controller"? If so, what is the nature of the network that connects all of the 6-digit displays to the central controller?

C. Are you considering using SPI to connect between all of these remotely located 6-digit displays. Or, are you considering SPI to connect your micro to individual digits of the 6-digit displays?
 
 View user's profile Send private message  
Reply with quote Back to top
iwoloschin
PostPosted: Sep 18, 2012 - 10:36 PM
Hangaround


Joined: May 11, 2011
Posts: 337
Location: Boston, MA

Chuck-Rowst wrote:
iwoloshin,

I'm a little confused about your total system.

A. There are multiple 6-digit displays, visible from 100 feet away. How many 6-digit displays are there and how far apart are they from one another?


At the moment, it's one 1/2" tall, six digit display (actually 8 digit, because I bought two 4-digit displays). Once I can prove my concept, I plan on upgrading to a larger display, which may or may not wind up being a custom part with a ton of LEDs.

Chuck-Rowst wrote:

B. Are they all getting their displayable time information from one central "controller"? If so, what is the nature of the network that connects all of the 6-digit displays to the central controller?


Right now yes, it's all being run off of a Teensy2.0++, since it's on a breadboard. The larger display will probably require some sort of SPI/I2C/RS485/etc type connection to each digit, though I haven't finalized this yet. I'm curious about different approaches here in particular, as I'd like to try and have the code portable, as in, I don't want to do multiplexing now, and have to rip that all out and do SPI later.

Chuck-Rowst wrote:

C. Are you considering using SPI to connect between all of these remotely located 6-digit displays. Or, are you considering SPI to connect your micro to individual digits of the 6-digit displays?


SPI would only be used locally, since it's only really designed for short distances. Anything going off board would probably be done over RS485, ethernet, or possibly wireless. At the moment, nothing is going off board.
 
 View user's profile Send private message  
Reply with quote Back to top
markorman
PostPosted: Sep 29, 2012 - 07:22 PM
Rookie


Joined: Feb 17, 2008
Posts: 33


Are you looking to build something like that? or do you need far more digits?


(102x29cm)
 
 View user's profile Send private message  
Reply with quote Back to top
Jepael
PostPosted: Sep 29, 2012 - 08:57 PM
Raving lunatic


Joined: May 24, 2004
Posts: 6275
Location: Tampere, Finland

A small AVR + enough 74HC595 on SPI bus to drive digits.

Bigger AVR to handle everything else.

Connect with RS485 or something to get 100ft/30m distance.
 
 View user's profile Send private message  
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT + 1 Hour
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2006 The PNphpBB Group
Credits