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

S32K3开发问题-ADC采样电压一直为5V原因分析及处理

文章目录

    • 前言
    • 排查方向
      • PIN功能排查
      • MCAL排查
    • 解决方法
    • 总结

前言

在新项目开发过程,出现了一个ADC通道采样值一直为异常5V,本文记录分析问题出现的原因及解决方案

排查方向

首先检查了MCAL的Port及Adc配置,未发现异常,然后硬件排查了引脚的连接也没有啥毛病,测试直接将ADC要采的电压输入断开,软件还是能够读到5V的电压,而且对应Pin上确实是有5V输出。说明还是软件控制的5V输出。

PIN功能排查

我们使用的是PTE13的ADC功能,该PIN功能如下:在这里插入图片描述
此处注意到一个特别的功能是VRC_CTRL,查阅手册发现该输出是为了内部生成1.5V电压用的:在这里插入图片描述
大概率是因为配置了这个功能导致该PIN作为VRC_CTRL输出了

MCAL排查

排查MCU中的配置,有一个Last Mile Regulator Base Control Enable,其中解释如下:

对应寄存器PMC_CONFIG[LMBCTLEN]字段配置。

最后一英里调节器基础控制使能位。

如果在PCB上使用VDD_HV_A和V15之间的外部BJT,则必须将该位设置为1。该BJT的基极必须连接到VRC_CTRL引脚上,并由PMC控制以调节V15引脚上1.5V的电压。

0 - V15外部BCTL调节器失效。

1 -启用V15的外部BCTL调节器

在这里插入图片描述
该功能如果启用,则需要一个外部三极管,将VRC_CTRL输出的5V转换为1.5V,也就不需要外部供1.5V电了。

之前的MCAL中默认使能了Last Mile Regulator Base Control Enable,导致出现了这个问题

解决方法

在Mcu-McuPMC_Config中取消配置Last Mile Regulator Base Control Enable即可

取消配置后,对应的生成代码中PMC_CONFIG_LMBCTLEN_MASK不再定义在这里插入图片描述
实际就是配置COGFIG寄存器
在这里插入图片描述

总结

对于MCAL中的每一项配置,应该都是有意义的,但是所有的配置项全部弄清楚也需要大量的时间和实践,所以一般对重要的配置搞清楚,其他配置大致知道是干啥的就很不错了,这样出了问题排查起来也会是很快的。

相关文章:

  • 探索链表的奇妙世界:从基础到高级应用
  • RIP 协议实验全记录:从配置到问题解决
  • Linux常见指令合集+知识点
  • 哪些实验需要强磁场
  • esp32+IDF V5.1.1版本编译freertos报错
  • C++八股 —— 手撕定时器
  • 树形DP
  • 如何快速解决 java maven项目中jar冲突的问题
  • 「Python教案」输入输出函数的使用
  • 为什么在设置 model.eval() 之后,pytorch模型的性能会很差?为什么 dropout 影响性能?| 深度学习
  • 人工智能杂谈(十二)大模型与小模型的应用场景及未来发展趋势
  • Nacos适配GaussDB超详细部署流程
  • 记录一次功能优化需求下的业务处理思路整理
  • 《AVL树完全解析:平衡之道与C++实现》
  • 算法学习笔记·数学·快速幂
  • C# 高性能写入txt大量数据
  • 第一课:医学影像研究的科学思维与问题提出
  • JWT笔记
  • 《棒球百科》长寿运动排名·棒球1号位
  • 冰箱热交换的原理以及如何加氟
  • 自己有云主机 怎么网站备案/百度竞价seo排名
  • 电子商务网站建设及维护管理/免费网站统计代码
  • 做水果网站平台/免费自制app软件
  • 网站单页别人是怎么做的/黑帽seo技巧
  • 商品网站怎么做/百度推广需要多少钱
  • 做公司网站的企业/百度推广深圳分公司