To choose my microcontroller, I will first start by clearly defining the various requirements that I must satisfy in order to drive my display and control the various interface components.
I know that I will want to consider at least the various ESP devices like the ESP32 and ESP8266, and also the PSoC 6 after having used a PSoC 5 in COMPSYS 301. I will also want to consider a few STM32 microcontrollers, so I can become more familiar with these for industry.
In my decision making, I will want to primarily consider, amongst other things:
Regarding connectivity, I think it would be nice to have Bluetooth/WiFi options available, but this is a primary goal of the project. It may be nice if I could develop some software application/webpage to connect to the display, but this may be too much scope creep and outside the goals of the project. This would heavily favour the ESP8266/ESP32 or PSoC 6 with BLE. Alternatively, I may choose to use an STM32 with an ESP purely as a connectivity module—but I think this will need to be well justified.
Further, preferably, I would like if the microcontroller I choose did not require a vendor-specific IDE, but rather could be configured to work with PlatformIO. I already know that the ESP32 and ESP8266 are compatible with this workflow, but I will need to investigate further for other microcontroller families.
After considering the various families listed above, I have come to the conclusion as detailed within ESP8266 > Conclusions and ESP32 > Conclusions that I feel it would be best if I took this opportunity to gain a firmer grounding in an ARM-architecture microprocessor, and particularly something as common in industry as an STM32.
I also already have some experience with the ST system from my internship last year, such that I am already familiar with the STM32Cube family of software packages, and the experience of developing using ST support resources/application notes etc.
As noted above, I still wish to incorporate WiFi and BLE into this project, so I will need to investigate whether something like the STM32W line is best, or perhaps another STM32 device family with an external module.
I will start with familiarising myself further with the various ARM Cortex Processors, and using the ARM Cortex-M Processor Comparison Table to determine the processor that is most suitable for my needs.
Having performed the above evaluation in ARM Cortex Processors > Cortex-M to learn that any Cortex-M core will be suitable, I will then use the STM32 MCU product selector to select a specific STM32 microcontroller that satisfies my other requirements.
Following a thorough selection process as documented in STM32 > Product Selector, I have decided to proceed with the STM32U575CIT6Q
.
Having selected my STM32U575CIT6Q microcontroller, I will now need to perform a schematic capture in Altium—starting by creating my own library component as per my Schematic Guidelines.
AN5373
I will then begin with adding my power decoupling capacitors, following the guidance provided in Figure 25
of the datasheet to place:
As I am not using the AN5373
para 2.1.4
.
I will also apply some additional filtering to the 2.2
of AN5373
. I will do this by adding a ferrite bead between
AN5373
AN2867
AN5225
AN4879
Filter the
AN5612