Voting resources, early voting, and poll worker information - VOTE. ... Adafruit is open and shipping.
0

ARM Board/Tutorial?
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

ARM Board/Tutorial?

by robodude666 on Sat May 15, 2010 11:40 am

Hey guys,

On one of the previous Ask An Engineer chats Limor mentioned something about Kevin (think that was the name) working on a board/tutorial for an ARM MCU. Is there any more information available on this board/tutorial?

I'm using an ATXMega128 in a current project but I fear that I am going to run out of MIPs and GPIOs before my project gets all its parts together.

On a related, but different topic, does anyone know of good existing ARM boards/JTAG programmers available? I have YAGARTO installed in OS X (I hope, at least - arm-elf-gcc is installed, though I havent tested anything yet). I'd like something that was proved to work under OS X. I couldn't get AVRDragon/AVR32 to work in OS X, and using VirtualBox is a pain. I can get CrossWorks and the CrossConnect Lite JTAG programmer if need be, though I'd rather not spend extreme amounts of money on software/programmers.

Cheers,
-robodude666
robodude666
 
Posts: 118
Joined: Sun Mar 28, 2010 12:12 am

Re: ARM Board/Tutorial?

by franklin97355 on Sat May 15, 2010 12:01 pm

What ARM chip are you interested in? There are many companies that have eval kits and the software (limited) comes with them.

franklin97355
 
Posts: 21567
Joined: Mon Apr 21, 2008 2:33 pm
Location: Lacomb, OR.

Re: ARM Board/Tutorial?

by fat16lib on Sat May 15, 2010 12:17 pm

You need to decide which ARM board you are going to use. Many can be programmed without a JTAG programmer. Some NXP LPC boards can be programmed by "USB Drag-n-Drop programming" where the board appears as a mass storage device. Other families have boot loaders like the Arduino and you use a serial cable/adapter to program them.

JTAG debugging is nice but before buying a JTAG USB interface decide on your software development environment. You need to buy an interface that is supported by your debug program.

I use openocd but getting it to work on Windows 7 is a huge pain. OS X may be easier. I use openocd since it works with YAGARTO and is free but I am not a happy camper.

I use the Olimex JTAG USB OCD Programmer/Debugger with openocd.
fat16lib
 
Posts: 593
Joined: Wed Dec 24, 2008 1:54 pm

Re: ARM Board/Tutorial?

by robodude666 on Sat May 15, 2010 12:29 pm

I'm honestly interested anything that's an upgrade from my XMega128A1... That includes over 32MIPs and 70+ GPIOs. One or two SPIs minimum, a UART or two, and anything else is a bonus. A built in SRAM/EBI controller or two are definitely a plus, though only if the memory space is supported via the compiler. The ability to solder it by hand (in the future) would also be nice, so all BGA chips are out of question.

I currently own the mbed which features a Cortex-M3 LPC1768. I'm not impressed at all by the online compiler, or the APIs they provide. It's just too slow and uncomfortable to use. I know the LPCXpresso boards are nice, feature a good GPIO count and can have slightly better I/O performance than the good ol' ATMega line... but no OS X software is provided (even though it's based on Eclipse). I'm aware Olimex makes a number of great boards, though I personally don't really like the way they look and their layout... They also mostly feature older ARM7 chips.

I'm honestly interested in something arduino-like in the sense that it should be bare minimum to get working. No fancy dodads, etc... which is hard to find on an evaluation board, as they want to show off all the shiny things their microcontroller can do.

I also ran across the SAM3 again while waiting for replies, and I'm attracted by the shininess of it. It includes an LCD that is very similar to the ones I'm using, without any hardware limitations attached. The only problem with the SAM3U-EK is it's $200, plus the cost of a programmer and IAR (EEP!). The SAM3U is supported via CrossWorks ($150 personal license + $60 JTAG), which is a great value vs IAR but that's still a ton of cash for a college student to toss out on something that may not workout.

I'm also aware the ST has a nice line of Cortex-M3 STM32s out. The Maple Board looks nice, though the arduino-IDE makes me wary (not a fan). Other than what I read on the Maple Board I really have no knowledge of what the STM32 is capable of. It seems like a competitor to LPC's and ATMEL's stuff, so it probably has something good in it.

I just checked my YAGARTO install, and it seems to compile the examples they provide. Doesn't seem like it includes a JTAG programmer part to it. Will have to spend a weekend on getting OpenOCD to compile in OS X I guess. I've also read on SF that the CrossConnect Lite ($60) JTAG programmer is slightly better than Olimex's, is this true? Or does this only apply to using it with CrossWorks?

For reference, I'm working on a MP3 player w/ a QVGA screen. I know it's doable without much overkilling on hardware.. but I just can't get that kind of performance. Maybe it's the 8-bit limitation on my LCD, or the XMega's I/O performance is not the same as the ATMega... Everything I've read hints that I need obscene I/O performance, lots of MIPs, and a plethora of external SRAM for double-buffering the LCD.

-robodude666
robodude666
 
Posts: 118
Joined: Sun Mar 28, 2010 12:12 am

Re: ARM Board/Tutorial?

by fat16lib on Sat May 15, 2010 1:07 pm

Once again I think the choice of JTAG interface depends mostly on software/drivers. CrossConnect Lite may be better than Olimex. I like the version of Olimex that I have since it provides a serial port and power to connect to the ARM board in addition to the JTAG interface.

I have used a number of STM32 boards and like the STM32 a lot. I use it with ChibiOS/RT http://sourceforge.net/projects/chibios/. The guy who is developing it, Giovanni Di Sirio, is amazing. He works for ST so there is really good support for STM32.

Here is a neat minimal STM32 board http://www.futurlec.com/ET-STM32_Stamp.shtml. Only $25 for 512K flash 64K RAM. It uses a serial port for programming and may not work with OS X. It doesn't have a JTAG connector but I think the signals are available.
fat16lib
 
Posts: 593
Joined: Wed Dec 24, 2008 1:54 pm

Re: ARM Board/Tutorial?

by robodude666 on Sat May 15, 2010 1:23 pm

I don't have to have JTAG programmer, if there's another method for programming the board within OS X. The only reason I bring up the JTAG programmer is because I know CrossWorks works in OS X, and I know CrossConnect works in OS X. If the ARM features a USB bootloader that's supported in OS X, then great! No JTAG required... otherwise, I sort of need JTAG to program the board.

Thanks for the STM32 Stamp recommendation. Unfortunately, it's lacking in I/O. I need about ~70 or so.. 20 for the LCD, 30 for the SRAM, and another 20 or so for the SD Card, buttons, and other SPI do-dads. I can scrunch things together using latches, and trim off some I/O requirements if needed, though I'd rather have direct access to every pin for highest performance.

After nosing around ATMEL's website a bit and watching their promo/demo videos for the SAM3 I'm nearly sold. They provide a ton of examples in their software package which also supports GNU ARM compilers. I'm having trouble getting it to compile with my version of YAGARTO though mine is extremely out of date. It bothers me that the board is a little complex, and might be hard to make my own custom PCB later when my project is finialized, but we'll see... Does anyone know of any non-ATMEL SAM3 boards?

On a side note, has anyone heard of the CoLink? It's pretty cheap, and looks decent.

-robodude666
robodude666
 
Posts: 118
Joined: Sun Mar 28, 2010 12:12 am

Re: ARM Board/Tutorial?

by fat16lib on Sat May 15, 2010 1:51 pm

You need something like the STM3210E-EVAL but without all the eval stuff. I have one it has 512Kx16 external SRAM and a 240x320 color TFT color LCD. the CPU is a 144 pin STM32F103Z. It is good for interfacing to I2S Audio. The SRAM is well integrated.

I found support for SAM3 was limited since it is newer than other cortex lines but last time I looked was over six months ago.
fat16lib
 
Posts: 593
Joined: Wed Dec 24, 2008 1:54 pm

Re: ARM Board/Tutorial?

by sbeckman on Sat May 29, 2010 11:16 pm

The Maple board you mentioned in your earlier post is pretty cool -- http://leaflabs.com/devices/maple/

Its a nice way to learn about the STM32F103RB ARM Cortex M3 microcontroller. You can program the board using familiar looking tools, and using a familiar syntax / language to get started. So if you've ever worked with an Arduino you can get this board to work very easily.

Now that most experimenters / hackers have grown familiar with the Arduino, I think that micro manufacturers would be wise to introduce their new microcontrollers in an Arduino-like format along with an Arduino-like programming environment to allow people to get familiar with their chips more quickly.

sbeckman
 
Posts: 5
Joined: Sat May 29, 2010 11:06 pm

Re: ARM Board/Tutorial?

by robodude666 on Sun May 30, 2010 12:32 am

Thanks sbeckman for pointing me to the LeafLabs website again. I didn't know it was updated! It's actually browsable now.

The Maple Board is for sure a great cheap board for getting into ARM development. Unfortunately, there is currently no OS X support.. At least, without hacking a bit. After spending days and days AND DAYS getting AVR32-GCC, ARM-GCC and others compiled properly I do NOT want to mess around with the terminal for a while now.

One cool thing, however... Specs on the Maple Native were released! The specs look wick'd sick. A ton of FLASH/onboard SRAM, up to 100+ GPIO, a ton of timers, ADC, external SRAM pinout, and much more! If the price is right, I might just get the Native when it comes out. Even at a $100, it's a very good deal. I get all of the I/Os available, get a very nice form factor, and I can avoid having to solder SMD partrs to get more SRAM.

I'm just hoping they get OS X support sorted out soon, and that it will be compatible with YAGARTO/arm-none-eabi with DFU USB programming working. I can avoid getting an expensive JTAG programmer and an expensive CrossWorks license.

I sent LeafLabs an email with some questions. Hopefully they get back sometime soon.

Anyhow, cheers!

EDIT: Son of a gun! Spent the last hour watching arm-cs-tools compile and finally have a working version of arm-none-eabi. I can build all of Atmel's SAM3U examples, as well as STM's. Excellent. I have OpenOCD working, supposedly. All that's left is to get a DFU thingie going and get a board.

If anyone else is on Mac OS X I got a 1-click Makefile from: http://fanplastic.org/gcc-for-arm-eabi/ which downloads the required source and does everything else for you. Brilliant :).

-robodude666
robodude666
 
Posts: 118
Joined: Sun Mar 28, 2010 12:12 am

Re: ARM Board/Tutorial?

by fat16lib on Sun May 30, 2010 8:27 am

Have you found any SAM3U boards other than the Atmel evaluation board?

Something is wrong with the Maple count of I/O ports. It uses a 64 pin STM32F103RB which has 51 I/O pins. From the Maple website:

* 64 pins, 72MHz, 2.0 to 3.6v (“almost all 5v tolerant”)
* 128KB flash
* 20KB internal SRAM
* GPIOs toggle at up to 18MHz
* 80 GPIO ports
* 2 12-bit ADCs, up to 16 channels (0 to 3.6v)
* 2 i2c interfaces (SMBus/PMBus)
* CAN interface
* 3 USARTS
* 2 SPIs
* USB

You can't have 80 GPIO ports on a 64 pin part. The Maple board only seems to have 39 pins labeled 0-38.

http://static.leaflabs.com/pub/leaflabs/maple-hardware/rev3/maple-rev3-layout-top.png

I have several STM32 boards with 64 pin packages and they have 51 I/O pins. For example the STM32 Stamp has 51 I/O pins.

Leaflabs mentions the "Maple Native" which has a STM32F103ZE with a 144 pin package. This seems to be a "future product". I have a board with this part and it is amazing.
fat16lib
 
Posts: 593
Joined: Wed Dec 24, 2008 1:54 pm

Re: ARM Board/Tutorial?

by robodude666 on Sun May 30, 2010 10:24 am

Yeah.. The low I/O count on the Maple is mainly what detracts me. My current XMega128A1 has about 72 GPIOs I believe, and I will end up using them all up when I bring everything in my project together. The Maple Native's STM32F103ZE has 112 GPIO which will allow me to do 16-bit parallel LCD + direct connection to SRAM modules without latches, counters, or any other circuitry that saves on pinout. This will yield the highest performance I could get which is what I'm aiming for :).

I haven't found any other SAM3U boards, unfortunately.. There is one company that makes evaluation boards for the SAM3 but they're basically identical to Atmel's design.. Just a different layout and $50 cheaper or so.

Which STM32F103ZE board do you have fat16lib? KEIL is really the only company that makes a decent looking dev board for the STM32F103ZE, but at nearly $375 it's out of my price range completely. At that cost I'd rather get a SAM3U ($200), SAM-ICE ($100) and a CrossWorks personal license.
robodude666
 
Posts: 118
Joined: Sun Mar 28, 2010 12:12 am

Re: ARM Board/Tutorial?

by fat16lib on Sun May 30, 2010 10:53 am

I have the ST eval board. I don't think it is suitable for projects, I bought it to learn.

It's too bad there seem to be so few simple high pin count ARM boards suitable for DIY hobby use.
fat16lib
 
Posts: 593
Joined: Wed Dec 24, 2008 1:54 pm

Re: ARM Board/Tutorial?

by mojo on Mon May 31, 2010 6:51 am

I have a couple of ARM boards including the LPCXpresso. The dev environment is not as nice as the AVR one for more "microcontroller" related stuff IMHO, but ARM systems are aimed more towards computing tasks that need more memory, more processing and maybe even an OS of some kind.

Horses for courses as they say. If you don't have enough I/O pins available consider using an AVR to control some of the hardware and connect it to the ARM with a bus. It can actually be easier to develop that way too since you are not trying to control a lot of hardware directly with the ARM which can lead to tricky situations (e.g. multiple interrupt sources and priorities).

mojo
 
Posts: 136
Joined: Mon Jan 21, 2008 5:04 pm

Re: ARM Board/Tutorial?

by fat16lib on Mon May 31, 2010 9:15 am

Using a port expander or 8-bit AVR/PIC is a good way to use fewer pins.

I still think an OS is necessary to fully exploit the power of the I/O architecture. For example the SAM3U has a 22 channel DMA controller and the STM32F has 12 DMA channels.

There are a number free RTOS choices. The most popular seems to be FreeRTOS. My favorite is ChibiOS/RT.

ChibiOS/RT is elegant and really exploits ARM Cortex features. It can do a context switch in 1.2 us on a 72MHz STM32. The kernel is capable of over 220,000 created/terminated threads per second.

For more see http://en.wikipedia.org/wiki/ChibiOS/RT

I have been pushing the use of a RTOS on small embedded systems for 30 years. I financed some of the development of VxWorks in the early 1980s. Too bad I didn't join my friends when they formed Wind River Systems to commercialize the idea.

See: http://www.windriver.com/products/vxworks/
fat16lib
 
Posts: 593
Joined: Wed Dec 24, 2008 1:54 pm

Re: ARM Board/Tutorial?

by westfw on Mon May 31, 2010 8:51 pm

I'm curious: What do the ChibiOS people think that it means to release an OS for "deeply embedded" systems under GPL3? As a developer of commercial embedded SW, anything GPL3 is expressly forbidden for us to consider using, and even GPL and LGPL are ambiguous are require approval by a corp of lawyers :-( (actually, at this point ALL open source software requires the legal dept approval; GPL/LGPL are just less likely to get it, because of their viral nature...)

As a potential user I find the whole ARM landscape very frustrating. In THEORY, you have a common core (ARM), and a common load/debug interface (JTAG), and lots of open source development software (gcc.) But the reality seems to be that there are so many inconsistencies that each individual chip requires its own specialized toolset (both HW and SW.)

westfw
 
Posts: 1717
Joined: Fri Apr 27, 2007 1:01 pm
Location: SF Bay area

Please be positive and constructive with your questions and comments.