Difference between revisions of "EEPROJ Selecting Low-End MCU for our projects"

From 21st Century Products Wiki
 
(7 intermediate revisions by the same user not shown)
Line 2: Line 2:
TODO see other page why M4F.
TODO see other page why M4F.


=== IC Selection ===
=== Hardware ===
 
==== IC Selection ====
Selection criteria:
Selection criteria:


Line 10: Line 12:


The following MCUs fit "low-end" criteria for our projects:
The following MCUs fit "low-end" criteria for our projects:
{| class="wikitable"
{| class="wikitable" style="text-align: center
|+Low-End MCUs for our projects
|+Low-End MCUs for our projects
!
!
! colspan="4" |Microchip Technology
! colspan="4" |Microchip Technology
! colspan="9" |STMicroelectronics
! colspan="19" |STMicroelectronics
!NXP
!NXP
|-
|-
Line 23: Line 25:
!Family
!Family
!Family
!Family
!Family
! colspan="14" |Family
!
!
!
!Family
!Family
!Family
!Family
Line 39: Line 38:
|SAM D51
|SAM D51
|STM32F3
|STM32F3
|'''STM32F4'''
| colspan="14" |'''STM32F4'''
|
|
|
|STM32G4
|STM32G4
|STM32L4
|STM32L4
Line 55: Line 51:
|
|
|Mixed-signal microcontrollers
|Mixed-signal microcontrollers
|'''High-performance'''
| colspan="14" |'''High-performance'''
|
|
|
|Mixed-signal microcontrollers
|Mixed-signal microcontrollers
|Ultra-low power
|Ultra-low power
Line 65: Line 58:
|
|
|-
|-
|Sub-family
|Sub-family type
|
|
|
|
|
| colspan="6" |'''Advanced'''
| colspan="3" |Foundation
| colspan="5" |Access
|
|
|
|
|
|-
|Sub-family PN
|
|
|
|
|
| colspan="2" |'''STM32F469/479'''
| colspan="2" |'''STM32F429/439'''
| colspan="2" |'''STM32F427/437'''
|STM32F446
|STM32F407/417
|STM32F405/415
|STM32F401
|STM32F410
|STM32F411
|STM32F412
|STM32F413/F423
|
|
|
|
|
|-
|Sub-family explanation
|
|
|
|
|
|'''469: No Encryption'''
|479: Encryption
|
|
|
|
|
|
|
Line 88: Line 129:
|
|
|'''208-LQFP'''
|'''208-LQFP'''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line 104: Line 155:
|
|
|'''216-TFBGA'''
|'''216-TFBGA'''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line 118: Line 179:
|Without Ethernet, but with CAN
|Without Ethernet, but with CAN
|Without Ethernet or CAN
|Without Ethernet or CAN
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line 130: Line 201:
|-
|-
|SPI
|SPI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line 146: Line 227:
|-
|-
|USB
|USB
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line 162: Line 253:
|-
|-
|Ethernet
|Ethernet
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line 184: Line 285:
|
|
|Pinout, M7 family, open source hardware
|Pinout, M7 family, open source hardware
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line 200: Line 311:
|
|
|Less refined documentation compared to Microchip
|Less refined documentation compared to Microchip
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line 210: Line 331:
|-
|-
|Software
|Software
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line 226: Line 357:
|-
|-
|Best non-BGA IC PN
|Best non-BGA IC PN
|'''ATSAME54P20A-AU'''
'''$9.36'''
'''128-TQFP'''
|
|
|
|
|'''STM32F469BIT6'''
'''$23.02'''
'''208-LQFP'''
|STM32F479BIT6
$23.90
208-LQFP
|
|
|
|
|
|
|
Line 242: Line 392:
|-
|-
|Best BGA IC PN
|Best BGA IC PN
|'''ATSAME54P20A-CTUT'''
'''$9.78'''
'''120-TFBGA'''
|
|
|
|
|'''STM32F469NIH6'''
'''$23.02'''
'''216-TFBGA'''
|STM32F479NIH6
$23.90
216-TFBGA
|
|
|
|
|
|
|
Line 257: Line 426:
|
|
|-
|-
|Datasheet
|
|
|
|
|
|[https://www.st.com/resource/en/datasheet/stm32f469bi.pdf stm32f469ae.pdf]
|
|
|
|
|
|
|
Line 273: Line 452:
|
|
|}
|}
==== Reference Designs ====
===== Evaluation Boards =====
STMicroelectronics STM32F469:
32F469IDISCOVERY
TODO
Microchip Technology
TODO
NXP
TODO
===== Third-Party =====
TODO
=== Software ===
==== Programming Language ====
Programming language for all of our projects shall be real C.
We explicitly choose to NOT care about any interpreted or shell languages, because of their waste and low efficiency.
If available, we can pass-thru any of vendor's or third party support for related languages, like Arduino and others, but won't use it in our own projects.
==== Operating System ====
Although simple projects can be, and have historically been based on simplistic programming approaches like Super Loop / Infinite Loop / Foreground-Background systems, typically using ISRs (interrupts) to handle high-priority functions with prompt attention, given the complexity of our projects, we will be using a pseudo-RTOS. We say pseudo because with MCUs nothing is actually real-time, and nothing truly works in parallel.
Among what is available, uC/OS-III has always caught our attention, but its cost used to be the only factor constraining us. Now that it has been released as open source, we will be defaulting to it in our projects. uC/OS-III has awesome documentation, awesome additional documentation like books, plenty of community support, very capable and full-featured RTOS, etc.
FreeRTOS we always could not stomach. Incomplete documentation was just the start. Sorry, we are going to pass unless situation improves.
==== IDEs ====
STMicroelectronics ARM Cortex MCUs IDE is STM32CubeProgrammer. It also runs on Linux natively. The combination of three factors: large IC pinout for the relevant series, Linux support, and Open Source Hardware principles has all of our attention!
Microchip Technology TODO IDE.
NXP TODO IDE.
TODO
=== TODO continue ===

Latest revision as of 20:23, 4 February 2022

Introduction

TODO see other page why M4F.

Hardware

IC Selection

Selection criteria:

Only paying attention to Microchip Technology, STMicroelectronics, and NXP per TODO.

For low-end projects, will prefer non-FN, non-BGA packages, to significantly decrease project design cost, improve manufacturability, testability, repairability, and ability of CCA assembly without professional, precision, and high-cost equipment.

The following MCUs fit "low-end" criteria for our projects:

Low-End MCUs for our projects
Microchip Technology STMicroelectronics NXP
Family Family Family Family Family Family Family Family Family Family Family
Family Name SAM E54 SAM E53 SAM E51 SAM D51 STM32F3 STM32F4 STM32G4 STM32L4 STM32L4R STM32L4S
Family Type Mixed-signal microcontrollers High-performance Mixed-signal microcontrollers Ultra-low power Ultra-low power Ultra-low power
Sub-family type Advanced Foundation Access
Sub-family PN STM32F469/479 STM32F429/439 STM32F427/437 STM32F446 STM32F407/417 STM32F405/415 STM32F401 STM32F410 STM32F411 STM32F412 STM32F413/F423
Sub-family explanation 469: No Encryption 479: Encryption
Largest non-BGA package 128-TQFP 128-TQFP 128-TQFP 128-TQFP 208-LQFP
Largest BGA package 120-TFBGA 120-TFBGA 120-TFBGA 120-TFBGA 216-TFBGA
Features With Ethernet and CAN With Ethernet, without CAN Without Ethernet, but with CAN Without Ethernet or CAN
SPI
USB
Ethernet
Advantages Documentation, community support, user base, Arduino bootloader Pinout, M7 family, open source hardware
Disadvantages Limited pin count compared to STM, NXP Less refined documentation compared to Microchip
Software
Best non-BGA IC PN ATSAME54P20A-AU

$9.36

128-TQFP

STM32F469BIT6

$23.02

208-LQFP

STM32F479BIT6

$23.90

208-LQFP

Best BGA IC PN ATSAME54P20A-CTUT

$9.78

120-TFBGA

STM32F469NIH6

$23.02

216-TFBGA

STM32F479NIH6

$23.90

216-TFBGA

Datasheet stm32f469ae.pdf

Reference Designs

Evaluation Boards

STMicroelectronics STM32F469:

32F469IDISCOVERY

TODO


Microchip Technology

TODO


NXP

TODO

Third-Party

TODO

Software

Programming Language

Programming language for all of our projects shall be real C.

We explicitly choose to NOT care about any interpreted or shell languages, because of their waste and low efficiency.

If available, we can pass-thru any of vendor's or third party support for related languages, like Arduino and others, but won't use it in our own projects.

Operating System

Although simple projects can be, and have historically been based on simplistic programming approaches like Super Loop / Infinite Loop / Foreground-Background systems, typically using ISRs (interrupts) to handle high-priority functions with prompt attention, given the complexity of our projects, we will be using a pseudo-RTOS. We say pseudo because with MCUs nothing is actually real-time, and nothing truly works in parallel.

Among what is available, uC/OS-III has always caught our attention, but its cost used to be the only factor constraining us. Now that it has been released as open source, we will be defaulting to it in our projects. uC/OS-III has awesome documentation, awesome additional documentation like books, plenty of community support, very capable and full-featured RTOS, etc.

FreeRTOS we always could not stomach. Incomplete documentation was just the start. Sorry, we are going to pass unless situation improves.

IDEs

STMicroelectronics ARM Cortex MCUs IDE is STM32CubeProgrammer. It also runs on Linux natively. The combination of three factors: large IC pinout for the relevant series, Linux support, and Open Source Hardware principles has all of our attention!

Microchip Technology TODO IDE.

NXP TODO IDE.

TODO

TODO continue