From Arduino to ARM Cortex M4 (STM32F407 Discovery)

on Wednesday, February 12, 2014
My EEG acquisition project needs more communication channels, processing muscle, speed than the Arduino can offer*. I decided to take this chance to explore the ARM Cortex M4 which is top of the line for MCU. I will never worry about the limitation of the microcontroller again. But, I started to worry about my knowledge to work with it.

In Arduino world, people speak the same language. We use the same IDE, quite similar libraries and boards. The assumption for most documentations, tutorials is that they are for beginners. It's easy to get started and do amazing things in hours! On the other hands, I learn do small projects with STM32 in couples of days or maybe...a week. People use many different IDE (Keil, IAR, Eclipse, Coocox...). Some guru write their own libraries; some use the STM standard peripheral library. Every generation of STM32 (F1,F3,F4). uses different standard libraries. You may find that the F1 library comes with more beginner examples (ex: simple SPI) while the F4 library comes with more complex examples (ex: DMA SPI). I recommend you take a look at F1 library although you work with F4 only because it comes with sample code.

 So far, I enjoy learning STM32F4 in a hard way. It's tough to navigate in its 1700+ reference manual. Once you got the hang of it, you will learn a lot about low level configuration and execution. It's the great thing compare to arduino. *Some other similar systems still use Arduino. For example: OpenBCI uses Arduino for there 8 channels system. They switch to a 16-bit system for the 16 channels version.


Post a Comment