当前位置: 首页 > news >正文

西安企业网站备案一般得多少天青岛建设集团招聘信息网站

西安企业网站备案一般得多少天,青岛建设集团招聘信息网站,网站开发公司挣钱吗,介绍好的电影网站模板下载1、引言 很多 STM32 系列中的 ADC 都带有自校准的功能。它提供了一个自动校准的过程,用于驱动包括 ADC 上电/掉电序列在内的所有校准动作。在这个过程中,ADC 计算出一个校准因子,并在内部应用到此 ADC 模块,直到下一次 ADC 掉电。…

1、引言

很多 STM32 系列中的 ADC 都带有自校准的功能。它提供了一个自动校准的过程,用于驱动包括 ADC 上电/掉电序列在内的所有校准动作。在这个过程中,ADC 计算出一个校准因子,并在内部应用到此 ADC 模块,直到下一次 ADC 掉电。在执行任何 ADC 操作之前必须校准,以消除芯片之间 ADC 结果的偏差。

2、问题

2.1、问题详情

客户使用 STM32U575ZIT6Q 验证 ADC4 时,使用 STM32CubeMX 配置后生成工程项目。因为使用 ADC 进行采样转换前,必须要做 ADC 的自校准。于是在 main 函数中加入自校准代码,如图 1 所示。
图1.代码:ADC 自校准
在这里插入图片描述
然而,在运行代码的情况下,发现 PC 指针最后跑到这个 Calibration Error 的Error_Handler()里。也就是说,执行自校准失败了!

再检查进入 Error_Handler()发生的问题,发现在执行HAL_ADCEx_Calibration_Start()时陷在了下面这个 Loop 当中,如图 2 所示。
图2.代码:等待 ADC 自校准完成
在这里插入图片描述
也就是说,ADCAL 位被置 1 后,始终没有被硬件清 0,代表自校准始终不成功。

2.2、问题分析

查看 STM32U5 的参考手册 RM0456 中关于自校准的描述。考虑到校准没有成功,那么应该看看是不是自校准需要哪些条件,而这些条件并没有成立。
于是,在 ADC 章节中的 Calibration 小节找到了这么一段话,如图 3 所示。
图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 voltage regulator)。在使用 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。
图4.独立的模拟外设供电
在这里插入图片描述
从图中黄色高亮的文字,我们可以了解到,STM32U5 的 VDDA 在控制上还跟其他系列不一样,它有一个开关来选择是否隔离。芯片复位后,VDDA 提供的 ADC 和模拟开关控制在逻辑和电气上是隔离的,因此不可用。一旦 VDDA 电源存在,就必须在使用模拟外设之前,通过在 PWR_SVMCR 寄存器中将 ASV 置位来消除隔离。也就是说,要想使用ADC,必须先将 ASV 置位来消除隔离。
在 PWR_SVMCR 寄存器的解释中,也可以看到 ASV 位的描述中要求将此位强制置 1才可以使用模拟外设,如图 5。
图5.ASV 位描述
在这里插入图片描述
ASV 的配置是没有在 STM32CubeMX 中进行配置的,所以需要在后期添加。所以,很可能就是因为没有将 ASV 置位以使能 VDDA,导致 ADC 外设被隔离,并没有得到供电,所以 ADC 的电压调整器不可能正常工作,LDORDY 也不可能为 1。

3、问题解决

在工程项目中搜索 ASV,可以找到两个 API,如图 6。
图6.VDDA 使能或禁用 API
在这里插入图片描述
也就是说,我们需要先将 HAL_PWREx_EnableVddA()添加到代码中。因为其属于MSP 硬件配置,所以将其加到 HAL_MspInit()函数,如图 7 所示。
图7.修改过的 HAL_MspInit()函数
在这里插入图片描述
再重新编译,然后执行指令代码,就可以看到 ADC 的自校准可以正常完成,PC 指针已经可以正常跑到自校准后面的代码了。

4、小结

在 STM32U5 中,为了更好地控制功耗,ADC 中加入电压调整器和 VDDA 隔离功能。这与以往的 STM32 有所不同,需要注意一下。使用 ADC 等模拟外设前,需要注意将PWR_SVMCR 寄存器中将 ASV 置位来消除隔离。
其实不仅仅是 VDDA 可以隔离,VDDIO2 也是可以的,通过 PWR_SVMCR 寄存器的IO2SV 位进行控制。
如果仔细看过 STM32U5 的 ADC 例程,可以看到 HAL_MspInit()的内容是这么写的,如图 8 所示。
图8.例程的 HAL_MspInit()函数
在这里插入图片描述
可以看到,在 MSP 初始化里,不仅使能了 VDDA,还使能了 VDDIO2。所以要使用VDDIO2 相关 I/O 的,也需要注意一下。

参考文献

文件编号文件标题版本号发布日期
RM0456STM32U5 Series Arm®-based 32-bit MCUsRev 416-Feb-2023

文档中所用到的工具及版本
IAR v9.32.2
STM32CubeMX v6.8.1


本文档参考ST官方的《【应用笔记】LAT1308+STM32U5+ADC自校准不成功的问题分析》文档。
参考下载地址:https://download.csdn.net/download/u014319604/88999453

http://www.yayakq.cn/news/390790/

相关文章:

  • flash网站的优点和缺点网站域名怎么看
  • 学校教育网站建设郑州七彩网站建设公司 概况
  • 网站建设ppt简介安徽网站建设费用
  • 手机网站制作报价全球速卖通卖家登录入口
  • 个人网站流量怎么赚钱国内代理
  • 河南建设建设监理协会网站ae模板下载网站推荐
  • 网站动画效果怎么做的青岛企业建站程序
  • 陕西网站开发公司电话重庆seo入门教程
  • 中国电信网站备案流程北京文化传媒有限公司
  • 网络网站建设广州旅游网站建设价格
  • 肇庆建设银行招聘网站创业新项目
  • 部门网站建设内容方案网页设计与网站建设文档
  • 如何修改网站源文件网站建设人员的安排
  • wordpress电影站网络舆情监控
  • 哪些网站可以医生做兼职wordpress调用文章标签名
  • 网站可以做信息抓取吗腾讯云服务器新人优惠
  • 学校网站建设需求分析深圳品牌营销咨询公司
  • 上海 松江 网站制作北滘禅城网站建设
  • 美的公司网站建设的目的宣传片制作合同范本
  • w3c标准网站ui设计机构培训过程
  • 外贸网站建设渠道seo是付费的吗
  • wordpress建站 域名网站开发公司名称
  • 专业开发网站建设公司官网查询
  • 北京做招聘网站的公司小米公司的网络营销工具
  • flash网站制作实例音乐网站设计外国
  • 孙俪做的网站广告永州商城网站建设
  • 做跨境电商被骗了如何进行关键词优化工作
  • 网站建设快速便宜自有服务器可以做网站吗
  • 建设银行山东 2015招聘网站网站的建设技术有哪些
  • 热狗网站排名优化外包企业服务官网