1、編碼器原理
如果兩個(gè)信號(hào)相位差為90度,則這兩個(gè)信號(hào)稱為正交。由于兩個(gè)信號(hào)相差90度,因此可以根據(jù)兩個(gè)信號(hào)哪個(gè)先哪個(gè)后來判斷方向、根據(jù)每個(gè)信號(hào)脈沖數(shù)量的多少及整個(gè)編碼輪的周長(zhǎng)就可以算出當(dāng)前行走的距離、如果再加上定時(shí)器的話還可以計(jì)算出速度。
2、為什么要用編碼器
從上圖可以看出,由于TI,T2一前一后有個(gè)90度的相位差,所以當(dāng)出現(xiàn)這個(gè)相位差時(shí)就表示輪子旋轉(zhuǎn)了一個(gè)角度。但有人會(huì)問了:既然都是脈沖,為什么不用普通IO中斷?實(shí)際上如果是輪子一直正常旋轉(zhuǎn)當(dāng)然沒有問題。仔細(xì)觀察上圖,如果出現(xiàn)了毛刺呢?這就是需要我們?cè)谲浖芯帉懰惴ㄟM(jìn)行改正。于是,我們就會(huì)想到如果有個(gè)硬件能夠處理這種情況那不是挺好嗎?
3、stm32編碼器
還是剛才那張圖,但這時(shí)候我們看到STM32的硬件編碼器還是很智能的,當(dāng)T1,T2脈沖是連續(xù)產(chǎn)生的時(shí)候計(jì)數(shù)器加一或減一一次,而當(dāng)某個(gè)接口產(chǎn)生了毛刺或抖動(dòng),則計(jì)數(shù)器計(jì)數(shù)不變,也就是說該接口能夠容許抖動(dòng)。在STM32中,編碼器使用的是定時(shí)器接口,通過數(shù)據(jù)手冊(cè)可知,定時(shí)器1,2,3,4,5和8有編碼器的功能,而其他沒有。編碼器輸入信號(hào)TI1,TI2經(jīng)過輸入濾波,邊沿檢測(cè)產(chǎn)生TI1FP1,TI2FP2接到編碼器模塊,通過配置編碼器的工作模式,即可以對(duì)編碼器進(jìn)行正向/反向計(jì)數(shù)。如果用的是定時(shí)器3,則對(duì)應(yīng)的引腳是在PC6和PC7上。根據(jù)stmn32手冊(cè)上編碼器模式的說明,有6中組合計(jì)數(shù)方式,見下表。
由此可知,通過選擇可以確定使用定時(shí)器的哪種方式來得到我們所要的結(jié)果。STM32編碼器的使用也非常簡(jiǎn)單,其基本步驟和開發(fā)STM32其他部件的操作一致,都是打開時(shí)鐘,配置接口,配置模式,如果要用中斷則打開中斷。具體可以參考以下代碼(這里使用的是TIM8,引腳采用GPIOC 6和GPIOC7)
正轉(zhuǎn)向上計(jì)數(shù),反轉(zhuǎn)向下計(jì)數(shù),方向在CR1的DIR位里
1.編碼器有個(gè)轉(zhuǎn)速上限,超過這個(gè)上限是不能正常工作的,這個(gè)是硬件的限制,原則上線數(shù)越多轉(zhuǎn)速就越低,這點(diǎn)在選型時(shí)要注意,編碼器的輸出一般是開漏的,所以單片機(jī)的io一定要上拉輸入狀態(tài).
2.定時(shí)器初始化好以后,任何時(shí)候CNT寄存器的值就是編碼器的位置信息,正轉(zhuǎn)他會(huì)加反轉(zhuǎn)他會(huì)減這部分是不需要軟件干預(yù)的,初始化時(shí)給的TIM_Period 值應(yīng)該是碼盤整圈的刻度值,在減溢出會(huì)自動(dòng)修正為這個(gè)數(shù).加超過此數(shù)值就回0.
3.如果要擴(kuò)展成多圈計(jì)數(shù)需要溢出中斷像樓主說的,程序上圈計(jì)數(shù)加減方向位就行了.
4.每個(gè)定時(shí)器的輸入腳可以通過軟件設(shè)定濾波
5.應(yīng)用中如果沒有絕對(duì)位置信號(hào)或者初始化完成后還沒有收到絕對(duì)位置信號(hào)前的計(jì)數(shù)只能是相對(duì)計(jì)數(shù).收到絕對(duì)位置信號(hào)后重新修改一次CNT的值就行了.碼盤一般都有零位置信號(hào),結(jié)合到定時(shí)器捕獲輸入就行.上電以后要往返運(yùn)動(dòng)一下找到這個(gè)位置.
6.即便有濾波計(jì)數(shù)值偶爾也會(huì)有出錯(cuò)誤的情況,一圈多計(jì)一個(gè)或少計(jì)一個(gè)數(shù)都是很正常的特別是轉(zhuǎn)速比較高的時(shí)候尤其明顯,有個(gè)絕對(duì)位置信號(hào)做修正是很有必要的.絕對(duì)位置信號(hào)不需要一定在零位置點(diǎn),收到這個(gè)信號(hào)就將CNT修正為一個(gè)固定的數(shù)值即可.
7.開啟定時(shí)器的輸入中斷可以達(dá)到每個(gè)步計(jì)數(shù)都作處理的效果,但是高速運(yùn)轉(zhuǎn)的時(shí)候你可能處理不過來.
上一篇:STM32F4XX 采集編碼器的溢出處理
下一篇:STM32正交編碼器接口
推薦閱讀
史海拾趣
1982年,F(xiàn)abrimex AG收購了瑞士領(lǐng)先的實(shí)驗(yàn)室電源制造商Erlenbach的K. Witmer Elektronik AG博士。這一收購不僅增強(qiáng)了公司在實(shí)驗(yàn)室電源領(lǐng)域的實(shí)力,還進(jìn)一步鞏固了其在電子行業(yè)中的地位。通過整合雙方的技術(shù)和資源,F(xiàn)abrimex AG在實(shí)驗(yàn)室電源領(lǐng)域取得了更高的市場(chǎng)份額和更廣泛的客戶認(rèn)可。
ARMKEIL Microcontroller Tools公司的起點(diǎn)可以追溯到Keil公司的成立。1985年,Keil Elektronik GmbH(凱爾電子有限責(zé)任公司)在德國慕尼黑正式成立,由一群熱衷于嵌入式系統(tǒng)開發(fā)的工程師創(chuàng)立。起初,公司的主要業(yè)務(wù)是開發(fā)和銷售嵌入式系統(tǒng)的開發(fā)工具,這些工具為當(dāng)時(shí)的電子工程師提供了強(qiáng)大的支持。隨著業(yè)務(wù)的發(fā)展,Keil逐漸在嵌入式系統(tǒng)開發(fā)領(lǐng)域嶄露頭角。
為了更好地服務(wù)全球客戶,Delkin Devices積極拓展海外市場(chǎng)。公司在歐洲設(shè)立了辦事處,以便更直接地接觸歐洲市場(chǎng)并了解當(dāng)?shù)乜蛻粜枨?。此外,Delkin Devices還通過參加國際展會(huì)、建立合作伙伴關(guān)系等方式,不斷拓展其在全球范圍內(nèi)的影響力。通過這些努力,Delkin Devices成功將產(chǎn)品銷往全球多個(gè)國家和地區(qū),實(shí)現(xiàn)了國際化布局和市場(chǎng)拓展。
DOS 微軟一開始選用了派特森的Q-DOS “QUICK AND DISK OPERATING SYSTEM ”為基礎(chǔ)然后再擴(kuò)充功能而成 MS-DOS,主要是采用由IBM 提供的使用8088 微處理器的計(jì)算機(jī)作開發(fā)平臺(tái),它是以16 字節(jié)單人單工操作系統(tǒng),特別適合一些功能簡(jiǎn)單 ...… 查看全部問答∨ |
關(guān)于電磁流量計(jì)目前的優(yōu)點(diǎn)與不足分析 電磁流量計(jì)(EletromagneticFlowmeters,簡(jiǎn)稱EMF)是20世紀(jì)50~60年代隨著電子技術(shù)的發(fā)展而迅速發(fā)展起來的新型流量測(cè)量?jī)x表。電磁流量計(jì)是根據(jù)法拉第電磁感應(yīng)定律制成的,用來測(cè)量導(dǎo)電液體體積流量的儀表。由于其獨(dú)特的優(yōu)點(diǎn),目前已廣泛地被應(yīng)用于工 ...… 查看全部問答∨ |
2009年中國指紋鎖市場(chǎng)需求分析 發(fā)布日期:2009-01-12 09:55:29 發(fā)布人:本站整理 我要評(píng)論 需求分析 一、產(chǎn)品需求 隨著居民生活質(zhì)量的不斷提高,住宅、汽車、中高檔辦公樓及酒店等支柱產(chǎn)業(yè) ...… 查看全部問答∨ |
shuiyan 大哥你好! 小弟最近在搞OAL里的中斷函數(shù)OALTimerInit遇到個(gè)問題,是這樣的: 我在private下的armtrap.s里發(fā)現(xiàn)了中斷的異常跳轉(zhuǎn)表 VectorInstructions ldr pc, [p ...… 查看全部問答∨ |
本人把wince6.0下的DeviceEmulator改到我的2440的開發(fā)板上運(yùn)行,因?yàn)镈eviceEmulator是基于2410的,現(xiàn)在改到2440下改動(dòng)也不是太大, 目前wince6.0的桌面已經(jīng)可以顯示出來了,但是觸摸屏卻一直動(dòng)不了,后來跟蹤發(fā)現(xiàn)觸摸屏驅(qū)動(dòng)已經(jīng)加載,而且第一次點(diǎn) ...… 查看全部問答∨ |
不好意思,問一下這個(gè)問題:-sh: ./helloworld: not found 我是一名初學(xué)者,今天終于完成了博創(chuàng)S3C2410上Linux 2.6.22的移植,網(wǎng)卡,文件系統(tǒng)都能正常使用,感覺蠻有成就感的。 但如今這個(gè)問題不知道如何解決了: 用編譯內(nèi)核和Busybox 1.5.1的編譯器編譯了一個(gè)helloworld,在開發(fā)板上用NFS掛載上,運(yùn)行./hello ...… 查看全部問答∨ |
大家探討,探討Qsys(SOPC)與DSP Builder的關(guān)系吧! 現(xiàn)在做一個(gè)比較大型的項(xiàng)目,特別是遇到dsp算法的時(shí)候, 如果采用HDL來完成,是比較費(fèi)時(shí)和難以完成的,如果 我們能夠采用Qsys加dsp builder的方法,會(huì)不會(huì)變得相當(dāng)簡(jiǎn)單得多呢? 好好,有對(duì)SOPC Builder(Qsys可能還很生疏)比較熟, ...… 查看全部問答∨ |
用jlink V8給目標(biāo)板提供3.3V電壓,就是把jlink 里面的跳線帽插到3.3V pin上然后連接 2148,一直這樣提示,試了兩個(gè)2148了,都是這樣的提示我如果用目標(biāo)板自己的電源,也是同樣的提示Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFullVTarget = 3.300 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 直播已結(jié)束|如何通過【TI MSPM0 固件示例】及【常用電機(jī)驅(qū)動(dòng)器方案和拓?fù)洹?,?0分鐘內(nèi)旋轉(zhuǎn)電機(jī)
- 快來訪問泰克高速串行通信專題 配置您的專屬解決方案 贏好禮!
- 有獎(jiǎng)活動(dòng)“庖丁”解智能睡眠監(jiān)測(cè)儀,一波“水軍”來圍觀
- ADI有獎(jiǎng)下載活動(dòng)之20:基于NDIR和PID的ADI氣體探測(cè)器解決方案和新產(chǎn)品
- 【已結(jié)束】RIGOL直播|示波器、可編程直流電源應(yīng)用分享
- 村田在線課堂:健康篇
- 快來應(yīng)援吧!投票選出你最愛的TI培訓(xùn)課程
- S3C2440 LCD液晶模塊驅(qū)動(dòng)設(shè)計(jì)
- S3C2440電阻觸摸屏驅(qū)動(dòng)設(shè)計(jì)
- stm32之DMA數(shù)據(jù)傳輸
- S3C2440-裸機(jī)篇-06 | UART數(shù)據(jù)發(fā)送接收實(shí)驗(yàn)(掃描模式)
- 記錄1--s3c2440 GPIO && UART的控制
- 三星最便宜5G新機(jī):Galaxy A32現(xiàn)身認(rèn)證
- 給中端機(jī)配手寫筆!摩托羅拉G Stylus 2021曝光
- 驍龍 888 手機(jī) iQOO 7 正面曝光:中間打孔
- 三星One UI 3.0現(xiàn)奇怪 bug:無法顯示電池的統(tǒng)計(jì)數(shù)據(jù)
- 三星Buds Pro真無線耳機(jī)遭遇提前出售:實(shí)拍圖解密
- 一個(gè)關(guān)于驅(qū)動(dòng)的問題!
- 安卓系統(tǒng)應(yīng)用開發(fā)提高篇
- 【藏書閣】數(shù)字電路與邏輯設(shè)計(jì) 電子教案 doc版
- 《新型單片開關(guān)電源的設(shè)計(jì)與應(yīng)用》作者:沙占友
- 王石談房地產(chǎn)
- STM32的功耗可以在哪個(gè)手冊(cè)里看到呢?
- GD32L233C TRNG 處理和PWM配置(II)
- 硬盤足夠大的請(qǐng)進(jìn)
- wince5.0 vs2005 程序如何設(shè)置系統(tǒng)時(shí)間?
- 模擬量采集模塊模擬量輸入輸出模塊模擬量檢測(cè)模塊PWM控制模塊