2
\$\begingroup\$

I am looking for a Arm development board for a new project I am working on (64 RGB LED POV Globe). POV globe speed questions I have lots of experience with the Arduino boards but I would like to take a step up to a more powerful board for this project. Also I have been wanting to play with ARM for a while and this seems like a good project to start on.

Requirements

  • Not insanely expensive, <= $250 preferably
  • Lots of PWM outputs at lest 10 idealy 24
  • Program able by the USB port.
  • 32k of chip memory

Nice to have

  • Ethernet, Not that I would need it for this project but most of my other projects require it.
  • SD card or other persistent storage, Logging, loading of settings files, ect...

The first board I looked in to was the beagleboard as it has a huge community and lots of resources but it does not appear to have any PWM outputs?

Next I looked in to mbed-NXP-LPC1768 from sparkfun But from as far as I can tell from the spec it only has 6 PWM pins, and I was looking for more of a complete board with power supply, ect..

My question:

  • Suggestions on a Arm development board with lots of PWMs?
  • Am i missing something with the PWMs on the beagleboard? It seems strange that the board would not have any I/O
\$\endgroup\$
1
  • \$\begingroup\$ Beagle Board does have PWM through the expansion port, I couldn't find the exact number of ports tho. more info here elinux.org/BeagleBoardPWM \$\endgroup\$
    – jsolarski
    Mar 18, 2011 at 20:56

5 Answers 5

2
\$\begingroup\$

The OMAP chip used on the Beagleboard does actually have PWM capability, but you will have problems implementing it as there don't seem to be any applications using it. The easiest way to implement a large number of PWMs is to forget the ARM and use an XMOS chip - they are often used to control large numbers of LEDs. Low-cost development boards are available that may be controlled via a USB port. Here is one of their boards being used to control an LED cube. Ethernet support is available on one of their boards.

\$\endgroup\$
4
\$\begingroup\$

TLC5497 has 24 channels of 12bit PWM. Just shift the data in serially and latch it. http://focus.ti.com/lit/ds/symlink/tlc5947.pdf

You can control one of them with three Arduino pins (or possibly less, using Roman Black's Shift1 protocol - http://www.romanblack.com/shift1.htm )

They can also be strung out in series to control as many as you like with the same three Arduino pins (check the example on page 1 of the datasheet). The only drawback is that as you add more chips in series of the same serial stream it'll take proportionally longer to shift all the bits in for each refresh. If you don't like this performance cut, you can use another pin as another serial stream and use the same CLK and XLAT pin, and cut your refresh time in half again (by running half the chips off of stream A and the other half on stream B).

\$\endgroup\$
1
\$\begingroup\$

A LPC2917/LPC2129 has up to 24PWM outputs. It's grouped in 4 segments though, so you'll only be able to choose 4 different frequencies of PWM, but you can control the duty cycle of each individual pin. For the purpose you're trying to achieve, that's all you need.

Atmel has plenty of PWM too on the AT32UC3L032 chips and are not as expensive as the NXP chip if you would decide to make your own hardware. It also comes in a more friendly package, which is nice. I haven't seen a real development board looking quickly, so USB programming is not possible with Atmel chips without using one of their programmers. The XMEGA64 and 128 has the same capabilities, but are 16-bits proccesors.

\$\endgroup\$
0
\$\begingroup\$

Some of the Luminary Micro ARM Cortex-M3 devices have up to 8 PWM outputs.

http://www.luminarymicro.com/products/motion_control_pwm.html

\$\endgroup\$
0
\$\begingroup\$

Atmel sam3x8e (used on the Arduino Due) has 12 PWM outputs, loads of memory, USB, the works. It is a bit expensive, though. You'll have to pay at least 10 USD. The AT32UC3L032 may be a better option if you want cheap.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.