AnsweredAssumed Answered

STM32F2 bootloader (USART), write memory size issue

Question asked by David Boyd on Jul 3, 2014
Latest reply on Jul 4, 2014 by Clive One
This is my first post in the ST forums, so I'll try to organize the details about my issue:

My hardware environment -
I have a STM3220G -EVAL board which uses a STM32F207; our production target uses a STM32F205.

My task -
Develop host side code (in LabVIEW, though I think that's irrelevant to the issue), as part of a larger production test/calibration application, to serially load the STM in-system.

Current status -
I've digested the ST docs (AN2606, AN3155, 3156, PM0059, RM003).  I've developed working host routines which allow me to serially load the eval board.  I'm able to erase and reflash the eval device with its demo (STM322xG_EVAL_FW_V1.2.0.dfu).  (I've also implemented the USB DFU host side, using LabVIEW support for low-level USB control pipe transfers, though our target likely won't have an accessible USB FS interface, so that support likely won't leave the lab.)

The issue -

The same serial interface code works against our target part, but only if I limit the size of the serial 'Write Memory' commands to 64 bytes.  If I try 128 or 256, the target's bootloader fails (I don't get an ACK... I don't get a NAK, either, best I can tell).  The protocol says the maximum payload should be 256, and that size works fine against the eval board.

Don't know if it's relevant, but the eval bootloader, when queried, reports version 0x30; the target part bootloader reports 0x31.  It's unclear to me, from the documentation, if that's the bootloader version, or the bootloader protocol version.

My workaround is obvious - dole out the payload in 64 byte chunks.  But I'd like to know if there's some errata I've missed, or if I'm making a wrong assumption, etc.  I'd be grateful if anyone reading this knows why the two parts behave differently.


David J Boyd

Senior Test Engineer

Home Respiratory Care/HHS

Philips Healthcare

175 Chastain Meadows Court NW

Kennesaw GA USA 30144-3724

Office: 770-429-2809