Which arm microcontroller to choose?

Hello everyone!

I wanted to learn about the ARM microcontrollers....about the architecture and coding. Which microcontroller should I buy? I read somewhere that I should buy the STM32 discovery board. Please help!

  • Hi,


    I think STM32F429I DISCOVERY would be the best.
    The MCU is 180MHz Cortex-M4 with LCD and SDRAM controllers.
    http://www.st.com/content/st_com/ja/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/32f429idiscovery.html
    I have the Cortex-M7 version but it would be too complicated to learn the ARM architecture.
    If you are challenger, you can try the STM32F746G DISCOVERY.
    http://www.st.com/content/st_com/ja/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/32f746gdiscovery.html

    Best regards,
    Yasuhiko Koumoto.

  • There is more than one possible answer to your question.

    Which microcontroller you should buy very much depends on what you are trying to do with it.

    Do you actually need a 180MHz M4 with LCD and SDRAM controller?

    If you don't need a lot of processing power your may also want to consider the less complex Cortex M0+ products. (eg. STM32L0, ATSAMD21, LPC8xx etc)

    ST, Atmel and NXP all have cheap and readily available eval boards and software tools available.

    This may also be a better entry point for somebody unfamiliar with ARM products.

    If you do want to go for an M4 solution then STM32L4 family is a low power alternative to the high performance STM32F4.

    Still on the theme of ST solutions the discovery boards are not the only option, you may also want to look at the NUCLEO boards.

    Try www.st.com/stmcufinder  also available as an App on iPhone or Android.

    Hope this helps.

  • Which is best for you really depends on your background & experience you already have, and also how much time and effort you intend to invest.

    For example, if you're already experienced in C programming, or even a higher level language like Javascript, and if you're learning this as part of a professional project (8 hours per day minus meetings & overhead) which has a deadline, you can probably go with a fairly advanced platform.  ST Discovery or Nucleo would be good examples.

    However, if you're a student or hobbyist, or anyone with minimal programming experience, and especially if you're doing this in your own (limited) free time without a hard goal that will force you to spend time, one of the many newer Arduino compatible boards might be a better choice.  These have a greatly simplified environment and examples.  The downside is the tools aren't nearly as powerful, because they're designed to be simple for beginners.  The software environment tends to *not* expose you to the (complex) inner details of the ARM architecture, so to learn the deeper stuff you'd need to dig into the supplied libraries.

  • You can have a look at www.forlinx.net

  • There are a lot of good answers; and I agree with all of them.

    If I had to choose between boards, and I could only buy one board, I would go for the STM32F429 board or the STM32F776 board.

    This is mainly because those boards cover a very large variety of interfaces and peripherals, while also running at very high speeds. The mentioned Discovery boards are arduino-compatible (there are shield-connectors on the bottom side).

    Thus you can easily use it as a 'development workbench' to prototype a project or product, and when you have something working, you can determine the minimum requirements and purchase a smaller chip/board that will be able to handle the job.

    -That's one way of doing it.

    But as for myself, I tend to purchase a bunch of low-cost STM32F103 boads.

    I've become a top-notch-o'holic, however, even though the Cortex-M3 based STM32F103 boards only runs at 72 MHz, they offer a very, very good value for the price.

    The board is an arduino-compatible board; it gives you 16+15 GPIO pins (one full 16-pin port and one port with 15 pins available).

    This board can be hacked if you wish, so you can have two full 16-pin ports (I did that once; you'd need to unsolder one of the SMD resistors and replace it with a 0-Ohm resistor).

    GPIO pin speeds are up to 36 MHz on all pins. The Timers can be connected to an advanced DMA; it allows you to make the timers automatically update their registers (reconfigure-on-the-fly) in addition to controlling a second DMA. The timers can also be cascaded, so that one timer can trigger one or more timers, which can again trigger more timers, and so on. (The STM32F4 and STM32F7 can of course do this as well).

    Links: