編碼器是一種比較常見的產品(也可以理解為傳感器),最常見的就是配合電機一起工作,那么,你對編碼器有多了解呢?
一、關于編碼器
編碼器的種類有很多:增量式編碼器、絕對值編碼器,有軸或者無軸編碼器,電壓輸出、推拉輸出、集電極開路輸出等等。但不管什么類型的編碼器,其目的都類似,得到轉動的角度,角速度、位移等。 本文講述常見的增量式編碼器,增量式編碼器也可以叫正交編碼器,也就是說可以通過其A、B的相位知道編碼器是正轉,還是反轉,還可以根據編碼器參數得出旋轉了多少角度等。 常見的增量式編碼器A、B、Z三根線代表什么意思呢?使用過編碼器的人不難理解,這里簡單給初學者講述一下: A、B兩線提供相位相差90度的脈沖信號,用其來計算旋轉的角度;Z線為過零點線,也就是說每轉一轉,經過某一點都會輸出一個脈沖信號,主要用于“過零校正”,三線的信號大致如下圖:
有些編碼器出來的線有一個對應的“非”信號線(如上圖右邊),其實主要用于抗干擾的。 更多關于編碼器的描述,請網上搜索相關的知識進行了解,本文不再講述。
在STM32芯片中,都有這么一個定時器,叫通用定時器“General-purpose timers”,定時器里面存在這么一個模式,叫編碼器接口模式“Encoder interface mode”。當然,具體可參看芯片對應的數據手冊。
STM32提供的編碼器接口模式主要針對的就是“正交編碼器”,它可以利用定時器的“計數”功能,得出編碼器計了多少個脈沖;同時,它可以根據編碼器AB的相位得出編碼器是正轉,還是反轉。
(圖片來自STM32參考手冊)
1.計算脈沖個數
有點類似TIM的捕獲功能,捕獲A相、B相的脈沖信號;只是編碼器模式是捕獲A(TI1)、B(TI2)相的邊沿信號(如上圖),相當于一個周期內,計4個脈沖信號的值。
2.計數器的增減(方向)
STM32的計數器會根據方向(+ 或者 -)來進行計數,TI1和TI2相位相差90,4個階段的邊沿,對應TI1和TI2不同電平信號,從這個不同的信號,硬件自身可以判斷出其方向。在編碼器模式下,有個寄存器(TIMx_CR1)中有一個方向位(DIR),會隨著編碼器旋轉方向的改變而改變,我們可以通過讀取該位來判斷編碼器的正轉,還是反轉。
3.TIM時基
STM32編碼器接口模式,其實是通過利用AB相位TIM時基提供時鐘信號,使其計數。
三、應用編程
相信看了上面的一些描述,大家應該對編碼器有所理解了。其實,在STM32中,可以通過配置編碼器模式對應的函數,就能實現獲取編碼器傳感器上面的信息了。
使用STM32提供的標準外設庫,或者使用STM32CubeMX工具很容易將TIM配置成編碼器模式。
1.標準外設庫配置編碼器
TIM_EncoderInterfaceConfig,它就是編碼器接口的配置函數。簡單的只需要配置該函數,使能TIM,即可實現采集編碼器上面的信息。(當然,需要復雜的操作,還需要做其他相應的配置)
2.STM32CubeMX配置
STM32CubeMX是一套快速開發的工具,讓很多不了解STM32底層的朋友可以快速的在STM32上編寫應用程序。
本文說的配置編碼器接口,在某些TIM上存在一個“Combined Channel”配置,可以理解為“連接通道”,也算是TIM的一種復用模式。選擇里面的“Encoder Mode”即可。
四、實例代碼
本文提供的代碼為一個使用標準外設庫編寫的簡單Demo工程,其中里面附帶一個工程(用于模擬編碼器AB相波形的工程),如下:
該工程主要配置TIM的編碼器模式,通過定時讀取編碼器的方向(DIR),和計數(CNT),并通過串口打印出來。
下載地址:
百度網盤:
鏈接:https://pan.baidu.com/s/1jH8yOqM
密碼:t4kx
GitHub:
https://github.com/EmbeddDeveloper/STM32F4_TIM_Encoder
CSDN:
http://download.csdn.net/download/ybhuangfugui/10165086
提示:1.公號不支持外部鏈接,請復制鏈接到瀏覽器打開; 2.為防止失效,以上三個鏈接代碼一樣,若都不能下載了,可以換一個下載鏈接。
-
編碼器
+關注
關注
45文章
3673瀏覽量
135316 -
STM32
+關注
關注
2273文章
10926瀏覽量
357778
原文標題:編碼器是什么?STM32編碼器接口及應用編程
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
關于STM32編碼器接口模式
STM32 Encoder編碼器使用總結
![<b class='flag-5'>STM32</b> Encoder<b class='flag-5'>編碼器</b>使用總結](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論