In the new revision of the controller board, we want to be able to program the Microcontrollers over CAN.
SWD: Serial Wire Debug
It's a debug protocol.
Programming:
In the MS12 controller board, we got debug capability through PA13 and PA14, which give us debug capability over SWD. This is what the connector looks like:
There's the PB6 and PB7 ports that are used for re-flashing. Here's what the data-sheet has to say:
Page 53 Reference Manual
Embedded boot loader
The embedded boot loader is located in the System memory, programmed by ST during production. It is used to reprogram the Flash memory using one of the following serial interfaces:
USART on pins PA14/PA15 or PA9/PA10
I2C on pins PB6/PB7 (STM32F04xxx, STM32F07xxx and STM32F09xxx devices only)
USB DFU interface (STM32F04xxx and STM32F07xxx devices only)
What are we using? NEITHER! We use gdb to flash.
Boot Configuration:
Data sheet has this table for boot configuration:
Our schematic grounds the BOOT0 pin.
This means that we're always operating on Main Flash Memory.
Section 11.2 of AN2606 Application Note:
Key Components
Part | Info | Digikey Link |
---|---|---|
STM32F072CBT6 | ARM Cortex-M0 Includes CAN controller, 37 IOs, 48-LQFP | |
TCAN332DR | CAN Transceiver Replacement for the SN65HVD232DR |