ARM Dev Board with many RS232 ports?

Does anyone know of an ARM development board with at least 4 RS232 ports?

I have a need to combine multiple RS232 input data streams into one RS232 output data stream (currently it will be 3 inputs to 1 output). So assume I will need a minimum of 4 RS232 ports.

Development time is relatively short - about a month (including hardware integration time) - so I need a solution that’s already available.

Thanks!

-Matt

Try a Parallax Propeller instead of an ARM. You should have it working in a day or two.

Are you suggesting I bit-bang? Because I don’t see a propeller board with 4 RS232 ports…

I already have some working c-code for the incoming data streams, and I have ARM boards with 2 RS232 ports, so I was hoping to find a 4-port solution.

I’m open to other solutions though!

All peripherals on the Propeller are bit-banged! It’s quite easy as code is available - simply run different instances on each of four cogs (processors) for four UARTS. You can have more than one UART per cog, but even with one per cog you can have eight UARTS running at 115 k.

If you don’t like the Propeller you could use an XMOS device, SFE sells a little development board for the single-core XS1 chip which has eight hardware threads. That should only take you a day or two to implement, as well, assigning a thread to each UART.

I once helped a colleague implement five UARTs on a PIC with four slave AVR AT90S21313 chips as UARTs, connected to the PIC by software SPI. It was the cheapest solution I could come up with, at the time.

In addition to the Propeller and XMOS, Microchip has 33 16-bit PICs with 4 hardware UARTS as well as 16 32-bit PICs with 6 hardware UARTS.

-Bill

Didn’t realize about the propeller - but I guess the important detail that didn’t come across was: I need hardware RS232 level support. I found an industrial solution just now: DS1000-512K-S (sold by microcontrollershop - won’t provide a link out of respect for SFE).

It’s for work, so the cost isn’t an issue.

Any board with an NXP LPC175x or LPC176x will have 4 UARTs.

viskr:
Any board with an NXP LPC175x or LPC176x will have 4 UARTs.

Try the [[Blueboard LPC1768-H](http://www.sparkfun.com/products/9931). It looks to be out of stock at the moment at SFE unfortunately, but it is a great value... it's a seriously powerful board, especially if you compare it to the Arduino Mega or any other mid-range microcontroller dev board. I recently got one of these Blueboards myself from SFE but haven't had a chance to play with it yet (still busy on the Olimex LPC-P1343).](http://www.sparkfun.com/products/9931)

Look also at Micromint’s ARM M3 boards - like the “Lincoln”

Even one Atmega128 in SMD packages have 4 USART’s. :wink:

stevech:
Look also at Micromint’s ARM M3 boards - like the “Lincoln”

I have not heard of Micromint or the [[Lincoln 60](http://micromint.com/index.php/SBC/lincoln60.html) before, but it looks like a great deal. The MCU is an NXP LPC1769 (the 1769 is the faster 120 MHz version). Thanks for the tip. (I don't know if the four UARTs will be directly usable on the board or not as two of them are wired to RS-232 level converters and on to two 2x5 headers.)](http://micromint.com/index.php/SBC/lincoln60.html)

Micromint has been around for 1a very long time. That they’ve persisted says something. I don’t know who their large users are.

I remember them being prominent with hobbyists in the era of Byte Magazine.

http://micromint.com/index.php/General/ … rview.html

Perhaps they avoid the educational and hobby market where the margins are low and support costs are high

SFE should resell that Lincoln board!

Senso:
Even one Atmega128 in SMD packages have 4 USART’s. :wink:

Sure, the ATmega640, ATmega1280, and ATmega2560 each have 4 USARTs. However, you'll pay US$10+ for even the little ATmega640 but let's compare the ATmega640 with an NXP LPC1752:
<<< Comparison between Atmel AVR (ATmega640-2560 family) and NXP LPC175x MCUs with 4 UARTs >>>
================ =====  =======  ====== =========  ======  ========
Part #           UARTs    Flash    SRAM Max Clock  US$@1u  US$@100u
---------------- -----  -------  ------ ---------  ------  --------
ATmega640-16AU       4   64 KiB   8 KiB    16 MHz  $11.80     $7.25
ATmega1280V-8AU      4  128 KiB   8 KiB     8 MHz  $10.74     $9.54
ATmega2560V-8AU      4  256 KiB   8 KiB     8 MHz  $17.97    $11.04
LPC1752FBD80,551     4   64 KiB  16 KiB   100 MHz   $7.10     $5.25
LPC1754FBD80,551     4  128 KiB  32 KiB   100 MHz   $8.30     $6.14
LPC1756FBD80,551     4  256 KiB  32 KiB   100 MHz   $9.75     $7.21
LPC1758FBD80,551     4  512 KiB  64 KiB   100 MHz  $12.23     $9.04
================ =====  =======  ====== =========  ======  ========


Prices from Mouser, 2010-12-08.
(A quick comparison shows Digi-Key prices are comparable.)

(edited to fix incorrect price on ATmega2560V-8AU)

I love the AVRs for projects that fit in 64KB of program flash. Larger, you have the damned page switching to worry about. Like the PIC chips but they page at a much smaller size (yuck).

I wonder if Atmel’s own ARMs are about the same price as the NXP LPCs? And the '1766 is a good comparison one too.

So ARM 7 or Cortex is the way to go for 64KB and larger, in my opinion.

stevech:
I love the AVRs for projects that fit in 64KB of program flash. Larger, you have the damned page switching to worry about. Like the PIC chips but they page at a much smaller size (yuck).

I wonder if Atmel’s own ARMs are about the same price as the NXP LPCs? And the '1766 is a good comparison one too.

Atmel's Cortex-M3 chips (ATSAM3U/ATSAM3S series) are very new and I'm not sure if you can actually get them yet, though they are listed on Mouser as "On Order" and priced around the same as the ATmega AVRs for the same flash/RAM, so a little more expensive than the NXP LPC1700 chips, but perhaps they are lower power/nicer peripherals/something else that makes them a good choice for some applications.

stevech:
So ARM 7 or Cortex is the way to go for 64KB and larger, in my opinion.

It sure sounds like it. AVRs get expensive very quickly when you start to get larger and of course don't get bigger than 256 KB flash/8 KB RAM (maybe XMEGA do? but I have no experience there). Anyway you can get low cost Cortex-M3 with 1 MB flash. And NXP has a whole bunch of new high performance LPC177x, LPC178x, and LPC18xx parts in development.

I would really like to see an unbiased and detailed guide on choosing the appropriate Cortex-M3 implementation for particular applications. It’s relatively easy to compare basic specs (the [Keil device database is a good resource), but there are a lot of issues that take experience and lots of study to discover. For instance, it took a while for me to realize that the LPC1300 can’t do an accurate timed wakeup from deep sleep. Perhaps there are some special features of various MCUs that make them useful in particular situations.

I mainly only have experience with NXP LPC1300/LPC1100, so here’s my thoughts:

NXP LPC1300

Pro:

  • Fast and cheap (72 MHz with up to 8 KB SRAM and 32 KB flash for US$2-US$3)

  • Low active power

  • Cheap development board (Olimex LPC-P1343/LPC-P1114 for less than US$20)

Con:

  • Cannot wake up from sleep based on a timer (ignoring WDT hack that is very low precision) thus I give it a “very poor” rating for use in true low power applications like wireless sensor networking, etc.

  • I dislike the fact that the SPI peripheral can’t trigger an interrupt on a single received byte (can only trigger on half-full RX FIFO)

  • VERY FEW APPLICATION NOTES, ETC. ON NXP WEB SITE. I wish the documentation was more detailed.

Notes:

  • JTAG not supported - SWD only. To program, you’ll need either an SWD adapter (cheapest is the Versaloon/vsprog which also works with OpenOCD for debugging) or you can use the serial boot loader with the flash magic utility. SWD is nice because you only need a couple of pins (two dedicated pins on the MCU).

Other families:

NXP LPC111x - Cortex-M0 part very similar to the LPC1300 but Cortex-M0 and 50 MHz max. SUPER CHEAP: less than $1 in reasonable quantities. Even lower power consumption than LPC1300.

NXP LPC1700 - Cheap, fast, plenty of RAM and flash.

STMicroelectronics STM32 - Wide selection, looks like much better and more extensive documentation, examples, etc. than NXP LPC1300.

TI LM3S - So many models that I can’t get a handle on it.

Atmel ATSAM3U/ATSAM3S - ???

Energy Micro EFM32 - ??? Energy Micro boast that they have superior energy efficiency.](http://www.keil.com/dd/parms/arm.htm)