色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

最強 PWM 輸入原理解析

jf_78858299 ? 來源:魚鷹談單片機 ? 作者: 魚鷹Osprey ? 2023-05-10 15:01 ? 次閱讀

今天魚鷹從原理上介紹如何實現該功能。

圖片

介紹之前,首先介紹一下 STM32F103 TIM 的一些相關特性:

  1. 無法使用外部引腳中斷觸發 DMA (有些型號可以)
  2. 無法使用 TIM 同時捕獲 上升沿和下降沿 。你在庫里面看到的宏其實在使用時受到了限制,高級定時器1、8,通用定時器2、3、4、5都不行,而一般103 就只帶這些定時器。

圖片

圖片3、高頻信號輸入時,中斷進入很頻繁,如果是 100 K 頻率,你需要 5 us 進入一次(高低電平各一次,還是在占空比為 50 % 情況下,其它占空比條件更為苛刻),如果采用中斷處理方式,你必須在中斷中完成很多操作(清標志、計算、翻轉極性等),同時你需要保證這兩次中斷不能被全局中斷禁止,或者被高優先級中斷打斷,否則,你得到的可能就不是一次脈沖的高電平了,這樣你的占空比、頻率都將計算出錯。

正因為有如上問題,而捕獲 PWM 脈沖又是比較常見的功能,所以需要一個高效的捕獲程序完成該工作。而魚鷹今天介紹的實現原理我認為就是最高效的。

100K 頻率誤差 0%,占空比誤差1%!

嵌入式中,100 K 頻率已經算比較高的了,當然是在關注占空比情況下,如果只關注頻率,那么可測量的頻率將更高。

可能有些人會抬杠,說,干嘛不使用 FPGA。魚鷹當然知道有比單片機更有效的捕獲器件,因為我自己買的 邏輯分析儀 (想買這個的可以找魚鷹預定,可以給一定的優惠,預定人數需要10個以上)就可以捕獲很高的頻率、精度,但問題在于成本,在于有必要嗎?這個邏輯分析儀可是幾百大洋啊。

閑話不多說,魚鷹首先介紹一下該捕獲方法的基本原理。

很簡單,就是利用二進制溢出特性實現的。(2038問題-動圖)

圖片

這個特性魚鷹在筆記中也多次介紹了其中的應用,比如無鎖隊列、擴展定時器、編碼器、延時等,今天就再加一個應用,PWM 捕獲(本篇筆記不介紹這個特性原理,可以看歷史相關筆記)。

可以說理解了這個特性,在各種整型數據處理中如虎添翼,再也不擔心數據溢出的問題,反而要利用該特性完成一些騷操作,比如今天 PWM 捕獲就是如此。

另一個絕技就是使用 DMA 了,這是它高效可靠的原因。

首先我們看看定時器的構成框圖:

圖片

上面標注部分就是為什么 PWM 輸入模式只能使用通道 1 或通道 2 的原因。

這里我們以TI1作為PWM輸入,兩個捕獲通道同時捕獲 TI1 為例說明。

基本配置如下:

  1. 捕獲通道 1 觸發 DMA,同時設置 捕獲上升沿 ,這樣,只要上升沿觸發了,可以自動完成捕獲并DMA傳輸至用戶緩存。通道 2 下降沿捕獲 ,不觸發 DMA。
  2. 配置DMA,傳輸外設地址不是某一個寄存器,而是 DMAR,同時設置傳輸數量,這一定是 2 的倍數,因為一次需要傳輸兩次,32 位寬度。
  3. 因為需要傳輸兩次 CCRx,所以需要正確設置 DCR 寄存器。

以上配置就是整個功能最為關鍵的部分。如果你理解了下面介紹的捕獲原理,你自然知道為什么需要這么設置了。

我們首先看看 PWM 捕獲時基本工作過程:

圖片

另外還需要了解 TIM 一個很重要的DMA 傳輸特性:通過配置寄存器,可以一次觸發,多次DMA連續傳輸,這個特性在這個功能中也被用上了。

圖片

圖片

如何利用這個功能呢?一般我們配置 DMA 傳輸時,比如串口,一般外設地址就是 DR 寄存器。而如果我們想傳輸 TIM 的捕獲值,我們可以設置成 CCR1 寄存器的地址。

這樣也可以正常傳輸,但是只能在觸發時傳輸一個寄存器的值,如果需要把兩次捕獲值都傳輸,那么就需要配置兩個 DMA 通道完成,但這里又涉及到了兩個 DMA 通道同步的問題,因為你肯定希望每次采集的兩個數據都屬于同一個脈沖。

所以 TIM 用了這兩個寄存器解決這個問題,通過 ** DMAR 中轉** ,就可以完成一次觸發,連續傳輸兩個 CCR 的值。

想必看到這里,你應該大概知道該捕獲的原理是什么了。

圖片

這里魚鷹再結合上圖描述一下。

初始化(定時器、DMA、GPIO)完成后,定時器就準備好工作了,一旦有一個脈沖輸入,上升沿觸發,此時因為設置了 DMA 觸發,同時設置了連續傳輸兩個寄存器,所以它會把當前的 CCR1 和上一次捕獲的 CCR2 (下降沿觸發)傳輸到用戶緩存,這是 兩次 DMA 傳輸 ,所以DMA的計數器會遞減兩次。并且 CCR1 的值比 CCR2 的值大 (不考慮溢出情況下,并且差值情況下,大小沒有意義)。這樣,上面的三次觸發,我們可以得到三組捕獲數據。

圖片

通過 (uint16_t)(CCR1 – CCR2),我們可以得到 低電平 ,而通過兩次CCR1 或者 CCR2 的差值,我們可以得到 周期 。這樣計算頻率和占空比就不是什么難事了。特別需要注意的是,三次上升沿捕獲期間,定時器不可以產生溢出現象,這可以通過定時器分頻實現。分頻系數越小,分辨率越高,但越容易溢出。

這里要注意的是,如果頻率比較高,建議多測量幾組數據,然后取后面幾組數據進行簡單平均或中值計算(具體根據捕獲值來確定),這樣準確度更高一些,因為剛開始可能因為初始化的緣故,導致意外捕獲,這是可能的(剛開始不確定可以測個 64 組再說)。

另外如果輸入 PWM 頻率或占空比會 不斷變化 ,也需要根據情況多測幾組(或定時測),并進行簡單處理,這樣不容易剛好捕獲到變化的脈沖,保證脈沖計算的可靠性。

總之,怎么去讓你的程序更加可靠就是各位道友的事情了,魚鷹只是提供一個解決思路。另外魚鷹不準備提供源碼給各位道友,自由發揮吧。如果確實有需要的話,在本篇文章更新前的時間里,道友有過贊賞或者留言被置頂或轉發支持的情況,那么也可以主動聯系魚鷹,魚鷹可以給一份參考程序,僅供參考。

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

    關注

    114

    文章

    5190

    瀏覽量

    214102
  • 定時器
    +關注

    關注

    23

    文章

    3250

    瀏覽量

    114907
  • dma
    dma
    +關注

    關注

    3

    文章

    561

    瀏覽量

    100617
  • Tim
    Tim
    +關注

    關注

    0

    文章

    81

    瀏覽量

    17910
收藏 人收藏

    評論

    相關推薦

    脈寬調制(PWM)設計及應用原理解析

    脈寬調制(以下簡稱為PWM)是數字系統產生模擬輸出的一種方式(通過將PWM信號通過一些附加電路和/或機械系統)。PWM的一些應用示例如下:   PWM信號可用于通過低通濾波器產生模擬
    發表于 11-28 12:31 ?5469次閱讀
    脈寬調制(<b class='flag-5'>PWM</b>)設計及應用原<b class='flag-5'>理解析</b>

    手機通信原理解析

    `手機通信原理解析:第 1 章    無線通信原理第2 章    移動通信系統第3 章    移動通信系統的多址接入技術第4 章    移動通信系統的語音編碼第5 章 GSM移動通信系統的數字
    發表于 12-14 14:31

    stm32的定時器還可以PWM輸入檢測嗎,能解釋下嗎有點不理解

    stm32的定時器還可以PWM輸入檢測嗎,能解釋下嗎有點不理解
    發表于 03-29 16:15

    定位技術原理解析

    【追蹤嫌犯的利器】定位技術原理解析(4)
    發表于 05-04 12:20

    鋰電池基本原理解析

    【鋰知道】鋰電池基本原理解析:充電及放電機制電池充電最重要的就是這三步:第一步:判斷電壓
    發表于 09-15 06:47

    如何理解懸浮輸入?如何理解中斷懸浮輸入

    輸入輸入阻抗較高,可以用于模擬信號轉換為數字信號1.2如何理解中斷懸浮輸入?略。。。1.3如何理解上拉
    發表于 01-25 07:22

    虛擬存儲器部件原理解析

    虛擬存儲器部件原理解析
    發表于 04-15 14:25 ?3130次閱讀

    觸摸屏的應用與工作原理解析

    觸摸屏的應用與工作原理解析
    發表于 02-08 02:13 ?38次下載

    關于PWM的應用與知識解析

    PWM全稱Pulse Width Modulation:脈沖寬度調制(簡稱脈寬調制,通俗的講就是調節脈沖的寬度),是電子電力應用中非常重要的一種控制技術,在理解TA之前我們先來了解幾個概念 。
    的頭像 發表于 04-12 09:13 ?4487次閱讀
    關于<b class='flag-5'>PWM</b>的應用與知識<b class='flag-5'>解析</b>

    清翔電子51單片機PWM理解

    清翔電子51單片機PWM理解
    發表于 11-12 13:36 ?16次下載
    清翔電子51單片機<b class='flag-5'>PWM</b><b class='flag-5'>理解</b>

    關于PWM模式的理解

    關于PWM模式的理解
    發表于 11-30 14:06 ?3次下載
    關于<b class='flag-5'>PWM</b>模式的<b class='flag-5'>理解</b>

    史密斯圓圖和阻抗匹配原理解析

    史密斯圓圖和阻抗匹配原理解析
    的頭像 發表于 11-02 20:16 ?2010次閱讀

    什么是晶振 晶振工作原理解析

    什么是晶振 晶振工作原理解析
    的頭像 發表于 12-30 17:13 ?4353次閱讀
    什么是晶振 晶振工作原<b class='flag-5'>理解析</b>

    PWM輸入理解析

    高頻信號輸入時,中斷進入很頻繁,如果是 100 K 頻率,你需要 5 us 進入一次(高低電平各一次,還是在占空比為 50 % 情況下,其它占空比條件更為苛刻),如果采用中斷處理方式,你必須在中斷中
    的頭像 發表于 03-28 16:55 ?2448次閱讀
    <b class='flag-5'>PWM</b><b class='flag-5'>輸入</b>原<b class='flag-5'>理解析</b>

    最強干貨!一文帶你了解PWM技術

    PWM有著非常廣泛的應用,比如直流電機的無極調速,開關電源、逆變器等等,個人認為,要充分理解或掌握模擬電路、且有所突破,很有必要吃透這三個知識點: PWM 電感 紋波 PWM是一種技術
    的頭像 發表于 08-11 19:45 ?1973次閱讀
    <b class='flag-5'>最強</b>干貨!一文帶你了解<b class='flag-5'>PWM</b>技術
    主站蜘蛛池模板: 麻豆国产原创中文AV网站| 一二三四在线视频社区| 妻子的秘密HD观看| 青青伊人久久| 亚洲AV久久婷婷蜜臀无码不卡| 五花大绑esebdsm国产| 亚洲精品久久一区二区三区四区| 亚洲一级电影| 超碰在线 视频| 国产在线精品视频二区| 美女脱18以下禁止看免费| 添加一点爱与你电视剧免费观看| 亚洲乱码日产精品BD在线下载| 97在线国内自拍视频| 国产黄A片在线观看永久免费麻豆| 国产一区二区三区乱码在线观看| 男子扒开美女尿口做羞羞的事| 王小军怎么了最新消息| 99热这里有精品| 黄色网址在线播放| 色中色论坛网站| 扒开女人下面使劲桶动态图 | 绿巨人www在线观看| 亚洲 日韩 欧美 国产专区| a视频免费在线| 另类专区hy777| 亚洲中文 字幕 国产 综合| 国产高清美女一级毛片久久| 欧美视频 亚洲视频| 97人人爽人人爽人人人片AV| 久久嫩草影院网站| 夜夜躁婷婷AV蜜桃视频| 国内精品久久久久久西瓜色吧| 少妇无码太爽了视频在线播放| 99精品99| 青青热久久综合网伊人| 插骚妇好爽好骚| 秋霞网在线伦理免费| 大地影院在线播放| 先锋影音av无码第1页| 国产欧美一区二区三区在线看 |