Author Topic: Choosing an ARM Cortex M4 Development Board  (Read 2690 times)

0 Members and 1 Guest are viewing this topic.

Offline 0528203Topic starter

  • Newbie
  • Posts: 2
  • Country: gb
  • Live by it, Die by it.
Choosing an ARM Cortex M4 Development Board
« on: December 12, 2018, 08:34:15 pm »
Hi all, i am currently trying to choose a ARM Cortex M4 Development board, i have selected this micro controller from the ARM selection matrix but as a hobbyist with no commercial development knowledge or experience i feel like i'm at the deep end and forgot my armbands. I have a project i have been working on currently made using arduino that i would love to take to kickstarter when i'm ready or go another route to development, my first prototype used arduino and worked well enough with some lacking features that made it unrealistic, i highlighted several improvements that could make it better for the next prototype such as multiple sound files being played simultaneously and more interrupt pins to allow extra sensors to be used and an added NRF24L01 module should bring me the prototype to satisfy my "This will impress the folks at kickstarter/whomever." thoughts.

So i have made my first prototype, discovered improvements, used a selection matrix to select a micro controller and searched online for development boards with that micro controller now here is where i am stuck. I was leaning towards the teensy 3.5 as this has the ARM Cortex M4 and there are plenty of videos online showing how well it can cope with multiple sound files and priority interrupts but from first glance it looks like all the videos regarding sound use a library which makes me concerned about issues when it comes to try and turn this into a commercial product (I try to avoid using a library and rewrite to suite my purpose - Audio library might be a tad complex though.) but also it looks very locked box as if most of the hard work is done for you and that if i was to make a custom PCB with a ARM Cortex M4 at the heart the whole world would be different (Programming methods, Programming software, Library usages and more) is this the case, how do i overcome this?

I have looked at other development boards with that processor and to add to my confusion there is a STM32 version which appears to use different IDE and almost be a completely different micro controller, a LaunchPad tm4c129e with the processor yet has no examples close to what the teensy has for sound and there is the arduino Primo core (Found on ebay) its a mine field.

I realize my understanding of this side of development is highly lacking but what is the best development board to learn to program for a product (I realize the best answer to this may also be the board without the most helpful tutorials), are some of the teensy library's portable to some of the other boards? I have found a version of the micro controller by Nordic https://www.semiconductorstore.com/cart/pc/viewPrd.asp?idproduct=61462 that has Bluetooth do you suppose there is a version that has the NRF24L01 built in aswell?

A minimum system board for the STM32F407VET6 exists would this be an option? would it work with the teensy audio library?
I realize i am asking a lot of questions but as you can imagine when you reach a point in a project and cant go any further its awfully frustrating.

Kind Regards, Chris.
 

Offline lucazader

  • Regular Contributor
  • *
  • Posts: 221
  • Country: au
Re: Choosing an ARM Cortex M4 Development Board
« Reply #1 on: December 12, 2018, 09:07:29 pm »
There are quite a few M4 based processors to choose from!
And it really depends on all the requirements of your project which you seem to have specced.

Here are some boards and or processor vendors you can look at:
ST micro - STM32 Nucleo boards. Avaliable everywhere
NXP - not too familiar with their product stack but i am sure they will have some chips that might suit you.
Nordic Semi - the NRF52 series are M4 based with lots of cool stuff including integrated bluetooth! and i think you can possibly use them to emulate the nrf24 protocols etc.
TI - also not too familiar with their offerings, though im sure they have some stuff
Microchip (Atmel) - Lots of good chips in their lineup. The arduino due is an ARM based arduino board (cortex m3).
Silicon labs - EFM32 range. Not too much experience with these

I have the most experience with ST stuff in a production environment. Usually they are pretty good with decent pricing, and if you use their cube software you can get protoypes up and running relatively quickly, though not quite as quick or easy as the arduino environment!
Maybe have a look at the F411 nucleo, or f446 nucleo development boards.

This is just a general list of some nmanufacturers and a little bit that i know about them off the top of my head.
Im sure there arre more out there and some other people might know more about certain manufacturers than i do.

But hopefully this is a good starting point for you to have a look at the different chips and dev boards.
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4305
  • Country: us
Re: Choosing an ARM Cortex M4 Development Board
« Reply #2 on: December 13, 2018, 02:38:38 am »
Quote
currently made using arduino
TI Launchpads Using MSP432 or TM4Cxxx chip, Teensy 3.x using Freescale (NXP) chips, and the new Adafruit "M4" boards (Atmel (Microchip) SAMD51) are all pretty zippy CM4 boards that are already supported by the Arduino Ecosystem.
Quote
I was leaning towards the teensy 3.5 ... but ... concerned about issues when it comes to try and turn this into a commercial product ... but also it looks very locked box as if most of the hard work is done for you and that if i was to make a custom PCB with a ARM Cortex M4 at the heart the whole world would be different (Programming methods, Programming software, Library usages and more) is this the case, how do i overcome this?
You are wise to worry about licensing issues of OSSW libraries.  But you should investigate more thoroughly, too.
Nothing stops you from using a Teensy 3.5 and writing all of your software from scratch, without using any libraries (although skipping libgcc and libc may be especially annoying!)  At this point, you're picking a PROCESSOR and development board for the development phase.  Using something supported by the Arduino environment gives you a head start on development, and if you can't remove the Arduino dependencies that need to be removed before final productization, then you probably don't have a viable product anyway.  Arduino uses standard gcc tools, libraries, and openocd programming software, but adds some additional code (like PJRC's Audio library, and the Arduino core.)  If you write your code minimizing the usage of those libraries (go ahead and do the bit to add printf() so that you're not using Serial.print(), and such), it should be pretty trivial to get it compiling in a more "traditional" environment.  (ok, I guess Teensy doesn't use openocd; they have a proprietary bootloader.  Which you COULD get rid of.)
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf