PSOC™ Edge E84 AI Evaluation Kit
Overview
The PSOC™ Edge E84 AI kit enables evaluation and development of applications using the PSOC™ Edge E84 Series Microcontroller (MCU) and a multitude of on-board multimedia, Machine Learning (ML), and connectivity features like Raspberry Pi compatible MIPI-DSI displays, analog and digital microphones for audio interfaces, and AIROC™ CYW55513IUBGT base Wi-Fi & Bluetooth combo Murata Type2FY connectivity module. The kit also has 512-Mbit Quad-SPI NOR Flash and 128-Mbit Octal-SPI HYPERRAM™. The board features an on-board programmer/debugger (KitProg3), JTAG/SWD debug headers, expansion I/O header, USB-C connectors, 6-axis IMU sensor, 3-axis magnetometer, barometric pressure sensor, humidity sensor, RADAR sensor, user LEDs, and a user buttor. The MCU power domain and perihporal power domain supports operating voltages of 1.8V and 3.3V.
PSOC™ E84 MCU is an ultra-low-power PSOC™ device specifically designed for ML, wearables and IoT products like smart thermostats, smart locks, smart home appliances and industrial HMI.
PSOC™ E84 MCU is a true programmable embedded system-on-chip with dual CPUs, integrating a 400 MHz Arm® Cortex®-M55 as the primary application processor, a 200 MHz Arm® Cortex®-M33 that supports low-power operations, and a 400 MHz Arm® Ethos-U55 as a neural net companion processor, graphics and audio block, DSP capability, security enclave with crypto accelerators and protection units, high-performance memory expansion capability (QSPI, and Octal HYPERRAM™), low-power analog subsystem with high performance analog-to-digital conversion and low-power comparators, on-board IoT connectivity module , communication channels, programmable analog and digital blocks that allow higher flexibility, in-field tuning of the design, and faster time-to-market.
Hardware
For more information about the PSOC™ Edge E84 MCUs and the PSOC™ Edge E84 AI Kit:
Kit Features:
Cortex®-M55 CPU with Helium™ DSP
Advanced ML with Arm Ethos™-U55 NPU
Low-Power Cortex®-M33
NNLite ultra-low power NPU
Analog and Digital Microphones
State-of-the-Art Secured Enclave
Integrated Programmer/Debugger
Kit Contents:
PSOC™ Edge E84 AI board
OV7675 DVP camera module
Supported Features
The kit_pse84_ai board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo -
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
kit_pse84_ai/pse846gps2dbzc4a/m33 target
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M33 CPU1 |
|
ADC |
on-chip |
PSOC Edge AutAnalog SAR ADC1 |
|
ARM architecture |
on-chip |
Infineon Serial Communication Blocks (SCB) node10 |
|
Audio |
on-chip |
Infineon PDM (Pulse Density Modulation) Controller1 |
|
CAN |
on-chip |
Infineon CAN FD controller wrapper. 1 |
|
on-chip |
Infineon MCAN Driver2 |
||
Clock control |
on-chip |
Generic fixed-rate clock provider5 |
|
on-chip |
Generic fixed-rate clock provider20 |
||
on-chip |
|||
Comparator |
on-chip |
Infineon Low Power Comparator (LPComp) for CAT1 family1 |
|
on-chip |
Infineon LPComp channel node (child of infineon,lp-comp)2 |
||
Counter |
on-chip |
Infineon TCPWM counter32 |
|
DMA |
on-chip |
Infineon CAT1 DMA2 |
|
Flash controller |
on-board |
Infineon CAT1 QSPI flash controller1 |
|
GPIO & Headers |
on-chip |
||
I2C |
on-chip |
Infineon CAT1 I2C driver1 |
|
I2S |
on-chip |
Infineon I2S Controller2 |
|
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv8-M NVIC (Nested Vectored Interrupt Controller)1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
Multi-Function Device |
on-chip |
Infineon AutAnalog (Autonomous Analog) Multi-Function Device1 |
|
on-chip |
Infineon AutAnalog Continuous Time Block (CTB) MFD2 |
||
on-chip |
Infineon AutAnalog Programmable Threshold Comparator (PTComp) MFD1 |
||
MTD |
on-chip |
Flash node4 |
|
Pin control |
on-chip |
Infineon CAT1 Pinctrl Container1 |
|
PWM |
on-chip |
Infineon TCPWM PWM32 |
|
RTC |
on-chip |
Infineon CAT1 family RTC device1 |
|
SDHC |
on-chip |
Infineon CAT1 SDHC/SDIO controller2 |
|
Sensors |
on-board |
The BMI270 is an inertial measurement unit1 |
|
on-board |
Infineon DPS310 temperature and pressure sensor1 |
||
on-board |
Sensirion SHT4x humidity and temperature sensor1 |
||
Serial controller |
on-chip |
Infineon CAT1 UART1 |
|
SRAM |
on-chip |
Generic on-chip SRAM1 |
|
Timer |
on-chip |
||
on-chip |
Infineon TCPWM Timer32 |
||
on-chip |
ARMv8-M System Tick1 |
||
USB |
on-chip |
Infineon USBHS1 |
|
Watchdog |
on-chip |
Infineon CAT1 Watchdog1 |
kit_pse84_ai/pse846gps2dbzc4a/m55 target
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M55 CPU1 |
|
ADC |
on-chip |
PSOC Edge AutAnalog SAR ADC1 |
|
ARM architecture |
on-chip |
Infineon PSE84 frontend of Arm Ethos-U NPU1 |
|
on-chip |
Infineon Serial Communication Blocks (SCB) node9 |
||
Audio |
on-chip |
Infineon PDM (Pulse Density Modulation) Controller1 |
|
Bluetooth |
on-board |
Connectivity chip that uses Infineon Bluetooth Host Controller Interface UART driver1 |
|
CAN |
on-chip |
Infineon CAN FD controller wrapper. 1 |
|
on-chip |
Infineon MCAN Driver2 |
||
Clock control |
on-chip |
||
on-chip |
Generic fixed-rate clock provider20 |
||
on-chip |
|||
Comparator |
on-chip |
Infineon Low Power Comparator (LPComp) for CAT1 family1 |
|
on-chip |
Infineon LPComp channel node (child of infineon,lp-comp)2 |
||
Counter |
on-chip |
Infineon TCPWM counter32 |
|
DMA |
on-chip |
Infineon CAT1 DMA2 |
|
Flash controller |
on-board |
Infineon CAT1 QSPI flash controller1 |
|
GPIO & Headers |
on-chip |
||
I2C |
on-chip |
Infineon CAT1 I2C driver1 |
|
I2S |
on-chip |
Infineon I2S Controller2 |
|
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv8.1-M NVIC (Nested Vectored Interrupt Controller)1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
Multi-Function Device |
on-chip |
Infineon AutAnalog (Autonomous Analog) Multi-Function Device1 |
|
on-chip |
Infineon AutAnalog Continuous Time Block (CTB) MFD2 |
||
on-chip |
Infineon AutAnalog Programmable Threshold Comparator (PTComp) MFD1 |
||
MTD |
on-chip |
Flash node4 |
|
Pin control |
on-chip |
Infineon CAT1 Pinctrl Container1 |
|
PWM |
on-chip |
Infineon TCPWM PWM32 |
|
RTC |
on-chip |
Infineon CAT1 family RTC device1 |
|
SDHC |
on-chip |
Infineon CAT1 SDHC/SDIO controller2 |
|
Sensors |
on-board |
The BMI270 is an inertial measurement unit1 |
|
on-board |
Infineon DPS310 temperature and pressure sensor1 |
||
on-board |
Sensirion SHT4x humidity and temperature sensor1 |
||
Serial controller |
on-chip |
Infineon CAT1 UART2 |
|
SRAM |
on-chip |
Generic on-chip SRAM1 |
|
Timer |
on-chip |
||
on-chip |
Infineon TCPWM Timer32 |
||
on-chip |
ARMv8.1-M System Tick1 |
||
USB |
on-chip |
Infineon USBHS1 |
|
Watchdog |
on-chip |
Infineon CAT1 Watchdog1 |
Connections and IOs
Please refer to kit_pse84_ai User Manual Website for more details.
Programming and Debugging
The kit_pse84_ai board supports the runners and associated west commands listed below.
| flash | debug | debugserver | attach | rtt | |
|---|---|---|---|---|---|
| openocd | ✅ (default) | ✅ (default) | ✅ | ✅ | ✅ |
| probe-rs | ✅ | ✅ | ✅ | ✅ |
The KIT-PSE84-AI includes an onboard programmer/debugger (KitProg3) to provide debugging, flash programming, and serial communication over USB. Flash and debug commands use OpenOCD and require a custom Infineon OpenOCD version, that supports KitProg3, to be installed.
Please refer to the ModusToolbox™ software installation guide to install Infineon OpenOCD.
Flashing
Applications for the kit_pse84_ai/pse846gps2dbzc4a/m33 board target can be
built, flashed, and debugged in the usual way. See
Building an Application and Run an Application for more details on
building and running.
Applications for the kit_pse84_ai/pse846gps2dbzc4a/m55
board target need to be built using sysbuild to include the required application for the other core.
Enter the following command to compile hello_world for the CM55 core:
west build -p -b kit_pse84_ai/pse846gps2dbzc4a/m55 samples/hello_world --sysbuild
Debugging
The path to the installed Infineon OpenOCD executable must be available to the west tool
commands. There are multiple ways of doing this. The example below uses a permanent CMake argument
to set the CMake variable OPENOCD.
# Run west config once to set permanent CMake argument west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd.exe # Do a pristine build once after setting CMake argument west build -b kit_pse84_ai/pse846gps2dbzc4a/m33 -p always samples/basic/blinky west flash west debug# Run west config once to set permanent CMake argument west config build.cmake-args -- -DOPENOCD=path/to/infineon/openocd/bin/openocd # Do a pristine build once after setting CMake argument west build -b kit_pse84_ai/pse846gps2dbzc4a/m33 -p always samples/basic/blinky west flash west debug
Once the gdb console starts after executing the west debug command, you may now set breakpoints and perform other standard GDB debugging on the PSOC E84 CM33 core.
Secure Boot
The PSOC™ Edge E84 MCU includes an extended boot stage in ROM that, on reset, jumps to the first application image. On the KIT-PSE84-AI the destination is selected by the level of the boot pin, which by default is pulled HIGH and causes the ROM extended boot to jump to the first application located in external flash.
To make the ROM extended boot jump to a first application located in internal RRAM, one of the following must be done:
Hardware rework: remove resistor
R188and populate resistorR187to pull the boot pin LOW.Reprovisioning (no hardware rework): reprovision the device using the same flow described in Enabling Secure Boot below, but customize the generated OEM policy JSON to ignore the boot pin state. While following the provisioning steps, after the OEM key pair has been generated, set
oem_alt_boottofalseinpolicy/policy_oem_provisioning.jsonin the project, before provisioning the kit.
In either case, the boot behavior is then locked to booting from RRAM and must be reverted
(reattaching R188 / removing R187, or reprovisioning again with oem_alt_boot set back
to true) to re-enable booting from external flash.
In all cases the first application image must be in MCUboot image format, i.e. it must be preceded by an MCUboot image header (magic number, header size, vector table address, image size) and followed by the trailer with the hash/signature TLVs. Out of the box, the device is not provisioned for secure boot, so the ROM extended boot only checks the image format and hash; no cryptographic signature verification is performed against a provisioned key.
The MCUboot image format is produced automatically by the
soc/infineon/edge/pse84/pse84_metadata.cmake helper
pse84_add_metadata_secure_hex(), which invokes imgtool sign with the header address,
header size and slot size derived from the devicetree memory map. By default this helper does not
pass a signing key, which is sufficient for a non-provisioned device.
Enabling Secure Boot
To enable real signature verification by the ROM extended boot, the device must be reprovisioned. Follow sections 2.2.1, 2.2.2 and 2.2.3 of the PSOC™ Edge Security Getting Started Application Note to:
Generate (or import) the OEM signing key pair.
Provision the device with the corresponding public key and lifecycle transition.
Program the desired security counter / anti-rollback value.
After the device has been reprovisioned, the
pse84_add_metadata_secure_hex() function in
soc/infineon/edge/pse84/pse84_metadata.cmake must be updated so that imgtool sign
also receives the signing key and a security counter. The relevant additions are:
${PYTHON_EXECUTABLE} ${IMGTOOL} sign --version "0.0.0+0"
--header-size ${header_size} --erased-val 0xff --pad-header
--slot-size ${slot_size} --hex-addr ${header_addr}
--key <oem-private-key-file>
--security-counter <value>
${INPUT_FILE} ${OUTPUT_FILE}
Where <oem-private-key-file> is the path to the OEM private key file (e.g. a .pem
file) matching the public key provisioned into the device, and <value> is the security
counter assigned during provisioning. Without these additional parameters, images built for a
provisioned device will be rejected by the ROM extended boot.