地去接觸這一塊, 因此本範例使用MCU去升級MCU程式的方式來示範STM32 Usart
Bootloader該如何使用.
2. 基本上每一顆STM32 MCU的升級方式都有些不同, 因此必須要先透過Datasheet來了解有哪
幾種升級的方式, 由於本範例是建立在透過STM32F401 Discovery Board去升級其它的STM32
MCU, 因此我們可以先假設使用STM32F401去升級STM32F401, 從F401 Datasheet上看起來,
Usart Bootloader只支援Usart1(PA9/PA10), Usart2(PD5/PD6).
3. Hardware Define:
- Test Platform: stm32f401 discovery board
- Usart Tx: PA2
- Usart Rx: PA3
- Boot0: PA15
- Reset: PB5
4. Mode of connection:
- PA2 -> Device_Usart_Rx(ex: PA10)
- PA3 -> Device_Usart_Tx(ex: PA9)
- PA15 -> Device_Boot0
- PB5 -> Devices_Reset
5. Code flow:
- Init: Usart2(pa2/pa3) & PA15(boot0) & PB5(reset) & USB(vcp) Initialize.
- Main Flow: 等待USB(vcp)接收Binary file, 若接收完畢, 則開始將Binary file透過Usart2分 段送出給Device.
6. Boot Mode Example(Get Version):
- 為何要這樣送2bytes又接收5bytes呢? 主要是依照st所提供的文件來做好做滿, 如下圖是Get Version 的流程圖, 可以看到Host送出0x01 + 0xfe後, 並等待device是否有送出ack, 如果有的話, 則連續接收5bytes, 而這5bytes的定義則都定義好了.
7. Test Flow:
- 需特別注意tera term在執行send file時候, 需記得勾選binary option.
8. Test Code Download Link:
9. Logic Analyzer Signal:
LA (Please use Saleae Logic 1.2.5 Beta to Open)
沒有留言:
張貼留言