Electronic Projects, forums and more.

Go Back   Electronic Circuits Projects Diagrams Free > Electronics Categories > Micro Controllers


Micro Controllers Discuss all aspects of micro controllers - building them, coding them, etc. All controllers are welcome - PIC, BASIC, Z8 Encore!, etc.

Reply
 
Tools
Old 27th September 2009, 03:10 PM   #46
Default

what did you use to draw the layout
eagle or what
thesadman is offline  
Old 28th September 2009, 09:38 AM   #47
Default

Yes, it will be eagle, but still don`t use it. For now only trying to figure out how work so many matrixes.
Instinct is offline  
Old 4th October 2009, 12:38 PM   #48
Default

Quote:
Originally Posted by AtomSoft View Post
.......and am going to order these next: <B>LED1112</B><BR>LTP747R - LED1112
Jason (AtomSoft),

Did you ever order any of these 0.7-inch 5x7 displays for 69 cents each? They might be a nice candidate for a 7x40 or 7x80 display using my MacMux™ architecture and relatively inexpensive 74HC595 column driver ICs.

Attached Thumbnails
LED SignBoard 64X8 - PIC 16F628A-macmux-7x80.png   LED SignBoard 64X8 - PIC 16F628A-macmux-7x40.png  
Mike, K8LH is offline  
Old 4th October 2009, 02:32 PM   #49
Default

hey nice job. Thats exactly how i would do it. Those LEDs are from BGMicro right?

he 595s are perfect because of the latch feature. My choice of MCU would be:

PIC18F2455

Mainly because its cheap and as fast as 48Mhz/12MIPs. which is about 12Mhz really in the pic world. since the max fcy the HC595 can do is 100mhz i say this 12Mhz is really fast and can switch these puppies nice!

Or you can just a use a dsPIC33FJ64MC802 40MIPS! sure it would be more than enough to control quiet a few leds. Even multiple rows should be ok.

One thing! how slow can one go before the leds look bad? Like how fast does one need to switch for the whole thing to appear lit?

i guess a test of my own vision and a few others is in check. Ill make a LED block and see a what speed i can slow it down to before it starts looking funny.

The whole issue is with more blocks you need more speed but the faster you go the dimmer it gets.
AtomSoft is offline  
Old 4th October 2009, 03:14 PM   #50
Default

Quote:
Originally Posted by AtomSoft View Post
Those LEDs are from BGMicro right?
Yeah. BG Micro.

Quote:
The 595s are perfect because of the latch feature. My choice of MCU would be: PIC18F2455

Mainly because its cheap and as fast as 48Mhz/12MIPs. which is about 12Mhz really in the pic world. since the max fcy the HC595 can do is 100mhz i say this 12Mhz is really fast and can switch these puppies nice!

Or you can just a use a dsPIC33FJ64MC802 40MIPS! sure it would be more than enough to control quiet a few leds. Even multiple rows should be ok.
Almost any 28 pin 18F' would be fine. I only put the 16F690 in that design because the serial port pins aren't on PORTC and I could use all of PORTC for the 8-pin bus.

You don't need a lot of horsepower with this design. A 4-MHz clock will work fine. Both 40 and 80 column displays run at a 1/7th or 14% duty cycle which provides decent brightness (4-ma "average" current per LED) with 74HC595 sourcing drivers and keeps "peak" power supply requirements managable.

Quote:
One thing! how slow can one go before the leds look bad? Like how fast does one need to switch for the whole thing to appear lit?
A static display should be refreshed at 60-Hz or more to avoid flicker which works out to about 2.4-msecs or faster per row update. If you're going to animate the display (scrolling, etc.) then a higher refresh rate is desirable to avoid the 'slanting' you sometimes see when scrolling horizontally at a fast rate. Also, animation should be synchronized to the refresh cycle or "frame rate" and so higher refresh rates allow more frequent animation updates.

Quote:
i guess a test of my own vision and a few others is in check. Ill make a LED block and see a what speed i can slow it down to before it starts looking funny.

The whole issue is with more blocks you need more speed but the faster you go the dimmer it gets.
You may be thinking of designs similar to Gayan's original design where adding additional modules will reduce the display duty cycle. That's not the case with these MacMux™ design examples. Both the 40 and 80 column designs run at a 1/7th or 14% duty cycle. The 80 column design just uses a little bit more ISR 'overhead'.

Regards, Mike
Mike, K8LH is offline  
Old 4th October 2009, 03:28 PM   #51
Default

The funny thing here is I took apart a old sign board it had 1050 red leds and you could read it good in the day time. It came out the lunch room at work you could go as fast as you want to scroll or slow and it looked good.
It's uC only had a 2mhz crystal it was a old 8051. They lost the code setting controller
so I ended up with it.I played with for some time never could figure how they got to work so good.
be80be is offline  
Old 4th October 2009, 04:57 PM   #52
Default

Mike looks like it would be a fun project.
AtomSoft is offline  
Old 4th October 2009, 04:59 PM   #53
Default

Quote:
Originally Posted by be80be View Post
The funny thing here is I took apart a old sign board it had 1050 red leds and you could read it good in the day time. It came out the lunch room at work you could go as fast as you want to scroll or slow and it looked good.
It's uC only had a 2mhz crystal it was a old 8051. They lost the code setting controller
so I ended up with it.I played with for some time never could figure how they got to work so good.
heh yeah. I bet they had a few people to try and code it all. Im sure they plan stuff major before a actual try.

EDIT

I was bored and made this little chart:
Code:
(1THZ) 1,000,000,000,000 hz = 0.000,000,000,001 second per cycle (1 PicoSecond)
(1GHZ)     1,000,000,000 hz = 0.000,000,001     second per cycle (1 NanoSecond)
(1MHZ)         1,000,000 hz = 0.000,001         second per cycle (1 MicroSecond)
(1KHZ)             1,000 hz = 0.001             second per cycle (1 MilliSecond)
(1HZ)                  1 hz = 1                 seconds per cycle (1 Second)
Can you imagine a 1THz system heh

Last edited by AtomSoft; 4th October 2009 at 06:11 PM.
AtomSoft is offline  
Old 4th October 2009, 06:21 PM   #54
Default

The signals would need to move faster than the speed of light ^^
__________________
Mike
My website: www.ElectroBird.net
birdman0_o is offline  
Old 4th October 2009, 06:40 PM   #55
Default

heh yeah. Im sure we are pretty close to it we have to be...
AtomSoft is offline  
Old 15th October 2009, 12:15 PM   #56
Default

Hi Mike I'm studying your last design 7X40 using 74HC595.

Can you tell when an timer interrupt occurs I must feed the first row datas.The data is in the 40 column registers.So I must bit mask the column registers & feed the data to the first row one by one.
After feeding finished the first row, I'must give latch to the latch pin & come out from interrupt

Likewise in next interrupt I'must feed the 2nd row like above.

Is this correct?

Last edited by Suraj143; 15th October 2009 at 12:17 PM.
Suraj143 is offline  
Old 15th October 2009, 01:03 PM   #57
Default

Hi Suraj,

There are some special driver considerations with the MacMux designs. They use the PIC PWM output to modulate the OE (output enable) lines on the driver ICs which allows us to retask the row driver lines temporarily for use as <CLK> and <DAT> lines to load all of the shift registers in parallel during a short blanking interval at the beginning of each row scan interrupt. This method allows us to load 40 bits of column data into the five shift registers by simply writing 8 bytes and clock pulses onto the row driver buss at the beginning of each row scan interrupt;

Code:
void interrupt()
{ pir1.TMR2IF = 0;                // clear timer 2 interrupt flag
 /*                                                                  *
  *  retask the row driver lines while PWM is hi (display off) as    *
  *  one <clk> and five <ser> lines to update the 74HC595 shift      *
  *  registers on all five driver ICs in parallel (5 chan SPI) then  *
  *  write the new row select bit pattern to portc before PWM goes   *
  *  lo (display on) to resume portc row driver duties.              *
  *                                                                  */
  portc = srbuf[7]; clk = 1;      // clock out SR b7 bits
  portc = srbuf[6]; clk = 1;      // clock out SR b6 bits
  portc = srbuf[5]; clk = 1;      // clock out SR b5 bits
  portc = srbuf[4]; clk = 1;      // clock out SR b4 bits
  portc = srbuf[3]; clk = 1;      // clock out SR b3 bits
  portc = srbuf[2]; clk = 1;      // clock out SR b2 bits
  portc = srbuf[1]; clk = 1;      // clock out SR b1 bits
  portc = srbuf[0]; clk = 1;      // clock out SR b0 bits
  portc = rowsel;                 // select new row
This code loads the shift registers with 40 bits of data in something like 25 instruction cycles. The PIC PWM output turns off the display allowing us to use the buss to load the shift registers and then latches the shift register data onto the driver outputs and turns on the display.

You need additional "data bender" code in the ISR to build those eight special shift register bytes from your display[] array before each new row scan interrupt.

I'll throw an example program together and post it for you as soon as possible.

Take care. Regards, Mike

Last edited by Mike, K8LH; 15th October 2009 at 01:21 PM.
Mike, K8LH is offline  
Old 15th October 2009, 05:15 PM   #58
Default

Hi mike thanks for the great help.

Actually the “MAC Mux” is a bit hard. I’ll try to do it later.

For the time being I’m doing a standard multiplex but I need to do a row scan.
I have attached my drawing; the positive to the LEDs will supply via the shift registers. & the negative supply to the LEDs will supply via the microcontroller.

You may notice I have cascaded the shift registers via the QH’ to SDATA.

This is the method I’m going to use.

In row scan I need 40 column registers if I have 40 columns.
When a timer interrupt occurs I must first serve the first row. This is done by sending all lower bits of column registers to the shift registers. After feeding all 40 columns in the first row I must make a “latch” to show in the display. After latching I must return from interrupt.

Likewise in next interrupt I’ must feed the 2nd row like above.

Is this correct?
Attached Thumbnails
LED SignBoard 64X8 - PIC 16F628A-cascade-595.png  

Last edited by Suraj143; 15th October 2009 at 05:24 PM.
Suraj143 is offline  
Old 16th October 2009, 01:33 PM   #59
Default

That's cool Gayan ayya. two thumbs up..
Hero.sl is offline  
Old 16th October 2009, 03:47 PM   #60
Default

Quote:
Originally Posted by Suraj143 View Post
Hi mike ........ Is this correct?
Hi Suraj,

It seems you have the correct procedure. You need to keep track of the row number and select the correct five bytes (40 bits) of data from your display array during each interrupt. You'll clock out those 40 bits into the daisy-chained shift registers, blank the display, latch the shift register data onto the outputs, then select the new row to turn the display back on. You do this procedure each interrupt to display a new row.

Regards, Mike

Last edited by Mike, K8LH; 16th October 2009 at 10:30 PM.
Mike, K8LH is offline  
Reply

Tags
64x8, led, pic, signboard

Thread Tools
Display Modes


Similar
Title Starter Forum Replies Latest
10x7 LED SignBoard (MERRY X MAS) Gayan Soyza Micro Controllers 44 10th May 2008 04:49 PM
16f628A - How do I do this? Hakachukai Micro Controllers 6 4th July 2007 05:09 PM
Signboard electronic leticia Micro Controllers 1 18th March 2007 05:01 AM
7X48; 250 character signboard don.vito Micro Controllers 0 4th January 2007 12:11 AM
16f628a RMIM Micro Controllers 8 29th July 2006 08:45 AM



All times are GMT. The time now is 05:40 AM.


Electronic Circuits  |  Learning Electronics
eXTReMe Tracker