經過一周的努力,終于將程序燒寫上去了,這周過去后,我一定要做兩件事,一是要好好的研究一下代碼,二是好好研究一下手冊。不了解芯片,走了不少彎路錯誤,還有會留下一大堆莫名其妙的問題。
正文:
1、小鋼炮的使用的MCU是STM32F401RET6,stm32比較常用的燒寫方式主要有JLINK、ULINK、STLINK、串口方式,根據“stm32F401xE”的手冊介紹,還可以使用USB OTG,I2C、SPI的方式將程序下載到MCU的Flash內。
datasheet 中關于Boot modes的介紹
2、我在學習過程中使用的是U盤版stlink V2燒寫器將程序下載到板卡上這里具體介紹一下過程整個燒寫過程
2.1、硬件連接
說明:上圖即為硬件連接圖,藍色的為U盤版stlink V2版本,使用這個燒寫器不用連接外部電源,上圖中,雖然P12端口連接的線,但并沒有連接電源,這里P4端口上的跳線帽可連可不連,從原理圖及實際的測試來看,該跳線帽只有在使用USB或者P12端口供電時才需要使用。
這里F1對應的排針是控制Boot模式的控制跳線,在此連接時將BOOT0和BOOT1都連接到GND側,這里對于STlink的連接,根據原理圖分別連接stlink的VCC3.3V(切記不要連到5V上,否則可能會有燒掉片子的危險),SWCLK,SWDIO,GND這四根線,在U盤版的 stlink V2 版本都有標注,這里不再贅述。
2.2、軟件設置
首先,下載小鋼炮的事例源碼,這里不再提供下載地址,打開開發環境(環境搭建已在上一份帖子中介紹完成),導入工程(project--》Open Project -- 》“彈出對話框”---》找到工程文件)。
此時你可以看到如上圖中情況,這里我們選擇cannon_v2,這里V1和V2表示對應的不同版本硬件的代碼,我這里得到的板卡是V2版本的,(查看硬件版本,請參考下圖中紅色箭頭指的的位置)
然后,進行編譯,源碼導入后,設置編譯及下在環境,project--》Options for Targets“cannon_v2”,或者直接點擊如下圖的按鈕,進入設置界面
這里很多帖子都已經敘述設置過程,在此我不再進行敘述,這里僅僅說一下注意事項,
a、設置前建議將stlink先接到USB上識別并且安裝好驅動;
b、在設置debuger選項時,點擊setting后會出現如下圖所示界面,如果你已經連接了燒寫器并且被正確識別,在JTAG Device Chain選項中不應該提示如紅圈所示的“No ST-LINK detected“,如果出現以上提示,說明ST-link沒有被正常識別。
c、Ort(藍色背景的選項),JTAG表示ST-link信息,SW表示目標板信息只有兩個選項在JTAG Device Chain選項均提示設備連接正常時,程序才能正常被下載到芯片中。
以上設置均正確設置后,點擊重新編譯,這樣可以保證你的二進制代碼是最新的。
最后點擊下載命令按鈕將程序下載到板卡上,紅色圈的按鈕
過程中遇見的問題說明:
1、stm32f401可以通過串口,stlink ,Ulink,Jlink等方式將程序下載到flash中去,這里我也嘗試過使用jlink的方式下載程序,但沒有成功,主要原因是使用的JLINK版本過于古老(2010年買的,之前的朋友留下的),推測是V7的固件,嘗試將固件升級到V8,但沒有成功,軟件總是無法識別,這里推測可能是已經壞掉了。 JLINK現在最新版本是V8,我從商家了解到的情況時JLINK現在已經基本停產了,正版行貨一般是¥2000.00,市面上賣的均為盜版,價格也是從¥95.00~¥200.00不等,JLINK對ARM的支持是最全面的,一般如果預算可以,建議購買JLINK。由于我手中已經有一個了,雖然不好使,但我覺得應該是我沒搞清楚那個東西的升級過程,所以我沒有購買JLINK。
2、網上對于開發stm32比較推薦使用的是stlink,這種仿真器分兩個種類一是正常板的(如下圖中白色燒寫器),另一種是U盤版的stlink(如下圖藍色燒寫器)。正常版本的網上價位很多,從二十幾元的到二百多的都有,用的也比較多,U盤版的stlink價格一般十幾塊到四十幾塊。兩者但從固件版本上來講,均為V2版本,但在從實際使用者的反饋來看,白色的故障率要比藍色的故障率高,這里我從論壇看到的使用反饋來看,白色的燒寫器在使用時需要給板卡外部供電,而藍色不用。我分別花了60塊大洋和30塊購買了這兩種燒寫器,通過實際使用,個人推薦U盤版的stlink,該版本不需要對板卡進行供電,同時價格低廉,使用白色的stlink一直也沒有成功過,也不知道是壞了,還是我的操作有問題。
3、根據手冊提示,stm32F401芯片還可以使用串口或者I2C、SPI總線方式將程序燒寫至flash中去,我查看了一下小鋼炮的原理圖,發現該板卡上并沒有MAX232這類電平轉換芯片,由于我對stm32串口的電氣參數還不了解,這里我沒有嘗試串口這種燒寫方式,以免由于自己的魯莽損壞板卡。如果有了解這種燒寫方式的前輩,希望你能分享您的經驗或者向我推薦相關的帖子,在先謝過了。
最后,說一點個人的建議,miniUSB的焊接強度不夠,極易損壞,我的就在嘗試使用USB連接時,不經意被掰掉了,然后嘗試焊接回去,強度依然不行,最終導致PCB焊盤損壞,現在已經無法在焊接回去了,這里希望板卡商能注意
-
STM32
+關注
關注
2270文章
10906瀏覽量
356565 -
JTAG
+關注
關注
6文章
401瀏覽量
71719 -
智能硬件
+關注
關注
205文章
2347瀏覽量
107686
發布評論請先 登錄
相關推薦
評論