香水城果然是很细心的高手, 程序AD初始化部分是我从网上COPY过来的,其它部分是KEIL的例程, MAIN中是我写的,现在很多程序员都象生产线上的熟练工人了,到处COPY代码,我也不例外。
第3点,(PCLK2 divided by 2)确实是个错误, 我只核对了KEIL里对时钟的配置,而忽略了这里,经过更正后情况大有好转,就是12MHz + 1.5周期, 电位器调到1.65V时波动比原来小很多,2033-2055, 然后在PA1上并一个电容基本达到要求,我不明白为什么在其它电压点不用并电容也很好; 因为并上电容对信号带宽有影响,做高速采样可能不太好.
第4点, 最开始我也看到了,也改过,没发现有什么问题,就保留原样.
第5点,我需要用的最高的采样速度,所以只能设成1.5周期了, 如果降低采样可能更好.
经过与大家的共同探讨和测试,现在可以得出一些结论如下,不对的话请批评指正:
1. ADC脚是有一定的内阻(或者说负载),可以参见前面香水城贴的内部图, 采样率越高,内阻越小,所以最好加运放做驱动比较好。比如当用ADC对NTC做温度采样就要注意了,简单的方法是用电阻分压直接送到ADC,会受到ADC内阻的影响。
2. KEIL的MCBSTM32板始终干扰很大,用的IC是64PIN封装103RBT6,VDDA在IC内部接到VDD,不能确定是否是这个问题引起,还是板子不好。
3. 貌似ADC的时钟可以超过14MHz, 只是精度越来越差。
4. 网络上的东西不能拿来就用,水平参差不齐,还是要经过自己消化才行。
另外我还有一个问题,就是多通道扫描DMA转输,通道错位,不过目前我暂时用不到.
最后希望坛友们都用务实的态度来进行交流,共同进步.
再次感谢香水城! |