精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

利用非對稱PWM模式體驗編碼器功能

茶話MCU ? 來源:茶話MCU ? 作者:茶話MCU ? 2023-05-04 10:01 ? 次閱讀

通常在STM32芯片的通用TIMER或高級TIMER都帶編碼器功能,支持基于1路或2路輸入的編碼脈沖計數。我們一般外接正交編碼器,使用2路輸入。TIMER硬件基于2路輸入的相差特征來確定計數方向并依據方向對計數器做遞增或遞減操作。

b4f7da52-e83f-11ed-ab56-dac502259ad0.png

正交編碼器一般使用5根線連接,分別為A、B、 Z信號線及VCC和GND電源線。其中,A、B兩路是存在相差的同頻信號。Z信號即零點信號,當編碼器旋轉到某位置時,它會發出一個脈沖表示約定的零位。VCC、GND分別是電源線和地線。至于編碼器線數,是指旋轉一圈A(B)端會輸出的脈沖個數 ,二者轉一圈所發出的脈沖數相同,但存在90°相差。編碼器的線數越高代表其能夠反應的位置精度越高。

b5145a88-e83f-11ed-ab56-dac502259ad0.png

關于STM32片內TIMER編碼器接口工作原理,這里就不介紹了。更多細節請參考STM32的相應系列的參考手冊。這里想重點分享的是,如果手頭沒有正交編碼器實物,如何來驗證或體驗TIMER的編碼器接口功能呢?

其實,TIMER編碼器處理單元就是對外來的兩路同頻但輸出具有前后時序差的脈沖信號進行方向辨認后做TIMER計數器的遞增或遞減計數。既然手頭沒有編碼器實物,我們何不利用STM32片內的TIEMR產生2路帶相差的同頻信號,再接到另一個支持編碼器接口的TIMER不就OK了嗎?

當然,使用STM32的TIMER產生2路帶相差的同頻信號,有多種方法。比方通過2個定時器主從級聯、單個定時器使用OC toggle模式加以DMA輔助、利用非對稱PWM輸出模式來實現。

其中,前2種方法在STM32芯片里通用性好,每個STM32系列都支持。而非對稱PWM輸出模式雖然可以非常方便地實現帶相差的同頻輸出信號,但不是所有STM32系列支持。當然,不支持的主要是ST推出得比較早的STM32系列,比方STM32F1STM32F2STM32F4這些老舊的系列,后來推出的STM32系列,比方STM32L4,STM32G4,STM32C0、STM32U5、STM32F7、STM32H7、STM32H5等都支持非對稱PWM輸出模式。

我這里采用非對稱PWM輸出模式并使用STM32L4開發板來演示實現過程。先用TIM1結合非對稱PWM輸出模式輸出2路帶相差的同頻信號,然后連接到TIM2的編碼器接口。另外,我還用了個按鍵【接到PC13】動態調整TIM1兩路輸出相差的前后關系,以觀察TIM2計數器的計數變化情況,即遞增還是遞減計數。

b5334cd6-e83f-11ed-ab56-dac502259ad0.png

我先配置TIM1的CH1/CH2,實現2路帶相差的PWM輸出。

b55357e2-e83f-11ed-ab56-dac502259ad0.png

基于CubeMx配置后生成初始化工程,添加2行上圖中的代碼就可以輸出了。

我這里使用ARM MDK IDE自帶的邏輯分析儀就可以看到下面波形。2路波形分別從GPIOA_PIN8/GPIOA_PIN9輸出。

b56e7928-e83f-11ed-ab56-dac502259ad0.png

然后我將這兩路輸出分別連接到TIM2的編碼器接口腳【GPIOA_PIN0、GPIOA_PIN1】。

我把有關TIM2編碼器應用的CubeMx配置也截圖出來供參考。【其中ARR可按需調整,為了便于查看效果,后來我將其改為1000了。這點不影響功能演示。】:

b5884e3e-e83f-11ed-ab56-dac502259ad0.png

然后,添加啟動TIMER編碼器功能的API函數。【API函數里啟動了2個通道的輸入捕獲中斷,我這里只保留通道1的而關閉了通道2的。即每次在TIM2通道1的捕獲中斷里讀取其計數器的值。】

b5a0e854-e83f-11ed-ab56-dac502259ad0.png

編譯、除錯后運行,即可在IDE的邏輯分析儀上看到下面的結果。其中CNT_value就是TIM2的計數器動態值。目前看到的是TIM2的編碼器接口針對當前2路輸入信號進行周期計數。綠色和紫色是上面提到過的兩路輸入信號【因顯示分辨率的關系下面相關圖形變成單色方塊了】。

b5bd8bb2-e83f-11ed-ab56-dac502259ad0.png

當然,我們可以通過按鍵來調整TIM1兩路輸出信號的相差時序,進而改變TIM2編碼器計數的方向。不難看出下圖中3個圓圈的地方就是切換計數方向的位置。

b5ce7062-e83f-11ed-ab56-dac502259ad0.png

我們還可以調整TIM1的參數改變輸出給TIM2的信號頻率。整個過程就是利用TIMER的非對稱PWM輸出模式構造2路帶相差的編碼器信號,從而讓TIMER的編碼器接口電路實現對外部編碼輸入信號的計數。實現這些基本功能之后,可以進一步研究應用中可能涉及的各種測量功能。

聊到這里,可能有人對上面邏輯分析儀的配置感興趣。

這里的CNT_value連續記錄TIM2計數器的值,這里為Analog量。

Level_PA8記錄GPIOA_PIN8的電平情況,1或0兩個值之一,為Bit量。

Level_PA9跟Level_PA8是完全相同的數據類型,不過顯示的是GPIOA_PIN9的電平。顯然,邏輯分析儀配置里關于Level_PA9的顯示算式的屏蔽數應該是0x00000200,右移位為9。我目前是在SYSTICK的毫秒中斷里讀取GPIOA->IDR的值即管腳電平到變量Level_PA8和Level_PA9的。


審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼器
    +關注

    關注

    45

    文章

    3596

    瀏覽量

    134162
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5144

    瀏覽量

    213409
  • STM32
    +關注

    關注

    2266

    文章

    10871

    瀏覽量

    354825
  • 計數器
    +關注

    關注

    32

    文章

    2254

    瀏覽量

    94358
  • Vcc
    Vcc
    +關注

    關注

    2

    文章

    305

    瀏覽量

    35855

原文標題:利用非對稱PWM模式體驗編碼器功能

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    G473使用TIM1非對稱模式做移相,用TIM8Combined PWM模式做對角的移相與門輸出,為什么時序不對?

    G473使用TIM1非對稱模式做移相,用TIM8Combined PWM模式做對角的移相與門輸出,為啥占空比對了時序不對?
    發表于 03-14 07:49

    適合AMP同構非對稱模式下的操作系統

    請問哪位知道代碼開源的適合AMP,非對稱模式下的操作系統,只需要簡單的核間任務通信和資源同步就可以。
    發表于 12-11 17:38

    編碼器測速原理及STM32編碼器模式

    本問講解了編碼器測速原理及STM32編碼器模式,文末有STM32編碼器模式例程。
    發表于 08-11 06:06

    編碼器模式的實現

    編碼器模式的實現編碼器模式默認使用定時的通道1和通道2,通道3和通道4不能使用。以下為編碼器
    發表于 08-16 08:12

    STM32利用定時編碼器模式處理帶編碼器直流電機

    STM32 Cubemax(五) —— STM32利用定時編碼器模式處理帶編碼器直流電機文章目錄系列文章目錄前言一、pandas是什么?二
    發表于 09-03 07:38

    定時編碼器模式分析

    回顧上一章節學習了PWM生成,剛好買的元器件也都到了。測試下代碼,完美運行。這不又趁著周末,進行下一個環節—定時編碼器模式。目的是為下一步PID控制做準備。遇到的問題周末學習
    發表于 01-14 08:08

    如何利用STM32的正交編碼器模式讀取編碼器的角度數據和速度?

    如何利用STM32的正交編碼器模式讀取編碼器的角度數據和速度?
    發表于 02-11 07:01

    編碼器,編碼器是什么意思

    編碼器,編碼器是什么意思 編碼器 編碼器(encoder)是將信號
    發表于 03-08 15:04 ?3088次閱讀

    什么是非對稱數字用戶線(ADSL)

    什么是非對稱數字用戶線(ADSL) 概述 ADSL是DSL的一種非對稱版本,它利用數字編碼技術從現有銅質電話線上獲取最大數據傳輸容量,同
    發表于 04-06 09:17 ?6265次閱讀

    在Zynq SoC上實現雙核非對稱的多進程處理模式

    在我的上一篇博客中我介紹了利用Zynq SoC上的兩個ARM Cortex-A9 MPCore處理執行不同的任務程序,實現非對稱的多進程處理模式的概念。
    發表于 02-11 10:08 ?2338次閱讀
    在Zynq SoC上實現雙核<b class='flag-5'>非對稱</b>的多進程處理<b class='flag-5'>模式</b>

    STM32定時非對稱PWM輸出模式應用示例

    所謂非對稱PWM輸出模式它是相對基于中心對稱計數時的對稱PWM輸出而言的。當計數
    的頭像 發表于 05-14 09:21 ?1w次閱讀
    STM32定時<b class='flag-5'>器</b><b class='flag-5'>非對稱</b><b class='flag-5'>PWM</b>輸出<b class='flag-5'>模式</b>應用示例

    STM32——編碼器測速原理及STM32編碼器模式

    本問講解了編碼器測速原理及STM32編碼器模式,文末有STM32編碼器模式例程。
    發表于 11-26 11:36 ?270次下載
    STM32——<b class='flag-5'>編碼器</b>測速原理及STM32<b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>

    STM32的正交編碼器模式讀取編碼器的角度數據和速度

    STM32的正交編碼器模式讀取編碼器的角度數據和速度
    發表于 12-08 17:06 ?142次下載
    STM32的正交<b class='flag-5'>編碼器</b><b class='flag-5'>模式</b>讀取<b class='flag-5'>編碼器</b>的角度數據和速度

    編碼器的作用和功能

    編碼器的作用和功能編碼器是一種常用的電子元件,其作用是將模擬信號轉換為數字信號或者將數字信號進行編碼。其主要功能是將輸入信號進行分析和處理
    的頭像 發表于 06-14 09:22 ?1.2w次閱讀
    <b class='flag-5'>編碼器</b>的作用和<b class='flag-5'>功能</b>

    編碼器音頻功能

    的音頻通道數量。編碼器音頻工作原理,其中實現了雙向音頻功能,即對講功能。 聲明:部分內容及圖片來源于網絡,如有侵權請聯系刪除。 無論音頻編碼器還是視頻
    的頭像 發表于 08-25 11:11 ?729次閱讀