Show Posts
Pages: [1]
1  Using Arduino / LEDs and Multiplexing / 128-channel high speed digital pattern generator ~1MHz on: October 11, 2012, 11:20:22 am
Greetings All,

I'm hoping you guys can give me some feedback on a project I'm working on.

So this is the worst-case: I'm trying to find/build a 128-channel high-speed (~1MHz) digital (5V 1's and 0's) pattern generator and I'm exploring possible solutions. The basic requirement is that I need to output 128 50/50 square-waves who's phases can be adjusted by small amounts. For example, the worst case the phase should be adjusted by 1/128 the period (1/1MHz/128 = 7.9us). I believe this means the clock rate of the system needs to extend to 128MHz.

So I see there being two basic challenges 1) How do I get 128-channel (i.e. 128-bit) parallel output and 2) How do I get the 1MHz clock rate with adjustable phase?

This seems beyond the capabilities of the standard Arduino but I'm trying to understand if a serial-to-parallel approach with a microcontroller would work. For example, if I took the 3 hardware timers on the arduino and connected shift registers to them, then each one could control ~43 channels at a max (ideal, but not feasible) frequency of 16MHz/43 = 372kHz. If I wanted to make the phase adjustable by 128th the period, then I think this would lower the max signal frequency to 372kHz/128 = 2.9KHz. So is this the right way to think about this or am I missing something?

Also what about other hardware solutions? The Maple Leaf clocks at 72MHz and has 4 hardware timers so that would mean 128channels/4 = 32 channels/timer, 72MHz/32 = 2.25MHz frequency reduced to 2.25MHz/128 = 17.6kHz with adjustable phase. Or what about the Beaglebone that tops out at 1GHz?

When I Google "high speed digital pattern generator" I get something like this or These are PCI or USB style devices, as anyone had some experience with this variety?

So can you guys help point me in the right direction or provide any feedback on this? I greatly appreciate any input.

2  Using Arduino / LEDs and Multiplexing / RGB LED array (shiftbrite) at video rates on: April 06, 2011, 06:46:29 pm
Hi all,
So I'm starting a fun LED project where I'd like to run an LED array from Processing at video rates using an Arduino.

What I've realized is there are some data rate limitations I'm up against, mainly the serial interface between Processing and Arduino.

I found this post which says the serial data rate is limited to ~86us/byte when running at 115200 baud.

Here's the example I'd like to run by you guys:
I'm using the Shiftbrite LEDs and want full 10bit control which means I need 2bytes/color.
I have 81 lights so that means: 2bytes/color X 3 colors X 81 lights = 486bytes.
So to write all the LEDs it will take 86us/byte X 486 bytes = 41ms
This means my frame rate is limited to 1/41ms = 24.4fps

Is this correct? Am I forgetting anything?

So if I want to get to 30fps (or 60fps) on the LED array would the easiest choice be to run multiple Arduinos, for example run two parallel serial interfaces from Processing to two Arduinos with each Arduino controlling half the lights?

Thanks in advance!
Pages: [1]