Skip to main content
MAZ.1
Associate
October 14, 2020
Solved

After PIC is stm32 good start ?

  • October 14, 2020
  • 5 replies
  • 1584 views

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 :)

    This topic has been closed for replies.
    Best answer by gregstm

    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..

    5 replies

    Ozone
    Principal
    October 14, 2020

    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).

    MAZ.1
    MAZ.1Author
    Associate
    October 16, 2020

    Thank you :)

    gregstm
    gregstmBest answer
    Senior II
    October 16, 2020

    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..

    MAZ.1
    MAZ.1Author
    Associate
    October 16, 2020

    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 :beaming_face_with_smiling_eyes:

    gregstm
    Senior II
    October 16, 2020

    " 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.