一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

實戰(zhàn)經(jīng)驗 | STM32U5 ADC 自校準不成功的問題分析

STM32單片機 ? 來源:未知 ? 2023-12-10 16:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

wKgZomV1e7qAZlHJAAHUHXdxAL4922.gif

關(guān)鍵詞:STM32U5,ADC

目錄預(yù)覽

1、引言

2、問題

3、問題解決

4、小結(jié)

01

引言

很多 STM32 系列中的 ADC 都帶有自校準的功能。它提供了一個自動校準的過程,用于驅(qū)動包括 ADC 上電/掉電序列在內(nèi)的所有校準動作。在這個過程中,ADC 計算出一個校準因子,并在內(nèi)部應(yīng)用到此 ADC 模塊,直到下一次 ADC 掉電。在執(zhí)行任何 ADC 操作之前必須校準,以消除芯片之間 ADC 結(jié)果的偏差。

02

問題

2.1. 問題詳情

客戶使用 STM32U575ZIT6Q 驗證 ADC4 時,使用 STM32CubeMX 配置后生成工程項目。因為使用 ADC 進行采樣轉(zhuǎn)換前,必須要做 ADC 的自校準。于是在 main 函數(shù)中加入自校準代碼,如圖 1 所示。

wKgZomV1e7qAY1wgAABT0CW0xu8134.jpg

圖1.代碼:ADC 自校準

然而,在運行代碼的情況下,發(fā)現(xiàn) PC 指針最后跑到這個 Calibration Error 的Error_Handler()里。也就是說,執(zhí)行自校準失敗了!

再檢查進入 Error_Handler()發(fā)生的問題,發(fā)現(xiàn)在執(zhí)行HAL_ADCEx_Calibration_Start()時陷在了下面這個 Loop 當中,如圖 2 所示。

wKgZomV1e7qATXCCAACJk9sCAkM641.jpg

圖2.代碼:等待 ADC 自校準完成

也就是說,ADCAL 位被置 1 后,始終沒有被硬件清 0,代表自校準始終不成功。

2.2. 問題分析

查看 STM32U5 的參考手冊 RM0456 中關(guān)于自校準的描述??紤]到校準沒有成功,那么應(yīng)該看看是不是自校準需要哪些條件,而這些條件并沒有成立。

于是,在 ADC 章節(jié)中的 Calibration 小節(jié)找到了這么一段話,如圖 3 所示。

wKgZomV1e7uAdIIgAACWubvvays217.jpg

圖3.ADC 自校準要求條件

也就是說,在初始化自校準之前,需要保證 3 個條件:

1) ADC 的電壓調(diào)整器已經(jīng)使能并正常工作(ADVREGEN = 1 且 LDORDY =1)

2) ADC 沒有打開(ADEN=0)

3) 自動掉電模式?jīng)]有使能(AUTOFF = 0)

回到剛才等待 ADC 自校準完成的代碼,當指針停留到這邊時,在線調(diào)試檢查各個標志位情況,發(fā)現(xiàn) ADVREGEN=1,ADEN=0,AUTOFF=0,LDORDY=0。所以,可以肯定的是就是 LDORDY 不為 1,也就是說 ADC 的電壓調(diào)整器還沒有準備好,導(dǎo)致了自校準無法成功并退出。

在 STM32U5 中,引入了一個新的 ADC 特性,叫 ADC 電壓調(diào)整器(ADC voltageregulator)。在使用 ADC 之前,這個電壓調(diào)整器必須被使能并且能夠穩(wěn)定工作??梢酝ㄟ^將 ADC_CR 寄存器中的 ADVREGEN 位置 1 來使能它,然后必須要等這個電壓調(diào)整器的啟動時間之后,才可以正常啟動自校準或者使用 ADC。這個 LDO 有沒有準備好,可以通過 ADC_ISR 寄存器中的 LDORDY 這個位來判斷。LDORDY=1 才代表了 LDO 已經(jīng)準備好了。

回到客戶的問題,可以知道即使 ADVREGEN 置 1 了,LDORDY 始終沒有置起來,電壓調(diào)整器沒有啟動工作,難道是 ADC 的這個電壓調(diào)整器壞掉了?

別急,想到電源的問題,還不能忘了參考手冊的另一個章節(jié) :電源控制 PWR。翻到PWR 這一章,先要考慮到,與 ADC 相關(guān)的電源為 VDDA,所以要重點查看 VDDA 的內(nèi)容。找到 Independent analog peripherals supply 這一小節(jié),可以看以下關(guān)鍵的句子,如圖 4。

wKgZomV1e7uAZofaAAG5GJGPf38431.jpg

圖4.獨立的模擬外設(shè)供電

從圖中黃色高亮的文字,我們可以了解到,STM32U5 的 VDDA 在控制上還跟其他系列不一樣,它有一個開關(guān)來選擇是否隔離。芯片復(fù)位后,VDDA 提供的 ADC 和模擬開關(guān)控制在邏輯和電氣上是隔離的,因此不可用。一旦 VDDA 電源存在,就必須在使用模擬外設(shè)之前,通過在 PWR_SVMCR 寄存器中將 ASV 置位來消除隔離。也就是說,要想使用ADC,必須先將 ASV 置位來消除隔離。

在 PWR_SVMCR 寄存器的解釋中,也可以看到 ASV 位的描述中要求將此位強制置 1才可以使用模擬外設(shè),如圖 5。

wKgZomV1e7uAQJKdAAC6z9jcInY958.jpg

圖5.ASV 位描述

ASV 的配置是沒有在 STM32CubeMX 中進行配置的,所以需要在后期添加。所以,很可能就是因為沒有將 ASV 置位以使能 VDDA,導(dǎo)致 ADC 外設(shè)被隔離,并沒有得到供電,所以 ADC 的電壓調(diào)整器不可能正常工作,LDORDY 也不可能為 1。

03

問題解決

在工程項目中搜索 ASV,可以找到兩個 API,如圖 6。

wKgZomV1e7uAe3w2AADPvGnknRw460.jpg

圖6.VDDA 使能或禁用 API

也就是說,我們需要先將 HAL_PWREx_EnableVddA()添加到代碼中。因為其屬于MSP 硬件配置,所以將其加到 HAL_MspInit()函數(shù),如圖 7 所示。

wKgZomV1e7uACC1ZAACpY3G4lvA520.jpg

圖7.修改過的 HAL_MspInit()函數(shù)

再重新編譯,然后執(zhí)行指令代碼,就可以看到 ADC 的自校準可以正常完成,PC 指針已經(jīng)可以正常跑到自校準后面的代碼了。

04

小結(jié)

在 STM32U5 中,為了更好地控制功耗,ADC 中加入電壓調(diào)整器和 VDDA 隔離功能。這與以往的 STM32 有所不同,需要注意一下。使用 ADC 等模擬外設(shè)前,需要注意將PWR_SVMCR 寄存器中將 ASV 置位來消除隔離。

其實不僅僅是 VDDA 可以隔離,VDDIO2 也是可以的,通過 PWR_SVMCR 寄存器的IO2SV 位進行控制。

如果仔細看過 STM32U5 的 ADC 例程,可以看到 HAL_MspInit()的內(nèi)容是這么寫的,如圖 8 所示。

wKgZomV1e7yAZ9XYAAC98ziGubc031.jpg

圖8.例程的 HAL_MspInit()函數(shù)

可以看到,在 MSP 初始化里,不僅使能了 VDDA,還使能了 VDDIO2。所以要使用VDDIO2 相關(guān) I/O 的,也需要注意一下。

wKgZomV1e7yACjBNAAHiBpzEGaQ725.png

完整內(nèi)容請點擊“閱讀原文”下載原文檔。


原文標題:實戰(zhàn)經(jīng)驗 | STM32U5 ADC 自校準不成功的問題分析

文章出處:【微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6067

    文章

    44982

    瀏覽量

    650291
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11031

    瀏覽量

    364706

原文標題:實戰(zhàn)經(jīng)驗 | STM32U5 ADC 自校準不成功的問題分析

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    請問STM32U5不支持ST-LINK v2怎么辦?

    STM32U5不支持ST-LINK v2怎么辦?
    發(fā)表于 06-09 07:59

    移動電源EMC整改:認證失敗到一次通過的實戰(zhàn)經(jīng)驗

    深圳南柯電子|移動電源EMC整改:認證失敗到一次通過的實戰(zhàn)經(jīng)驗
    的頭像 發(fā)表于 05-26 11:25 ?198次閱讀
    移動電源EMC整改:認證失敗到一次通過的<b class='flag-5'>實戰(zhàn)經(jīng)驗</b>

    STM32U5?(超低功耗MCU,支持TinyML)全面解析

    :在電機或設(shè)備中部署STM32U5,通過振動傳感器數(shù)據(jù)訓(xùn)練TinyML模型,預(yù)測設(shè)備故障,避免停機損失。智能傳感器 :集成14位ADC與MDF,實現(xiàn)高精度信號采集(如工業(yè)流量計),結(jié)合AI算法優(yōu)化測量
    的頭像 發(fā)表于 04-08 17:38 ?1714次閱讀
    <b class='flag-5'>STM32U5</b>?(超低功耗MCU,支持TinyML)全面解析

    訓(xùn)練好的ai模型導(dǎo)入cubemx不成功怎么處理?

    訓(xùn)練好的ai模型導(dǎo)入cubemx不成功咋辦,試了好幾個模型壓縮了也不行,ram占用過大,有無解決方案?
    發(fā)表于 03-11 07:18

    燒錄DLP4500 FIRMWARE的過程中一直不成功,什么原因?

    我在燒錄DLP4500 FIRMWARE的過程中一直不成功,總是在最后一步停止不動,顯示download completed in xxxxxx,但進度一直是0%不動,如圖,請問這個問題如何解決?
    發(fā)表于 02-21 07:57

    提升開關(guān)電源效率的理論分析實戰(zhàn)經(jīng)驗

    在這里有電源技術(shù)干貨、電源行業(yè)發(fā)展趨勢分析、最新電源產(chǎn)品介紹、眾多電源達人與您分享電源技術(shù)經(jīng)驗,關(guān)注我們,與中國電源行業(yè)共成長! 提升開關(guān)電源效率的理論分析實戰(zhàn)經(jīng)驗 引言 開關(guān)電源設(shè)
    的頭像 發(fā)表于 01-09 10:04 ?993次閱讀
    提升開關(guān)電源效率的理論<b class='flag-5'>分析</b>與<b class='flag-5'>實戰(zhàn)經(jīng)驗</b>

    ADS1262寄存器的寫入不成功是什么原因?

    最近在調(diào)ADS1262,spi通信時序用的就是之前調(diào)1248的時序,沒有問題。但是在調(diào)1262的時候,對寄存器的寫入不成功,設(shè)置以AINCOM作為恒流源輸出,1ma電流,然而流經(jīng)2.4k電阻后電壓
    發(fā)表于 12-30 07:46

    STM32項目實戰(zhàn):基于STM32U5的智能大棚溫控系統(tǒng)(LVGL),附項目教程/源碼

    《智能大棚溫控系統(tǒng)_STM32U5》項目完整文檔、項目源碼,點擊下方鏈接免費領(lǐng)取。項目資料領(lǐng)取https://s.c1ns.cn/F5XyUSTM32項目實戰(zhàn)之“智能大棚溫控系統(tǒng)
    的頭像 發(fā)表于 11-13 17:08 ?1911次閱讀
    <b class='flag-5'>STM32</b>項目<b class='flag-5'>實戰(zhàn)</b>:基于<b class='flag-5'>STM32U5</b>的智能大棚溫控系統(tǒng)(LVGL),附項目教程/源碼

    STM32項目實戰(zhàn):基于STM32U5的火災(zāi)報警系統(tǒng)(LVGL),附項目教程/源碼

    《火災(zāi)報警系統(tǒng)_STM32U5》項目完整文檔、項目源碼,點擊下方鏈接免費領(lǐng)取。項目資料領(lǐng)取https://s.c1ns.cn/F5XyUSTM32項目實戰(zhàn)之“火災(zāi)報警系統(tǒng)”(基于STM32U5
    的頭像 發(fā)表于 11-13 14:18 ?1866次閱讀
    <b class='flag-5'>STM32</b>項目<b class='flag-5'>實戰(zhàn)</b>:基于<b class='flag-5'>STM32U5</b>的火災(zāi)報警系統(tǒng)(LVGL),附項目教程/源碼

    ADS127L11配置ADC使用外部時鐘以及FILTER[4:0]都不成功,為什么?

    配置ADC使用外部時鐘以及FILTER[4:0]都不成功,spi的時序都是正常的,使用的是4線spi
    發(fā)表于 11-13 08:03

    STM32項目實戰(zhàn):基于STM32U5的智能燈光控制系統(tǒng)(LVGL),附項目教程/源碼

    《智能燈光控制系統(tǒng)_STM32U5》項目完整文檔、項目源碼,點擊免費領(lǐng)取。項目資料領(lǐng)?。篽ttps://s.c1ns.cn/F5XyUSTM32項目實戰(zhàn)之“智能燈光控制系統(tǒng)”(基于STM32U
    的頭像 發(fā)表于 11-07 18:50 ?2396次閱讀
    <b class='flag-5'>STM32</b>項目<b class='flag-5'>實戰(zhàn)</b>:基于<b class='flag-5'>STM32U5</b>的智能燈光控制系統(tǒng)(LVGL),附項目教程/源碼

    MUC對TAS3251配置不成功的原因?

    MUC對TAS3251配置不成功 MCU配置TAS3251的初始化,我對照datasheet的47頁進行配置,始終無法出出聲音,需要尋求一下幫助希望提供一下初始化代碼 I2C進行了如下配置
    發(fā)表于 10-10 06:40

    VCA821輸出Vg4.2V仿真不成功是哪里出了問題?

    輸出Vg4.2V 仿真不成功
    發(fā)表于 08-12 06:46

    ESP-WROOM-02U用esptouch來配置路由器不成功怎么解決?

    我在官網(wǎng)上買了幾片 ESP-WROOM-02U模塊,用esptouch來配置路由器不成功,是不是需要重新下載ESP-WROOM-02U的固件?
    發(fā)表于 07-19 08:28

    rtt工程移植后線程創(chuàng)建不成功怎么解決?

    之前用l431的板子跑10k的采樣后來要提高到100k,更換了f446的芯片,但是根據(jù)新的內(nèi)存地址從0x20000000開始寫入數(shù)據(jù)后,兩個線程創(chuàng)建不成功了,不知道是否是線程的的大小不夠還是內(nèi)存分配不對,求指點
    發(fā)表于 07-18 06:44