天天看點

STM32燒錄程式遇坑記錄

1. 前言

嵌入式工程師的工作内容

- 閱讀和編寫工程代碼
- 看硬體原理圖,查閱晶片資料手冊
           
第一部分

閱讀和編寫工程代碼

就是說當我們的工程比較複雜時,将涉及到非常多的硬體和功能,作為軟體工程師,首先要做的是看懂晶片商或第三方提供的工程代碼,然後在此基礎上移植或添加代碼。

比如,藍牙晶片廠商提供的藍牙晶片,以恒玄科技的BES2300為例,廠商會提供相應的軟體開發包,即SDK
SDK中提供了軟體開發的基礎,如硬體抽象層、作業系統和上層應用入口和API等
我們要熟悉其提供的API接口,并利用其開發新功能

再比如,工程中可能會用到一些智能硬體和算法,這部分算法可能是由第三方提供的,如音頻處理算法
這部分内容我們也需要了解
           
第二部分

嵌入式開發人員的日常不僅僅是敲代碼,還要看懂硬體原理圖,了解晶片功能和IO引腳等

對于硬體原理圖需要看什麼,部落客簡單總結如下

- 晶片複位方式
    - 硬體複位方式
    - 軟體複位方式
- 電源樹
    - 開發闆的電源輸入
    - 電源供電器件
    - 5V 電壓供電器件
    - 3.3V 電壓供電器件
- MCU 引腳配置
    - GPIO:搞清楚GPIO與器件連接配接情況、輸入輸出狀态、是否産生中斷等 
    - I2C
    - UART
           

這裡,對于電源樹部分再啰嗦一下:

當系統中采用锂電池供電時,就會涉及到兩部分内容

- 锂電池充放電與電量檢測
    - 充放電IC:如 MP2661、BQ25150      // 給锂電池充電,并提供系統所需的各種電壓,如3.3V、5V等
    - 電量檢測IC:如 MAX17050
- 電源保護與電壓轉換
    - OVP:過壓保護
    - OCP:過流保護
    - LDO:低壓差線性穩壓器
    - BOOST:升壓電路
           

2. 軟體燒錄流程

這裡說的是從工廠拿回來的裸闆焊接調試的流程,跟我們平常使用的開發闆燒錄程式不太一樣,因為開發闆上已經引出程式下載下傳接口和調試接口,但産品開發時有可能需要自己引線。

主要流程與細節如下:

- 測試點引線
    - 電源:5v / 3.3v / GND
    - 序列槽:TX / RX
    - 燒錄:SWDIO / SWCLK
- 引線導通測試
    - 萬用表二極管檔測試
- 程式燒錄
    - J-Link:需安裝驅動
    - ST-Link:需安裝驅動
    - J-Flash
           

引線完成之後,不要急于上電,用萬用表測試一下

- 引線導通情況
- 電源短接情況
- 接線是否錯誤
	- 避免産生以下情況
	- 5V 接到 3.3 V
	- 5V/3.3V 與 GND 接反
           

JLINK V9 可支援JTAG和SWD兩種調試模式,同時STM32也支援JTAG 和SWD。

是以,我們有2種方式可以用來調試,當用JTAG調試的時候,占用的IO線比較多,而SWD 調試的時候占用的IO 線隻需要兩根即可。

本部落格是以Keil開發環境為例,程式下載下傳方式有上述三種,使用不同的下載下傳工具,需要在Keil中進行設定:

魔法棒 -》 Debug -》 SW 方式
           

若接線正常後,當上電和插上J-link後,在 Debug 視窗中應能識别到 J-link 和 晶片MCU,如下圖:

左側是 J-link裝置

右側是 晶片裝置

STM32燒錄程式遇坑記錄

3. 遇坑記錄

3.1 Loading PDSC Debug Description Failed

打開工程時,報如圖錯誤

解決方法

STM32燒錄程式遇坑記錄
3.2 識别不到CPU

問題現象:在 Debug 視窗能夠顯示 J-link 裝置,但不顯示晶片

問題分析:

  • 晶片未工作
  • 接線問題、虛焊等

對于晶片未工作這種情況,排除方法:

- 測量 MCU 是否上電
- 測量晶振是否正常
           

繼續閱讀