不是很牛逼 发表于 2025-6-5 18:10:26

AI8H读取BGV电压没有一个方式是对的是什么原因?CHIPID ROM RAM读出来都不是1.19?

AI8H1K17TSSOP20   读取BGV电压没有一个方式是对的是什么原因?CHIPIDROMRAM读出来都不是1.19??   RAM读出是0      ROM读出是65311    CHIPID 读出也是0

#include"ALLC-H.h"
u16 *BGV;
/*******************************************************************************************/
void AdcSetRate(void)                //500KSPS@35.000MHz   //10位最快500K   12位最快800K
{
      ADCCFG &= ~0x0f;                     //SPEED(0)
      ADCTIM = 0x33;                           //CSSETUP(0), CSHOLD(1), SMPDUTY(19)
    ADC_CONTR = 0x8f;            //使能ADC模块,并选择第15通道
    BGV = (u16 idata *)0xef;

}
/*******************************************************************************************/
u16 Get_ADC12bitResult(u8 xdata channel)//channel = 0~15
{
    ADC_RES = 0;
    ADC_RESL = 0;
    ADC_CONTR = (ADC_CONTR & 0xF0) | 0x40 | channel;//启动 AD 转换
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    while((ADC_CONTR & 0x20) == 0);   //wait for ADC finish
    ADC_CONTR &= ~0x20;   //清除ADC结束标志
    return(((u16)ADC_RES << 8) | ADC_RESL);
}
/*******************************************************************************************/
u16 Read_ADC_vref()
{
    u8xdata i;
    u16 xdata res;
    for(i=0;i<8;i++)
    {
      res+=Get_ADC12bitResult(15);
    }
         res>>=3;
         res = (int)(1024L * *BGV / res);   //(10位ADC算法)计算VREF管脚电压,即电池电压
//         res = (int)(4096L * BGV / res);      //(12位ADC算法)计算VREF管脚电压,即电池电压
                                                 //注意,此电压的单位为毫伏(mV)      
      return res;
}


u16 time,ADC_verf;
void Delay_printf_vref()
{

if(++time>=50000)
{    time=0;
       ADC_verf=Read_ADC_vref();
   printf("BGV=%u mV\n",BGV);   
   printf("ADC_vref=%u mV\n",ADC_verf);
}

}




ercircle 发表于 2025-6-5 19:09:18


使用开天斧板子和例程测的,VRef 2.5V,参考:
1942 / 4096 * 2.5 = 1.1853




不是很牛逼 发表于 2025-6-5 20:48:32

ercircle 发表于 2025-6-5 19:09
使用开天斧板子和例程测的,VRef 2.5V,参考:
1942 / 4096 * 2.5 = 1.1853

{:4_186:}规格书打印出来,估计有10斤纸,我得走到哪看到哪才行。{:4_184:}

_奶咖君_ 发表于 2025-6-7 16:30:16

不是很牛逼 发表于 2025-6-5 20:48
规格书打印出来,估计有10斤纸,我得走到哪看到哪才行。

目录没打印?

还有一件事,如果从CHIPID上看,得先看看用的单片机有没有这个寄存器。还要使用正确的访问流程。

如果从 RAM或者 ROM区里读,需要再下载程序的时候勾上 什么 在程序去的结束处添加重要测试参数,

神农鼎 发表于 2025-6-7 20:38:50

AI8H1K17-TSSOP20, 读取BGV电压









不是很牛逼 发表于 2025-6-10 13:59:38

谢谢哥 终于明白了{:OK:}

不是很牛逼 发表于 2025-6-10 14:00:19

_奶咖君_ 发表于 2025-6-7 16:30
目录没打印?

还有一件事,如果从CHIPID上看,得先看看用的单片机有没有这个寄存器。还要使用正确的访问 ...

{:baoquan:}明白 正在持续研究 感谢大佬

不是很牛逼 发表于 2025-6-10 14:00:40

神农鼎 发表于 2025-6-7 20:38
AI8H1K17-TSSOP20, 读取BGV电压

{:baoquan:}明白 正在持续研究 感谢大佬
页: [1]
查看完整版本: AI8H读取BGV电压没有一个方式是对的是什么原因?CHIPID ROM RAM读出来都不是1.19?