| 
				打卡等级:偶尔看看III打卡总天数:42最近打卡:2025-10-27 11:45:23   中级会员 
 
 
	积分474 
 | 
 
 发表于 2025-9-15 11:17:20
|
显示全部楼层 
| 你好,梁工,
 板子回来了,
 读取反馈电压
 
   
 
 根据公式套入数据
 
 第一步读取ADC15通道反馈的参考电压=2.518
 第二步,带入计算公式 4096*20*0.125(采样电阻)/2.518(读取的参考电压) = 4066.7196
 第三步,则校准系数为K=20/4066.7196=0.0049179
 第四步,则计算出的理论电流 I= ADC*0.0049179 如ADC值为1000,则I=1000*0.0047179=4.7179
 
 
 程序为
 
 //adc = ADC_convert(15);        //Bandgap
 //adc = ADC_convert(0);        //Bandgap
 VV = ADC_convert(0);        //Bandgap
 //v = (4096 * 1.19f) / adc;        //计算对应的VCC电压, 12位ADC, 2位小数(定点整数计算,扩大100倍)
 
 //printf("ADC15=%u,  AVREF=%.3fV\n", adc, v);//接收←ADC15=1950,  AVREF=2.500V
 //printf("ADC15=%u,  AVREF=%.1fmV\n", adc, v*1000);//接收←ADC15=1950,  AVREF=2499.6mV
 printf("ADC15=%u,  AVREF=%.4f\n", VV, VV*0.0049179);//
 
 
 得到的结果为
 
 
   
 
 现在有一个问题就是,在加载到12.6MA的时候ADC读取的数据就会突变,而4-20MA发生器给的电流是对的。
 
 
   
 
 能否请梁工帮忙看一下,
  
 
 | 
 |