cancel
Showing results for 
Search instead for 
Did you mean: 

After PIC is stm32 good start ?

MAZ.1
Associate II

I am trying to jump into embedded world but i have very less prior experience .... I have been programming PIC16f877a and i felt comfortable with it but now i want to go deep ... Should i opt for STM32 ?

Thanks in Advance 🙂

1 ACCEPTED SOLUTION

Accepted Solutions
gregstm
Senior III

Yes. I would recommend selecting the M4 core, and if you ever want to run something off a battery (and have good/maximum battery life) go for the STM32L4(+). The M4 core can do things with less instructions than the lower cores (I tend to think of it as a V8 chugging along), and in battery applications this can save you power. The floating point unit (a bonus with the M4) is such a luxury.... (especially if you ever need to do heavy duty maths - or anything that requires a SQRT function - or not have to worry about manually scaling your data all the time). ... and you might want to get this book as a reference:  "The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors" by Joseph Yiu.

I use Keil as the development system, but it is restricted to 32K program size (which has been fine for me so far), but if you want to buy an unlimited version it costs an arm and a leg. The STM32L496 Nucleo-144 gives lots of easy access pins to play with..

View solution in original post

5 REPLIES 5
Ozone
Lead

I would rather say, Cortex M in general.

There are several vendors offering Cortex M0/M3/M4/M7 core based devices, with compatible cores.

Considering core variant and clock frequency, there is very little difference performance-wise.

So, I suggest to concentrate on the software/middleware package the vendor provides, and the peripherals.

In that order, since a well-written driver can make up for a mediocre periphery design (or the all-too-common IP copy&paste from 8-bit MCUs).

The IDE/Toolchain is another consideration.

Many vendors provide toolchains for free, but only for their own product line.

Others (like Keil uVision, IAR WB or Rowley's Crosswork) are fit for many different products, but rarely free (or restricted).

Thank you 🙂

gregstm
Senior III

Yes. I would recommend selecting the M4 core, and if you ever want to run something off a battery (and have good/maximum battery life) go for the STM32L4(+). The M4 core can do things with less instructions than the lower cores (I tend to think of it as a V8 chugging along), and in battery applications this can save you power. The floating point unit (a bonus with the M4) is such a luxury.... (especially if you ever need to do heavy duty maths - or anything that requires a SQRT function - or not have to worry about manually scaling your data all the time). ... and you might want to get this book as a reference:  "The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors" by Joseph Yiu.

I use Keil as the development system, but it is restricted to 32K program size (which has been fine for me so far), but if you want to buy an unlimited version it costs an arm and a leg. The STM32L496 Nucleo-144 gives lots of easy access pins to play with..

Thank you so ​much .... it was really helpful...i will definitely take a look at book but do u recommend some tutorials to get started ... i have already bought f4 discovery board tho 😁

" do u recommend some tutorials to get started" - if you want to learn about the basics about the processor, I would recommend the Yiu book. Alternatively, download the STM "Programming Manual" for the M4 processors (PM0214?). I am probably not the best to help you with development systems etc. I prefer to keep my development system to the bare minimum (I have an allergy to bloated software), and write direct to registers and have not ventured into the "cube" development system. I would prefer if I was given a list of registers/definitions and what to write to them to get peripherals up and running. Be prepared to study the Reference manual...lots,,, The F4 board sounds good.