I have a specific set of requireents and I wanted to see if I can get some helpful recomendations from the Professionals.
- RTOS Support (Preferable FreeRTOS or anything that is Free and has a good support Community)
- SDMMC Support (MicroSD Card over 4-bit Data IO interface)
- SPI Flash Memory Support (Both H/W and Firmware) (~16MB) support (to implement littlefs)
- Sufficient RAM (can be all integrated or Internal 512 KB + External SPI RAM). Must have good F/W support for external SPI RAM.
- Two (or Three) CAN Controllers, i.e., MCU must be able to simultaneously connect upto Three CAN Buses
- Easy to Implement HAL drivers for the CAN controllers
- USB Device Communication (CDC), i.e., the PC can directly talk to the MCU via USB CDC, no need of USB to TTL conversion, like CP2102 or FT232RL.
- Three or more UART ports (apart from the Debug Port).
- OTA Update from a Firmware File on the SD Card (Preferably some existing example)
- Integrated Bluetooth/Wi-FI is an added Bonus, but not mandatory, as I can add external Chips through UART
I am using ESP32 and ESP32-S3 right now. These MCUs/SOCs support most of my requirements, except independent multiple CAN controllers. I have all the H/W and Software stacks configured and working flawlessly for ESP32(and ESP32S3). Now I need to build a single device which can communicate with one PC or Android Device over Bluetooth/Wi-Fi, but can talk over three CAN bus simultaneously. Before jumping onto the rabbit-hole of Adding three ESP32s on one PCB, and dealing with the resulting complexities, I wanted to get some other opinions, hence this post.
1