[STM32L1] stm32l15 Vcore=1.2v时,AD值跳变

[复制链接]
 楼主| janhocn 发表于 2013-5-14 14:46 | 显示全部楼层 |阅读模式
请教一个问题:
芯片是stm32l151低功耗芯片,内核电压1.8V、1.5V、1.2V可以选,我AD的采样率是150Hz定时器定时采样,在我选择1.2V的时候,AD值就会间隔出现接近于0(多数是0)或者比正常值偏高的值,而且这种情况不是连续,几十秒的数据是ok的,接着几十秒的数据都充满跳变,不断反复。
但是,只有Vcore选择为1.5v/1.8v,就一直正常。
IJK 发表于 2013-5-14 15:00 | 显示全部楼层
芯片是stm32l151低功耗芯片,内核电压1.8V、1.5V、1.2V可以选。
选择1.2V的时候,AD值不正常。
我想有可能:MCU主频太高? 或者AD的时钟频率太高?
建议降低一些试试。
 楼主| janhocn 发表于 2013-5-14 15:24 | 显示全部楼层
已经考虑这个方面的可能,已经选用MSI为主频时钟(4Mhz),ADC的时钟也选择低速运行4Mhz,不知道还有哪里没有注意到?
IJK 发表于 2013-5-14 17:08 | 显示全部楼层
ADC的时钟也选择低速运行4Mhz,  我觉得可以试试更低的频率,比如1MHz
cjhk 发表于 2013-5-14 19:00 | 显示全部楼层
降低频率能实现吗  不知道这个方法 可靠不可靠
 楼主| janhocn 发表于 2013-5-14 20:26 | 显示全部楼层
IJK 发表于 2013-5-14 17:08
ADC的时钟也选择低速运行4Mhz,  我觉得可以试试更低的频率,比如1MHz

这个芯片的ADC时钟只能是16、8、4三个选择,datasheet里说,如果Vcore=1.2V,ADC的时钟就必须用4Mhz的频率,同时主频不能大于4Mhz。
IJK 发表于 2013-5-15 09:48 | 显示全部楼层
还要看你的Vdd 和 Vdda的电压是不是符合要求。
要注意,Vdda必须大于1.8V ADC才工作。
 楼主| janhocn 发表于 2013-5-15 11:13 | 显示全部楼层
IJK 发表于 2013-5-15 09:48
还要看你的Vdd 和 Vdda的电压是不是符合要求。
要注意,Vdda必须大于1.8V ADC才工作。 ...

VDD和VDDA都是用的3.0V。不过我刚刚调试发现,原来我的ADC的时钟没有修改成功,也就是说ADCclock还是16M。非常奇怪,不知道为什么ADC_CCR这个修改ADCprescaler的寄存器没办法修改。datasheet里面也没有说要先关闭什么才能改,而且我是先关了HSI了。
 楼主| janhocn 发表于 2013-5-15 11:20 | 显示全部楼层
cjhk 发表于 2013-5-14 19:00
降低频率能实现吗  不知道这个方法 可靠不可靠

试过减低主频,跳变越厉害,所以还是应该减低ADC的时钟,而不是主频。现在发觉我对ADC时钟分频的设置没有成功,ADC_CCR这个寄存器修改不起作用,不知道为什么设置不了。
 楼主| janhocn 发表于 2013-5-15 15:30 | 显示全部楼层
问题找到。原来还是ADC的时钟没有设好,而在设置AD的时钟分频之前,AD的时钟必须先打开,否则设置无法成功。谢谢楼上两位的提示。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部