6x9 LED Matrix driving

Go To Last Post
2 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi there.

I just want to make a test. There is a Led matrix of 6 rows and 9 columns that I want to drive it directly from the AVR. The maximum LED current is 50mA and the drop out voltage at 25mA is 3.4V.

I am using the ATMega48A and as I red at the electrical characteristics unit I found that:
Maximum Operating Voltage: 6V
DC Current per I/O Pin: 40mA
DC Current VCC and GND Pins: 200mA
Pin Output Voltage vs. Sink Current: 20mA/0.5V/25oC
Pin Output Voltage vs. Source Current: 20mA/4.4V/25oC

I am planing to connect the 6 rows to PORTB and the 9 columns to PORTC and PORTD. The AVR Vcc-GND will be 5.5V. Each time each column 6 LEDs will be enabled (source) waiting 0 up to signals to be sinced to ground. Each LED will be sourced with 25mA (it means 25mA/9 = 2.8mA average in full cycle) and the maximum sinc=source current will be 6x25mA = 150mA.

Do you believe that this can be done or it's a risc design? I am trying to do it without usind ULNs, UDNs, or BJTs.

Michael.

User of:
IAR Embedded Workbench C/C++ Compiler
Altium Designer

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This really comes down to you determining how bright your matrix can be. If you have all 54 LEDs on at once, you are limited to an average current of about 0.74mA per 'dot'.

If you are multiplexing the columns, each column will be on for 1/9 of the time. At 40mA this means the peak current per row is 6.7mA. And the average per dot is 0.74mA.

You do not have enough column pins to double them up. It would be wise to use an external chip for the 'column select'. This means that you could run each row pin at 33mA peak. Giving an average of 3.7mA per dot.

Even with this arrangement you will be stressing your mega88 (but within spec).

David.