cancel
Showing results for 
Search instead for 
Did you mean: 

ISSUE with Erase Command of STM32F4 CAN Bool loader

Marcus Pelletier
Associate II
Posted on June 20, 2017 at 22:02

I'm using the CAN Boot loader on the STM32F405xx chip and have an issue with the Erase command (0x43).

I am able to execute 0x00, 0x01, 0x02, 0x11, 0x21 & 0x31 as described in the Protocol Document, however when ID: 0x43 is attempted with Data: 0xFF (Global Erase) parameter or, for example, a 3 page erase with Data: 0x02, 0x00, 0x06 & 0x07

There is no ACK nor a NAK response.

Any ideas? (Boot loader version returned is 2 and ID is 0x0413)

2 REPLIES 2
Marcus Pelletier
Associate II
Posted on June 21, 2017 at 00:58

It appears that the actual command behavior does not match the CAN Protocol document description. Does anyone know of a working example?

I'm using a RS-232/CAN adapter to communicate and only have trouble with the Erase command.

I have already implemented a Windows/RS-232 application that works with the UART Bootloader so I feel that the issue lies with my interpretation of the content of the CAN messages that have ID: 0x43.

I send the following:

ID: 0x43, DLC: 8, Data: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07

And get back:

ID 0x43, DLC: 1, Data 0x79.

But then nothing else. The documentation leads me to believe that after all 8 of these sectors have been erased I should get an ACK, OR I should be getting an ACK as each of these 8 sectors is erased... OR ????

Now I'm pretty sure neither is correct.

Marcus Pelletier
Associate II
Posted on June 25, 2017 at 04:32

Various issues were resolved to get the CAN erase commands to execute, but the erase commands do not work while the IAR debugger is running. Disconnecting the debugger allows the erase commands to work.

there is probably some warning about this in the IAR documentation... right?