今天要解決的是STM32單片機如何通過I2C接口燒錄晶片。
<I2C接口燒錄晶片,特別是光模塊行業特別注重。我看網絡上資料關於此的介紹比較少,今天單獨以實驗的方式分享到大家,希望後來者看過我的文章就會操作。>
硬體準備:
1>ST-Link-V3.
2>NUCLEO-H562ZI.
軟體:
STM32CubeProgrammer
如下截圖:
1. I2C燒錄可以自己寫bootloader存放到Flash中,也可利用STM32晶片內部的BootLoader,本文介紹的是STM32系統內部bootloader升級片上Flash通過I2C的接口。system bootloader內部框圖算法如下:
2. 操作步驟:
1>短接boot0管腳到VCC,如上圖板子下方的黑色跳線。
2>析子飛線到ST-LINK/V3:PC9-->SDA,PA8-->SCL,如上圖所示。參考文檔AN2606。<至於為什麼是這2個管腳,文檔有說明,如下截圖>
3>ST-LINK/V3連接電腦<只有ST-LINK/V3才帶有I2C燒錄擴展接口>,板子通電。<此時板子已經進入systembootloader中>
4>先打開GUI軟體 STM32CubeProgrammer,配置如下,然後點連接:<0x65是晶片從機地址,AN2606文檔有說明,如上截圖>
<I2C接口燒錄晶片,特別是光模塊行業特別注重。我看網絡上資料關於此的介紹比較少,今天單獨以實驗的方式分享到大家,希望後來者看過我的文章就會操作。>
硬體準備:
1>ST-Link-V3.
2>NUCLEO-H562ZI.
軟體:
STM32CubeProgrammer
如下截圖:
1. I2C燒錄可以自己寫bootloader存放到Flash中,也可利用STM32晶片內部的BootLoader,本文介紹的是STM32系統內部bootloader升級片上Flash通過I2C的接口。system bootloader內部框圖算法如下:
2. 操作步驟:
1>短接boot0管腳到VCC,如上圖板子下方的黑色跳線。
2>析子飛線到ST-LINK/V3:PC9-->SDA,PA8-->SCL,如上圖所示。參考文檔AN2606。<至於為什麼是這2個管腳,文檔有說明,如下截圖>
3>ST-LINK/V3連接電腦<只有ST-LINK/V3才帶有I2C燒錄擴展接口>,板子通電。<此時板子已經進入systembootloader中>
4>先打開GUI軟體 STM32CubeProgrammer,配置如下,然後點連接:<0x65是晶片從機地址,AN2606文檔有說明,如上截圖>
正常連接後,就可像SWD燒錄方式一樣進行。只要能正常連接上板子。GUI操作就比較簡單,在此就不必過多贅述。
5>GUI能連接上,那麼切換到命令行的方式也是OK的。命令行操作方式如下:
(1)先進入目錄: C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>此目錄是軟體STM32CubeProgrammer的安裝目錄
(2)然後運行命令:STM32_Programmer_CLI.exe -c port=I2C add=0x65 br=400 sm=fast -ob displ,如下截圖,如果正常顯示,則會讀出內部造項字節的配置信息。
3. 燒錄文件命令:如果是bin文件要指定燒錄起始地址,燒錄結果如下截圖。<附有部分代碼與測試效果>
STM32_Programmer_CLI.exe -c port=I2C add=0x65 br=400 sm=fast -w C:\Users\Logan\Desktop\ToggleLed.hex
STM32_Programmer_CLI.exe -c port=I2C add=0x65 br=400 sm=fast -w C:\Users\Logan\Desktop\ToggleLED.bin 0x08000000
相關參考文件請見附件。
評論