有两个问题:
ADC的粗调必须是PA5(AIN1)悬空吗?还是其他AIN管脚悬空也可以?
我用电阻分压的方式给AIN脚供电,我输入电压变化的时候管脚的电压好像没有变化,这个好奇怪啊。我已经将输入管脚设置为浮空输入,电阻我试了两个1M的,也试了两个6.8M的,结果是一样的
有两个问题:
ADC的粗调必须是PA5(AIN1)悬空吗?还是其他AIN管脚悬空也可以?
我用电阻分压的方式给AIN脚供电,我输入电压变化的时候管脚的电压好像没有变化,这个好奇怪啊。我已经将输入管脚设置为浮空输入,电阻我试了两个1M的,也试了两个6.8M的,结果是一样的
1,在ch578/579上,ADC使用channel 1 做校准, 当进行校准时候内部会把该通道的连到相应的参考源上,这时该channel对应的的io不能受到外部电平影响,如果能保证校准时候该IO呈高阻态,那也可以使用该IO.
2, ch578/579 只支持使用channel 5, 其他ch571/573/58x 系列的自持其他channel
3,分压后,接到芯片引脚的实际电压是多少?
注意,AIN的输入电压不能高于芯片的供电电压。
谢谢您的回答!
1.我的芯片是CH579,因为PA5被我用作串口3的TX了。我查了粗调库函数,里面默认是用ADC_ChannelCfg( 1 ),这个如果修改也不可以么?
2.我用两个6.8M的电阻分压,输入电压是3V~5V,无论输入电压怎么变化,PA6管脚的电压始终是3V左右,我也是第一次碰见这么奇怪的事情
1, 在校准引脚被占用情况下, 要求不高的话,或者有外部基准,可以不用进行校准,
或者可以把校准值打印出来看看:
官网的例程中,直接打印这个值: RoughCalib_Value = ADC_DataCalib_Rough();
这个值后面采样时候会影响结果: abcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value
可以先用两个1M的分压试试看,
另外:
在PGA=0db时候(默认)AIN引脚的最大输入电压是2倍的内核电压,其中内核电压默认为1.05v,所以最大电压默认是2.1v
如果高于这个电压,需要调整PGA:
引用:
CH57x,ch58x 系列的芯片内部的ADC的实现方式是逐次比较型的(SAADC),其半量程参考电压是1.05v.默认的电压测量范围是0-2.1v
芯片ADC的前级提供了一个PGA,可以通过调整其放大倍数,来实现不同的量程.
PGA增益采样值到电压换算理论可测电压上限理论可测电压范围(Vref=1.05V)建议实际测量电压范围-12dB(1/4 倍)(ADC/512-3)*Vref5*Vref-0.2V ~ VIO33+0.2V2.9V ~ VIO33-6dB(1/2 倍)(ADC/1024-1)*Vref3*Vref-0.2V ~ 3.15V1.9V ~ 3V0db(1倍)(ADC/2048)*Vref2*Vref0V ~ 2.1V0V ~ 2V6db(2倍)(ADC/4096+0.5)*Vref1.5*Vref0.525V ~ 1.575V0.6V ~ 1.5V
兄弟,你的PA6可控吗?
我用PA6做AD采集通道值不变(实际在变),然后我把外围电路拆掉把PA6作为一个普通IO口测试发现不能输出高电平
PA6是可控的,此IO有串口2功能,PWM4通道功能,ADC10通道功能,看看是否是使用了其中一个导致的。