Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Hi! New here - and help request :)

Status
Not open for further replies.

Brianonymous

New Member
Greetings! So glad I found this place..
I am currently trying my first huge scale electronics project.. Ive been dabbling in electronics for a very long time, but only on a very light hobby level... All self/google taught.. That of course doesnt bode well for my confidence that my designs are correct!..
My first project that I am attempting is a weather station.. Being a computer programmer by trade - I feel really comfortable with digital logic arragements - at least far more comfortable than anything on the analog side.

Currently I am working on an LED driver board for the primary displays.. So far I calculated I will be using close to 15 individual 7-seg LED's for the display, as well as a number of individual LEDs. (Heathkit Weather 4001 style display).. Knowing that, I have designed this board to handle up to 144 individual LEDs in a multiplexed fasion.

So far here is what I got:
**broken link removed**

The heart of the system is the PIC16F84A.. It controls 2 4017 decade counters that open up the Darlington Arrays (2003A) for the LEDs ground path. Inbetween cycles, the PIC loads up a shift register with the various bitpatterns for the anodes of the LEDs. Its basically like memory mapped video, per se, and this part seems to work really well.

Now, one of the problems I faced right off the bat was, it became very apparent that I needed a blanking interval while I was loading the shift register. This became a suprisingly complicated problem (for me) with the IC's I have selected. At first, what I was doing was before I loaded the next digit was just shifting in 8 bits of 0, latching the digit, and then advancing the bank clock. This would probably be functional - but seemed very inefficient.. Then I though about using what amounts to an AND gate, with a single pin of the PIC, and the outputs of the shift register. That way, to establish a blanking interval, I just have to lower the PIC pin on one side of the gate, load my digit, and raise it again. Another obvious benefit of this, is it allows me to do PWM control on a per segment level. Generally useless - but neat - especially if I want to use the board in other projects. This whole setup appears to work fine while being emulated... Hope the same is true when I move to prototyping!

That said, I have a few questions...
1- I feel like my component count is very high for controlling a mere 144 LEDs. This may be irrelevant, but I always want to live by the KISS philosophy. Is my design overly complex and are there any obvious reductions that I have missed?

2- Do you think there is any other method to introduce a PWM/Blanking interval besides a handful of 9 transistors?

3- Analog is my weak spot - Do I have my AND gates setup properly to deliver enough current? The way the system is multiplexed, it lights up up to 8 LEDs per cycle.. At ~20ma per segment, that could be up to 160ma's..
I know how to get the voltage I want in a divider case, but I am a bit confused on the current side of things.

4- Is there anything there that catches you off guard? Last thing I want is to build something thats going to smoke itself in a week.

Any help is greatly appreciated, and I hope to be a long time member of this forum! Thanks all!
 
Personally I'd look at using a couple of MAX7219 LED driver ICs.

Each is capable of driving 8 x 7 segment LEDs so 16 x 7 Segments total.

The downside is the price of them - around £6-7 each in small quantities but the major upside is the component count and you can drive each 7219 with a couple of data lines from the 16F.
 
Hi PicBits! Thanks for the reply.. I did look into the MAX's, and rejected them for exactly what you say.. Cost.. One of my goals is to keep the cost down as much as I can.. if I spend too much, my wife may pull the plug on the project ;) I think I saw some of those 7219s listed at $16 a piece someplace! ow!
If things go well, I will probably build one for my dad and some friends as well, so cheap is good..

Thanks!
 
Psssst...... free samples from Maxim ;)

Even it its only a couple for the initial project, if you buy the rest for your family then the guilt complex of sampling for personal use diminishes somewhat ;)

Get the prototype up and running (and nice and small) and then charge your friends for the 7219s in their product :p

On a more serious note though, you have to trade off PCB "real estate" sometimes with cost. If you can make a product half the size with 1/10th of the components for an extra few $$$/£££ then it might be worth balancing the two.

Digikey sell the MAX7219 for around $11

Intersil also make an excellent "clone" and are great to deal with.

**broken link removed**

The ICM7218 (Maxim or Intersil) can be had for less than $5 and will happily drive 4 x 7 segment LEDs
 
Last edited:
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top