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