OpenMV Feature: CAN Support for IMXRT and ALIF
Description
Add machine CAN module for ALIF and MIMXRT. RT driver is already done but needs to be ported to the new API: https://github.com/micropython/micropython/pull/12324
Code Size
No response
Implementation
I hope the MicroPython maintainers or community will implement this feature
Code of Conduct
Yes, I agree
Add new port to Alif Ensemble MCUs
Summary
This PR adds a new alif port with support for Alif Ensemble MCUs; https://alifsemi.com/
Supported features of this port:
- UART REPL
- TinyUSB support, for REPL and MSC
- octal SPI flash support, for filesystem and XIP mode, including ROMFS
- Pin, ADC, I2C, UART, SPI peripheral support
openampmodule support for the second HE core- networking, cyw43 WiFi and BLE integration
Supported boards:
- ALIF_ENSEMBLE: the standard Alif dev kit with an AE7 MCU
- OPENMV_AE3: OpenMV's new AE3 camera board; see https://www.kickstarter.com/projects/openmv/openmv-n6-and-ae3-low-power-python-programmable-ai-cameras
General notes about the port:
- it uses
make, similar to other bare-metal ports here - the toolchain is the standard
arm-none-eabi-toolchain - flashing a board can be done using either the built-in serial bootloader, or JLink (both supported here)
- there are two required submodules (one for drivers/SDK, one for security tools), both of which are open source and on GitHub
- no special hardware or software is needed for development, just a board connected over USB
There are 175 commits in this PR, showing the development history. Some of those should probably be squashed down (a few already have been).
OpenMV have generously sponsored the development of this port.
Testing
Extensive testing has been done during development over the past 15 months. Most of the existing MicroPython test suite passes, including hardware and networking tests. (There are a few anomalies which still need fixing, such as an implementation of RTC.datetime.)