目錄
1. GPIO詳解
2. ADC配置
3. TIME1 PWM配置
4.?比較器1配置
5. TIME2配置
6. 比較器1、2配置
7. 電機啟動換向過程及參數(shù)調(diào)試
電動工具主要外設(shè)資源總覽
1、GPIO詳解
輸出:支持推挽輸出和開漏輸出(帶上拉/下拉控制)
輸入:支持浮空、上拉/下拉、模擬輸入
每個 IO 速度可選
支持位操作(置位/復(fù)位寄存器 GPIOx_BSRR)
GPIOA 和 GPIOB 支持鎖定配置
支持復(fù)用功能選擇和模擬功能
支持 GPIO 快速翻轉(zhuǎn)(2 clock)
輸入模式
輸入施密特觸發(fā)器激活
由 GPIOx_PUPDR 寄存器激活上拉/下拉電阻控制
通過讀取輸入數(shù)據(jù)寄存器獲取 I/O 狀態(tài)
開漏模式:
輸出數(shù)據(jù)寄存器寫 0 激活輸出 N-MOS(輸出低),寫 1 端口處于高阻態(tài)(P-MOS 不被激活)
推挽模式:
輸出數(shù)據(jù)寄存器寫 0 激活輸出 N-MOS(輸出低),寫 1 激活輸出 P-MOS(輸出高)
上拉/下拉電阻控制
通過讀取輸入數(shù)據(jù)寄存器獲取 I/O 狀態(tài)
通過讀取輸出數(shù)據(jù)寄存器獲取最后寫入該寄存器的值
I/O 配置復(fù)用功能模式
輸出緩沖器可被配置為開漏或推挽
外設(shè)信號(發(fā)送使能或數(shù)據(jù))控制輸出緩沖器
由 GPIOx_PUPDR 寄存器激活上拉/下拉電阻控制
通過讀取輸入數(shù)據(jù)寄存器獲取 I/O 狀態(tài)
芯片數(shù)據(jù)手冊
引腳定義查詢
端口功能復(fù)用
當(dāng) I/O 配置為模擬功能模式
輸出緩沖器關(guān)閉
輸入施密特觸發(fā)器禁止輸入, 施密特輸出(數(shù)字輸入)固定為 0
弱上拉/下拉電阻硬件關(guān)閉
讀取輸入數(shù)據(jù)寄存器固定為 0
2、ADC 配置
ADC 共有 16 個模擬通道
10 個外部模擬輸入,從 GPIO 引腳引(ADC_IN0~9)
6 個內(nèi)部模擬輸入(溫度傳感器、內(nèi)部參考電壓、 VBAT 通道、 3 個運算放大器輸出)
轉(zhuǎn)換單一通道或自動掃描一個序列通道
每個模擬輸入通道有專門的一位選擇位 (CHSEL0~CHSEL21, 其中 CHSEL10~CHSEL15 位保留)
SCANDIR=0:正向掃描, 從通道 0 到通道 21
SCANDIR=1:反向掃描:從通道 21 到通道 0
溫度傳感連接到 ADC_IN16 通道,內(nèi)部參考電壓 VREFINT 連接到 ADC1_IN17 通道。VBAT 連接到 ADC1_IN18 通道。
模擬通道選擇,配置模擬輸入
a) ADC 異步時鐘(16M HIRC),ADC 最大 ADC 時鐘頻率;
b) APB 時鐘/2 或/4 ,避免時鐘不同步,當(dāng) ADC 由定時器觸發(fā),且應(yīng)用要求精確觸發(fā) ADC 時。
總的轉(zhuǎn)換時間計算如下:
tCONV = 采樣時間 + 12.5 x ADC 時鐘周期
數(shù)據(jù)右對齊12bit
時鐘選擇獨立時鐘源16MHz
1.5個采樣時鐘周期
反向序列采樣
獨立的 ADC 供電和參考電壓
VDDA 供電或作為參考電壓必須大于等于 VDD 電壓
使用內(nèi)部參考電壓計算實際 VDDA 電壓
單次轉(zhuǎn)換模式;執(zhí)行一次序列轉(zhuǎn)換 ,轉(zhuǎn)換所有被選的通道
TIME_TRGO信號觸發(fā)ADC啟動
DMA循環(huán)模式數(shù)據(jù)傳輸
禁止斷續(xù)模式
溢出結(jié)果寄存器保持為原數(shù)據(jù)
ADC中DMA數(shù)據(jù)傳輸配置
ADC數(shù)據(jù)RAM緩存地址
ADC結(jié)果寄存器
DMA傳輸方向外設(shè)到內(nèi)存
DMA數(shù)據(jù)傳輸個數(shù)
外設(shè)地址不自增
內(nèi)存地址自增
外設(shè)數(shù)據(jù)位為半字16bit
內(nèi)存數(shù)據(jù)位為半字16bit
DMA模式為循環(huán)模式
DMA通道優(yōu)先級最高級
開啟DAM傳輸完成中斷
3、TIME1? PWM配置
輸出IO口配置&開啟復(fù)用功能
定時器基本配置
預(yù)分頻為零
中心對齊模式(向上/向下計數(shù))
自動重載計數(shù)器為PWM周期
重復(fù)計數(shù)器為1
在計數(shù)值為0時輸出更新中斷
輸出通道配置
PWM 模式 1
輸出通道使能輸出
輸出有效電平選擇
驅(qū)動輸出有效電平時序圖
下管低有效輸出
下管高有效輸出
剎車和死區(qū)配置
運行模式下“關(guān)閉狀態(tài)”使能
運行模式下“空閑狀態(tài)”使能
死區(qū)時間設(shè)置
剎車控制使能
剎車高電平有效
自動輸出使能關(guān)閉
COMG事件預(yù)裝載
預(yù)裝載使能
只能COMG事件允許更新通道輸出
中斷開啟
開啟剎車、更新中斷
開啟通道1中斷
比較器通道選擇宏定義
H_PWM_L_ON調(diào)制模式換向函數(shù)
H_PWM_L_ON調(diào)制模式
電機三相波形
6路PWM換向輸時序圖
4、比較器1配置
反電勢采樣比較器1配置
正向輸入通道根據(jù)電機運行實時切換通道(BEMFU/ BEMFV /BEMFW )
反向輸入通道BEMFN
濾波時間設(shè)定
輸出極性選擇
比較器輸出端不要作為定時器1的剎車輸入
開啟比較器輸出中斷
通道21外部中斷開啟
ADC1_COMP_IRQHandler
5、TIMER2 配置
Timer2 基本定時器
時鐘預(yù)分頻1us計數(shù)周期
向上計數(shù)模式
時鐘分頻因子為0
自重復(fù)計數(shù)為0
Timer2 中斷配置
溢出中斷
通道1中斷 T1時間觸發(fā)實現(xiàn)換向
通道2中斷 T2時間觸發(fā)開啟過零點檢測
6、比較器1、2配置
比較器過零點檢測原理
硬件過流比較器2配置
正向輸入通道選擇運放3輸出
反向輸入通道選擇內(nèi)部參考電壓
內(nèi)部參考電壓檔位選擇
濾波時間設(shè)定
輸出極性選擇
比較器輸出端作為定時器1的剎車輸入
參考電壓選擇
選擇外部 AVDD 作為參考電壓 CRV
選擇內(nèi)部 VREF(2V) 作為參考電壓 CRV
開啟比較器輸出中斷
通道22外部中斷開啟
ADC1_COMP_IRQHandler
7、電機啟動換向過程及參數(shù)調(diào)試
啟動階段過零檢測
設(shè)定初始換向時間
等待過零點
如果沒有過零點,強制換向
換向強拖階段參數(shù)設(shè)定
ADC_ZeroCross_Commutator
初始啟動參數(shù)設(shè)定
ADC_Commutator_Init
運行階段過零檢測
初始階段過零點扇區(qū)時間逐步收斂
運行階段扇區(qū)時間以實際過零點時間加入濾波
檢測到過零點參數(shù)設(shè)定
ADC_ZeroCross_Processed