實(shí)驗(yàn)?zāi)康模候?qū)動(dòng)風(fēng)扇,蜂鳴器,馬達(dá)進(jìn)行工作
目錄
一,PWM相關(guān)概念
有源蜂鳴器和無(wú)源蜂鳴器
二,分析電路圖,框圖
三,分析RCC章節(jié)
1,確定總線連接
2,根據(jù)總線內(nèi)容確定基地址
3.分析RCC章節(jié)所需寄存器
1,RCC_MP_AHB4ENSETR寄存器
2,RCC_MP_APB1ENSETR寄存器
四,分析GPIO章節(jié)寄存器
1,GPIOx_MODER寄存器
2,GPIOx_AFRL寄存器
五,分析TIM4章節(jié)
?1,概述:?編輯
2,特點(diǎn):
計(jì)數(shù)方式:
3.內(nèi)部框圖
4,捕獲 / 比較寄存器 CCR(Capture / Compare 1register)
5,分頻工作原理
6,分析TIM4寄存器
1,分析TIMx_CR1寄存器
2,分析TIMx_CCMR1寄存器
3,分析TIMx_CCER寄存器
4,分析TIMx_PSC寄存器
5,分析TIMx_ARR寄存器
6,分析TIMx_CCR1寄存器
六,風(fēng)扇,馬達(dá)
一,PWM相關(guān)概念
PWM:(Pulse Width Modulation)脈沖寬度調(diào)制:是一種占空比可變的脈沖波形,是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法
脈沖: 方波信號(hào),高低電平變化會(huì)產(chǎn)生方波信號(hào)
周期:高低電平變化所需要的時(shí)間,單位ms
頻率:周期和頻率之間成倒數(shù)關(guān)系,單位:HZ,1s中可以產(chǎn)生多少個(gè)方波信號(hào)
占空比:在一個(gè)方波內(nèi),高電平占整個(gè)周期的百分比
有源蜂鳴器和無(wú)源蜂鳴器
1,源不是電源,是震蕩源
2,有源蜂鳴器內(nèi)部有一個(gè)震蕩源,高電平發(fā)出響聲,編程給高低電平即可
3,無(wú)源蜂鳴器內(nèi)部沒(méi)有震蕩源,需要特定的方波信號(hào)驅(qū)動(dòng)進(jìn)行工作,價(jià)格較便宜
4,本實(shí)驗(yàn)開(kāi)發(fā)板有緣當(dāng)無(wú)源使用,產(chǎn)生PWM方波
二,分析電路圖,框圖
1.根據(jù)擴(kuò)展版原理圖 網(wǎng)絡(luò)編號(hào):結(jié)合資源擴(kuò)展板 對(duì)應(yīng)引腳:
蜂鳴器:TIM4_CH1 === PB6
馬達(dá):TIM16_CH1? === PF6
風(fēng)扇:TIM1_CH1? ? === PE9
2.實(shí)驗(yàn)以蜂鳴器為例
框圖
?分析:
1,需要分析芯片手冊(cè) RCC/GPIO/TIM4章節(jié)
2,RCC:使能GPIOB組/TIM4組控制器
3,GPIO:1)設(shè)置復(fù)用功能, 2)設(shè)置復(fù)用功能TIM4_CH1
4,TIM4:產(chǎn)生PWM方波信號(hào)
三,分析RCC章節(jié)
1,確定總線連接
根據(jù)Memory and bus architecture 章節(jié)中?Memory map and register boundary addresses 篇確定GPIO總線:APB4;TIM總線:APB1
2,根據(jù)總線內(nèi)容確定基地址
RCC:? ? 0x5000 0000
GPIOB:0x5000 3000
TIM4:? ?0x4000 2000
根據(jù)基地址和寄存器的偏移量確定寄存器的地址: 寄存器地址 = 基地址 + 偏移地址
3.分析RCC章節(jié)所需寄存器
1,RCC_MP_AHB4ENSETR寄存器
作用:使能GPIOB組控制器
地址:0x5000000 + 0xA28 = 0x50000A28
偽代碼:RCC_MP_AHB4ENSETR [1]?= 1
2,RCC_MP_APB1ENSETR寄存器
作用:使能TIM4組寄存器
地址:0x5000000 + 0xA00 = 0x50000A00
偽代碼:RCC_MP_APB1ENSETR [2]?= 1
四,分析GPIO章節(jié)寄存器
1,GPIOx_MODER寄存器
作用:設(shè)置GPIOB引腳模式為復(fù)用功能模式(共四種:輸入,輸出,復(fù)用,模擬)
地址:0x50003000 + 0x00 = 0x50003000
操作:GPIOB_MODER [13:12] = 10
2,GPIOx_AFRL寄存器
作用:設(shè)置GPIOB引腳復(fù)用功能為TIM4_CH1功能
地址:0x50003000 + 0x20 = 0x50003020
偽代碼:GPIOB_AFRL [27:24] = 0010?(復(fù)用功能 根據(jù) Pinouts, pin description and alternate functions章節(jié)確定要給定的值)
五,分析TIM4章節(jié)
?1,概述:
1,自動(dòng)重載計(jì)數(shù)器,可編程分頻器
2,輸出方波
3,定時(shí)器預(yù)分頻器,RCC時(shí)鐘控制器預(yù)分頻器
4,獨(dú)立通道
2,特點(diǎn):
1,16位遞增,遞減,遞增/遞減自動(dòng)重載計(jì)數(shù)器
2,遞增,遞減:邊沿對(duì)齊模式
3,遞增/遞減:中心對(duì)齊模式
計(jì)數(shù)方式:
例:遞增計(jì)數(shù)器:驅(qū)動(dòng)遞增計(jì)數(shù)器時(shí)鐘信號(hào),每來(lái)一個(gè)時(shí)鐘周期,計(jì)數(shù)器中的值進(jìn)行加1操作,加到和遞增計(jì)數(shù)器中的值相等以后,從0開(kāi)始,開(kāi)啟下一個(gè)時(shí)鐘周期
3.內(nèi)部框圖
1,系統(tǒng)提供時(shí)鐘源209MHz,通過(guò)PSC(prescaler)預(yù)分頻器分頻,分頻值為209分頻(自定義)
2,定時(shí)器啟動(dòng)后,自動(dòng)重載計(jì)數(shù)器ARR(Auto-reload register)中的值會(huì)自動(dòng)加載到遞減計(jì)數(shù)器CNT(counter)中
3,時(shí)鐘信號(hào)驅(qū)動(dòng)遞減計(jì)數(shù)器進(jìn)行工作,一個(gè)時(shí)鐘周期內(nèi),計(jì)數(shù)器中數(shù)字連續(xù)減1操作,直到減到0后,自動(dòng)重載計(jì)數(shù)器(ARR)中的值自動(dòng)加載到遞減計(jì)數(shù)器中,開(kāi)啟下一個(gè)時(shí)鐘周期
4,捕獲 / 比較寄存器 CCR(Capture / Compare 1register)
作用:?????1,產(chǎn)生PWM方波
? ? ? ? ? ? ? ? 2,當(dāng)遞減計(jì)數(shù)器(CNT)中的值和捕獲比較寄存器(CCR)中的值相等之后,電平會(huì)發(fā)生翻轉(zhuǎn)
5,分頻工作原理
CK_PSC:系統(tǒng)提供的時(shí)鐘源
CEN:使能信號(hào)
Timerclock = CK_CNT:計(jì)數(shù)器時(shí)鐘
Counter register :計(jì)數(shù)器寄存器
Update event(UEV):更新事件
Prescaler control register:預(yù)分頻控制寄存器
Prescaler buffer:分頻器緩沖區(qū)
Prescaler counter:分頻器計(jì)數(shù)器
TIMx_CR1寄存器中ARPE的值會(huì)影響自動(dòng)重載計(jì)數(shù)器加載,=0,立即加載, =1,下一時(shí)鐘周期加載
6,分析TIM4寄存器
1,分析TIMx_CR1寄存器
作用:初始化寄存器相關(guān)操作
地址:0x40002000 + 0x00 = 0x40002000
偽代碼:
????????TIM4_CR1[7] = 1? ==== 設(shè)置自動(dòng)重載預(yù)加載寄存器(ARR)使能
? ? ? ? TIM4_CR1[6:5] = 00 ==== 邊沿對(duì)齊模式(CNT采用遞減模式,邊沿對(duì)齊)
? ? ? ? TIM4_CR1[4] = 1 ====? 設(shè)置計(jì)數(shù)器CNT設(shè)置為遞減計(jì)數(shù)方式
? ? ? ? TIM4_CR1[0] = 1 ====? 設(shè)置計(jì)數(shù)器CNT使能
2,分析TIMx_CCMR1寄存器
作用:配置比較捕獲寄存器
地址:0x40002000 + 0x18 = 0x40002018
偽操作:TIM4_CCMR1 [16][6:4] = 0110 ==== 設(shè)置通道1比較捕獲模式為PWM模式
TIM4_CCMR1 [3] = 1 ==== 設(shè)置捕獲 / 比較寄存器預(yù)加載使能
TIM4_CCMR1 [1:0] = 00 ==== 設(shè)置輸出通道為通道1
3,分析TIMx_CCER寄存器
作用:設(shè)置比較捕獲寄存器(CCR)默認(rèn)輸出極性
地址:0x40002000 + 0x20 = 0x40002020
偽代碼:TIM4_CCER [3][1] = 00 / 01 ==== 設(shè)置比較捕獲寄存器,默認(rèn)輸出極性高/低電平(自定義)
TIM_CCER [0] = 1 ==== 設(shè)置比較捕獲寄存器輸出使能
4,分析TIMx_PSC寄存器
作用:設(shè)置系統(tǒng)時(shí)鐘分頻值
地址:0x40002000 + 0x28 = 0x40002028
偽代碼:TIM4_PSC = 209 - 1 (自定義)
5,分析TIMx_ARR寄存器
作用:設(shè)置自動(dòng)重載計(jì)數(shù)器(ARR)中的的值
地址:0x40002000 + 0x2C = 0x4000202C
偽代碼:TIM4_ARR = 1000(自定義)
6,分析TIMx_CCR1寄存器
作用:設(shè)置捕獲比較器(CCR)中的值
地址:0x40002000 + 0x34 = 0x40002034
偽代碼:TIM4_CCR1 = 300(自定義)
六,風(fēng)扇,馬達(dá)
風(fēng)扇和馬達(dá)根據(jù)網(wǎng)絡(luò)編號(hào),通道和對(duì)應(yīng)引腳編號(hào)更改寄存器中的值即可
另:馬達(dá)不用設(shè)置CR1寄存器邊沿對(duì)齊模式和遞減計(jì)數(shù)方式
風(fēng)扇和馬達(dá)多一個(gè)寄存器BDTR
TIMx_BDTR
作用:主輸出使能
地址:0x40002000 + 0x44 = 0x40002044文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-681673.html
偽代碼:TIMx_BDTR [15] = 1(x根據(jù)網(wǎng)絡(luò)編號(hào))文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-681673.html
到了這里,關(guān)于cortex-A7核PWM實(shí)驗(yàn)--STM32MP157的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!