在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

實戰經驗 | STM32U5 ADC 自校準不成功的問題分析

STM32單片機 ? 來源:未知 ? 2023-12-10 16:45 ? 次閱讀

wKgZomV1e7qAZlHJAAHUHXdxAL4922.gif

關鍵詞:STM32U5,ADC

目錄預覽

1、引言

2、問題

3、問題解決

4、小結

01

引言

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

02

問題

2.1. 問題詳情

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

wKgZomV1e7qAY1wgAABT0CW0xu8134.jpg

圖1.代碼:ADC 自校準

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

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

wKgZomV1e7qATXCCAACJk9sCAkM641.jpg

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

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

2.2. 問題分析

查看 STM32U5 的參考手冊 RM0456 中關于自校準的描述。考慮到校準沒有成功,那么應該看看是不是自校準需要哪些條件,而這些條件并沒有成立。

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

wKgZomV1e7uAdIIgAACWubvvays217.jpg

圖3.ADC 自校準要求條件

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

1) ADC 的電壓調整器已經使能并正常工作(ADVREGEN = 1 且 LDORDY =1)

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

3) 自動掉電模式沒有使能(AUTOFF = 0)

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

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

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

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

wKgZomV1e7uAZofaAAG5GJGPf38431.jpg

圖4.獨立的模擬外設供電

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

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

wKgZomV1e7uAQJKdAAC6z9jcInY958.jpg

圖5.ASV 位描述

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

03

問題解決

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

wKgZomV1e7uAe3w2AADPvGnknRw460.jpg

圖6.VDDA 使能或禁用 API

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

wKgZomV1e7uACC1ZAACpY3G4lvA520.jpg

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

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

04

小結

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

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

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

wKgZomV1e7yAZ9XYAAC98ziGubc031.jpg

圖8.例程的 HAL_MspInit()函數

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

wKgZomV1e7yACjBNAAHiBpzEGaQ725.png

完整內容請點擊“閱讀原文”下載原文檔。


原文標題:實戰經驗 | STM32U5 ADC 自校準不成功的問題分析

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


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

    關注

    6044

    文章

    44628

    瀏覽量

    638993
  • STM32
    +關注

    關注

    2273

    文章

    10926

    瀏覽量

    357789

原文標題:實戰經驗 | STM32U5 ADC 自校準不成功的問題分析

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

收藏 人收藏

    評論

    相關推薦

    提升開關電源效率的理論分析實戰經驗

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

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

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

    STM32項目實戰:基于STM32U5的火災報警系統(LVGL),附項目教程/源碼

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

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

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

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

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

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

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

    STM32H5STM32U5在trustzone上有哪些不同?

    我要做空調的空中升級FOTA的方案,需要加密,對于trustzone功能,采用那款芯片比較合適?STM32H5STM32U5在trustzone上有哪些不同?
    發表于 07-05 07:03

    使用STM32CUBEMX創建一個基于RTOS的工程,互斥量創建不成功的原因?

    使用STM32CUBEMX創建一個基于RTOS的工程,使用了互斥量,但互斥量創建不成功
    發表于 05-15 07:22

    STM32F103 USB枚舉不成功的原因?

    (NVIC_VectTab_FLASH,0x8800),但此時USB便枚舉不成功,此時其他中斷是正常的;但若把APP起始地址改為0X8000000不使用IAP進行跳轉則枚舉沒有問題.我比較懷疑中斷向量這塊的設置是不是還有問題,跪求高手幫忙看看.我使用的MCU為STM32F
    發表于 04-29 06:29

    STM32在中斷中OSFlagPost不成功是為什么?

    STM32在中斷中OSFlagPost不成功,是為什么?
    發表于 04-23 07:44

    STM32F103RGT6位帶操作不成功的原因?

    各位大神,我是一個入門級的超級菜鳥,遇到一個問題: 為啥子我同樣的位帶操作在STM32F103C8T6上操作成功,但是在STM32F103RGT6位帶操作不成功
    發表于 04-19 06:32

    STM32U5,STM32WB及STM32L4開發板,哪個開發板擁有較多數量的ADC?

    請問,我現在需要開發一個項目,在這個項目中需要使用較多數量的傳感器(至少8個),這些傳感器需要進行信號采集,現在在使用STM32U5,STM32WB及STM32L4芯片的開發板中,哪些開發板擁有較多數量的
    發表于 03-20 08:01

    STM32U5開發板ADC校準超時怎么解決?

    使用的代碼就是官方的例程,我把官方的Cubemx文件另存為另一個工程之后,重新生成代碼(這樣做是為了保證硬件配置是一致的)。調用HAL_ADCEx_Calibration_Start進行ADC校準的時候超時。同一個板子用例程就很快完成了
    發表于 03-18 07:36

    基于STM32U5片內溫度傳感器正確測算溫度實戰經驗分享

    STM32 在內部都集成了一個溫度傳感器,STM32U5 也不例外。這個位于晶圓上的溫度傳感器雖然不太適合用來測量外部環境的溫度,但是用于監控晶圓上的溫度還是挺好的,以防止芯片過溫運行。
    的頭像 發表于 02-22 17:27 ?4424次閱讀
    基于<b class='flag-5'>STM32U5</b>片內溫度傳感器正確測算溫度<b class='flag-5'>實戰經驗</b>分享

    盤點那些硬件+項目學習套件:STM32U5單片機開發板及入門常見問題解答

    型號STM32學習感興趣的朋友可以了解。基本上有了STM32U5經驗,再去學習STM32G0/F1/F4核心,就會上手很快。STM32U5
    發表于 02-19 16:59
    主站蜘蛛池模板: 日本v片免费一区二区三区 日本www.色 日本wwwwww | www在线视频观看 | 人人做人人看 | 色综合天天综合给合国产 | 轻点灬大ji巴太粗太大了小说 | 深夜国产成人福利在线观看女同 | 天堂网在线.www天堂在线资源 | 欧美aaaaaaaaaa| 有码视频在线观看 | 四虎在线观看免费视频 | 久草五月 | 天堂资源8中文最新版在线 天堂资源地址在线 | 狠狠色网站 | 韩国午夜精品理论片西瓜 | a网在线 | 天天做天天爱天天做天天吃中 | 男人午夜天堂 | 日本黄色免费电影 | www.四虎影院在线观看 | 久久天天躁狠狠躁夜夜2020一 | 亚洲丁香婷婷 | 国内精品久久久久影院男同志 | 国内精品视频免费观看 | 如色网 | 色综合久久中文综合网 | 四虎影视最新 | 午夜国产高清精品一区免费 | 97人人插| 特一级黄色片 | 国产成人精品系列在线观看 | 尤物蜜芽福利国产污在线观看 | 一级特级aaa毛片 | 久青草久青草高清在线播放 | 国产床戏无遮掩视频播放 | 色综合视频一区二区三区 | 亚洲最大成人网色 | 色综合激情 | 在线视频观看一区 | 免费看污视频软件 | 无限国产资源 | 性欧美hd|