樹(shù)莓派可以同時(shí)產(chǎn)生兩路獨(dú)立的pwm。
每一路可以配置到規(guī)定的幾個(gè)gpio上,而實(shí)際能用的只有12、13、18、19,其他都沒(méi)有引出來(lái)。這里的gpio指的是bcm的。
在BCM2835 ARM外設(shè)手冊(cè)中對(duì)PWM做了詳細(xì)的介紹。
樹(shù)莓派的PWM有兩種操作模式:PWM模式和Serialiser模式。PWM模式又有兩種模式:N/M模式和M/S模式。我們平時(shí)常用的那種固定頻率改變占空比的操作是PWM模式的M/S模式。
PWM由8個(gè)寄存器控制,手冊(cè)上給出的總線起始地址為0x7e20c000,對(duì)應(yīng)的物理地址是0x3f20c000。
如果不使用FIFO和DMA,配置很簡(jiǎn)單,主要是設(shè)置CTL,使能對(duì)應(yīng)的PWM控制器并設(shè)置模式,設(shè)置RNG給定PWM的范圍,就是上面圖片的S,設(shè)置DAT給定要輸出的值,就是圖片中的M。也就是說(shuō)RNG設(shè)置PWM的控制粒度,DAT控制輸出高低電平的時(shí)間,二者的比值就是占空比。
在設(shè)置PWM之前,還有一個(gè)重要的地方需要設(shè)置,就是PWM的時(shí)鐘,外設(shè)手冊(cè)只說(shuō)了一下配置時(shí)鐘的寄存器是CPRMAN,沒(méi)有其他信息。但是可以參考bcm2835庫(kù)的設(shè)置方式。
總結(jié)一下,樹(shù)莓派的pwm配置分這么幾步:
1、設(shè)置對(duì)應(yīng)的gpio為pwm復(fù)用功能;
2、設(shè)置pwm的時(shí)鐘;
3、設(shè)置pwm的模式并使能;
4、設(shè)置pwm的range;
5、設(shè)置pwm的dat;
以后控制pwm就只需改變dat的值就可以改變pwm的占空比了。
Linux系統(tǒng)下,使用內(nèi)存映射mmap可以很方便的操控這些寄存器。PWM需要映射gpio寄存器、時(shí)鐘寄存器和pwm寄存器,bcm2835的庫(kù)就是使用的這種方式。
我用樹(shù)莓派18、19獲取的pwm波形。
網(wǎng)上有樹(shù)莓派只提供了一個(gè)硬件pwm輸出的說(shuō)法,在我的3b上證明是錯(cuò)誤的,我猜測(cè)這種說(shuō)法應(yīng)該是針對(duì)之前舊版本硬件的。
有這兩路PWM做兩輪平衡車(chē)剛剛好。
-
ARM
+關(guān)注
關(guān)注
134文章
9342瀏覽量
376413 -
PWM
+關(guān)注
關(guān)注
116文章
5469瀏覽量
218870 -
Linux
+關(guān)注
關(guān)注
87文章
11499瀏覽量
213346 -
GPIO
+關(guān)注
關(guān)注
16文章
1279瀏覽量
53880 -
樹(shù)莓派
+關(guān)注
關(guān)注
121文章
1985瀏覽量
107263
發(fā)布評(píng)論請(qǐng)先 登錄
樹(shù)莓派權(quán)威用戶指南
簡(jiǎn)單介紹樹(shù)莓派
請(qǐng)問(wèn)樹(shù)莓派硬件PWM是什么輸出?
樹(shù)莓派學(xué)習(xí)筆記之PWM控制直流電機(jī)轉(zhuǎn)速介紹 相關(guān)資料分享
樹(shù)莓派pwm是如何去控制無(wú)刷電機(jī)的?
樹(shù)莓派3wifi配置_樹(shù)莓派3開(kāi)啟wifi熱點(diǎn)_樹(shù)莓派3的wifi使用教程
樹(shù)莓派有什么用_樹(shù)莓派能用來(lái)做啥_樹(shù)莓派新手入門(mén)教程
樹(shù)莓派驅(qū)動(dòng)舵機(jī)介紹_樹(shù)莓派驅(qū)動(dòng)舵機(jī)代碼

樹(shù)莓派是什么樹(shù)莓派的簡(jiǎn)單介紹

樹(shù)莓派3和樹(shù)莓派4的原理圖免費(fèi)下載

樹(shù)莓派3和樹(shù)莓派4的原理圖免費(fèi)下載

樹(shù)莓派IO擴(kuò)展板的技術(shù)規(guī)格 樹(shù)莓派擴(kuò)展板該怎么用

樹(shù)莓派通過(guò)pwm控制電機(jī)速度

樹(shù)莓派控制PWM控制電機(jī)轉(zhuǎn)速

評(píng)論