• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 如何無(wú)冒險(xiǎn)更新PWM數(shù)值?

    如何無(wú)冒險(xiǎn)更新PWM數(shù)值?

    作者: 時(shí)間:2025-01-08 來(lái)源:TsinghuaJoking 收藏

    一、前言

    本文引用地址:http://www.czjhyjcfj.com/article/202501/466097.htm

    在剛才的實(shí)驗(yàn)中,使用 GP8500,將單片機(jī)發(fā)送的波形轉(zhuǎn)換成。在這個(gè)過程中,會(huì)發(fā)現(xiàn)輸出有一些毛刺。信號(hào)中的毛刺主要是因?yàn)檩敵?a class="contentlabel" href="http://www.czjhyjcfj.com/news/listbylabel/label/PWM">PWM的波形出現(xiàn)了抖動(dòng)??梢钥吹?,在抖動(dòng)前面和后面的占空比不同。由此可以知道,在這中間,單片機(jī)對(duì)PWM的比較單元進(jìn)行了數(shù)值更新。更新前后,GP8500輸出的電壓不同。那么問題來(lái)了,如何能夠避免PWM中寄存器更新的過程中,出現(xiàn)輸出脈沖抖動(dòng)的情況呢?下面討論一下這個(gè)問題的解決方案。

    ▲ 圖1.1.1 輸出信號(hào)中的毛刺

    二、解決方案

    數(shù)據(jù)手冊(cè)中,對(duì)于更新PWM模塊中 CCR寄存器有相應(yīng)的說(shuō)明。需要對(duì) CCMR寄存器中的 OCnPE位進(jìn)行設(shè)置。如果設(shè)置為0,則更新后的數(shù)值會(huì)立即生效。否則,只有當(dāng)PWM模塊出現(xiàn)更新事件之后,CCR寄存器才會(huì)更新寫入的數(shù)據(jù)。可以看到,在程序中,之前對(duì)于比較寄存器預(yù)裝使能位沒有置1,疏忽了。現(xiàn)在將它修改過來(lái),重新測(cè)試,就會(huì)發(fā)現(xiàn),前面遇到的輸出毛刺信號(hào)就消失的無(wú)影無(wú)蹤了。

    ▲ 圖1.2.1 修改之后,輸出波形就沒有毛刺了

    ※ 總??結(jié) ※

    本文記錄了 單片機(jī)中 PWM 比較寄存器更新的問題。如果使能比較寄存器預(yù)存功能,可以避免輸出PWM波形出現(xiàn)抖動(dòng)現(xiàn)象。這就會(huì)讓 GP8500 這顆PCA芯片的輸出信號(hào)中不會(huì)出現(xiàn)毛刺。那么問題來(lái)了,既然PWM 比較寄存器的預(yù)存功能如此重要,為何還會(huì)存在一種設(shè)置,來(lái)取消這種預(yù)存功能呢? 這種預(yù)存功能取消之后,會(huì)適合應(yīng)用在什么情況下呢?

    參考資料

    [1]利用PWM輸出模擬電壓:STC32G 驅(qū)動(dòng) GP8500: https://zhuoqing.blog.csdn.net/article/details/144979365



    關(guān)鍵詞: STC32G PWM 模擬信號(hào)

    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 利辛县| 洛扎县| 邻水| 嵩明县| 张家界市| 六枝特区| 库伦旗| 尼玛县| 青田县| 德州市| 长宁区| 成武县| 临西县| 城口县| 濉溪县| 神木县| 钦州市| 铜山县| 隆昌县| 特克斯县| 南华县| 特克斯县| 贵州省| 玉山县| 宝鸡市| 镇远县| 兴化市| 宜昌市| 邵阳县| 高州市| 育儿| 文昌市| 夏河县| 云霄县| 遂溪县| 迭部县| 长海县| 永丰县| 莒南县| 西林县| 滕州市|