1.简单介绍
AD5160是一个数字电位器,可以通过可变电阻来使用户手动配置电压,简单来说就是一个滑动变阻器。
2.现象描述
当我写好驱动代码后,进行测试,我在程序中配置的是5.0V,在我第一次下载程序后,可以正常配置,可以输出5.14V,但是当我将开发板电源断开后,再次上电,AD5160就不能输出5.14V,而是6.22V,后来经过排查,发现是目标输出电压并没有配置进去。
3.解决方法
当计算好需要配置的数值之后,加上一秒延时,再进行写寄存器操作,如下图:
float PwerVal = 5.0;
float Res_val = 0.0;
Res_val = (PwrVal/1.22)-1.0;
Res_val = (10000.0/Res_val);
Res_val = (Res_val/19.5);
Delayms(1000); //延时1s
ad5160write((uint8)(Res_val+1));
最后再次进行测试,问题解决。