使用ADC测量PIC自己的VDD-in电压


8
  • 处理器:PIC18F66K22
  • 编译器:C18(XC8也可以)

我刚刚编写(并成功测试)代码以测量AN4模拟引脚上的电压。

现在,我想尝试其他方法,不确定在理论上是否可行。

我的测试板上有一个PIC处理器,其VDD,AVVD连接到电源(范围从0(如果电池为空/已断开)到4,2(充满电)。

我可以使用ADC测量电路板的VDD(-in)吗?

为什么不?:

  • 它不是ANx引脚,不确定如何使ADC测量它吗?(渠道?)
  • 如果VDD(-in)上的电压下降,我的ADC参考电压也会下降吗?(因此,当我的PIC仅获得3.3V电压时,ADC仍会说它是100%(作为芯片上的最大电压,参考电压也是3.3V)。

你为什么/问什么?

  • 我可以测量通道30(VDDCORE)吗?
  • 我可以将Vref设置为Vdd并使用A / D转换器测量精密基准电压吗?(不确定如何)
  • 或者我可以添加一条从VDD-in到ANx引脚的导线?

  • 当VDD-in约为3,4V时,内部VREF +(4.096V)会保持4 + V吗?有某种转化器可以做到吗?

  • 内部VREF +(4.096V)低于电池的最高电压(4.2V),这是否意味着我会损坏ADC?或仅当电池充满时,结果将达到最大值。(4,096V中的4,2V)

请注意,我对电子学的知识是“低”的。我在学习过程中已经了解了更多有关软件部分的方法,但是我想了解更多有关(嵌入式)电子产品的信息,因为它是嵌入式工程中的关键部分。(可悲的是我的学校怎么没看到这个。)

Answers:


14

该PIC具有内部1.024V带隙基准,可以通过将“通道选择”位设置为11111进行选择。
因此,如果将ADC模块的基准设置为Vdd,然后告诉它测量1.024V的反向误差,则可以推断出实际的Vdd是。

通常情况下,您可以使用以下方法计算出经过A2D处理的引脚上的电压:
Vin =(ADCval / ADCrange)* Vref

但是在这种情况下,您需要知道其Vin(1.024v)并想要求解Vref(您的Vdd),因此:
Vref =(Vin * ADCrange)/ ADCval
或更具体地针对您的情况:
Vdd =(1.024 * 4096) / ADCval


我将尝试一下!((明天),如果可行,将其作为答案。)另一位同事指出,它具有“带隙参考”。感谢您对“比例”的计算有深刻的了解,不知道!
保罗

完善!感谢理论和具体细节的结合,这一问题在几分钟之内就得到了解决,思考和测试花费了更多的时间作为实际的开发工作(在回答之后)。
Paul
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.