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裝置
右側是 晶片裝置
3. 遇坑記錄
3.1 Loading PDSC Debug Description Failed
打開工程時,報如圖錯誤
解決方法
3.2 識别不到CPU
問題現象:在 Debug 視窗能夠顯示 J-link 裝置,但不顯示晶片
問題分析:
- 晶片未工作
- 接線問題、虛焊等
對于晶片未工作這種情況,排除方法:
- 測量 MCU 是否上電
- 測量晶振是否正常