标题:
关于A/D时钟频率的预分频问题
[打印本页]
作者:
vincent85
时间:
2008-3-10 20:51
标题:
关于A/D时钟频率的预分频问题
如果设置总线频率为32MHz,A/D寄存器设置如下:
ATD0CTL2=0xC0;
ATD0CTL3=0x08;
ATD0CTL4=0x81;
ATD0CTL5=0xA0;
ATD0DIEN=0x00;
根据ATDclock=(BusClock/2)/(PRS+1),那么A/D时钟频率=(32/2)/(4+1) 对吗?
预分频系数的设置是不是要根据总线时钟频率允许范围进行设置?
作者:
strongchen
时间:
2008-3-11 09:34
什么芯片?
作者:
vincent85
时间:
2008-3-11 09:52
MC9S12DG128
作者:
strongchen
时间:
2008-3-11 10:41
这个公式是对的。但对于S12DG128来说,必须注意它的总线频率不应超过25MHz,而它的A/D模块时钟频率应该分到在500K~2M之间。
作者:
vincent85
时间:
2008-3-11 12:27
根据预分频设置表:
PRS4~PRS0 00001 对应总分频系数为4,但要求总线时钟频率允许范围2~8MHz
那我设置的总线频率为32MHz不在这个范围内,那总分频系数为4是不是有问题啊??
作者:
strongchen
时间:
2008-3-11 13:54
这样AD模块的时钟就会超出500K~2M的范围,AD无法正常工作。
作者:
vincent85
时间:
2008-3-11 17:49
我看到有的书是这样写的:
“可以通过将S12的CPU适当超频运行或降低A/D转换器精度等方式,提高A/D转换器的速度。通过实验我们发现,将S12内部总线频率提高到40~48MHz,CPU仍然可以工作。同时,还可以将A/D转换器时钟提高到12~14MHz,在损失一定A/D转换精度的情况下,将A/D转换时间缩短为1.5us左右”
那可以吗?
作者:
strongchen
时间:
2008-3-12 10:09
这样可能是可以工作,但整个系统运行都不可靠,随时可能出错。不建议这样做。
作者:
vincent85
时间:
2008-3-12 14:43
你说A/D时钟频率=(32/2)/(4+1) 是对的。但是我还是不明白我设置的PRS4~PRS0 00001 它要求总线时钟频率允许范围2~8MHz,而我的总线时钟频率32MHz不再2~8MHz内。32MHz对应的
是PRS4~PRS0 00001 即分频系数16。
作者:
strongchen
时间:
2008-3-12 15:25
数据是针对必须得到500K~2M的AD时钟,反向推出总线频率范围。分频系数本身与总线频率无关。
作者:
vincent85
时间:
2008-3-12 17:24
分频系数最小是不是2?
A/D时钟频率=(40/2)/(1+1)=10MHz 对吗?
作者:
mooyeep
时间:
2008-3-12 19:06
以下是我自己写一小段程序():
void PLL_Init(void)//锁相环初始化
{
SYNR=2;
REFDV=1;
while(CRGFLG_LOCK==0);//等待时钟频率稳定
CLKSEL=0X80; //PLL使能
}
//锁相环频率=2*晶振频率*(SYNR+1)/(REFDV+1)
//该处就等于4倍晶振频率
//总线频率 Busclock=PLL_CLOCK/2=24MHz
void AD_Init(void)//AD模块初始化
{
ATD0CTL2=0xC0;//AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断禁止;
ATD0CTL3=0x80;// 每个序列1次转换, No FIFO, Freeze模式下继续转换
ATD0CTL4=0x81;// 8位精度, 2个时钟,
//ATDClock=[BusClock*0.5]/[PRS+1] ; PRS=1, divider=4
//采样时间为2*ATDclock
//-->>ATDclock=busclock/4=6MHz 转换时间=2+2+8=12ATDclock=2us
ATD0CTL5=0xA0;//右对齐无符号,连续转换,单通道采样,通道0
ATD0DIEN=0x00;//禁止数字输入
}
说明及疑惑:
在这个程序段里,虽然把总线时间设置在了24MHz
从理论上满足了总线25MHz的稳定时钟了
A/D预分频使得A/D时钟源为6MHz
疑惑一:
根据一份资料在对ATDCTL4进行设置应该满足以下条件:
0.5MHz=
也就是说将A/D时钟设置为6MHz是不合理的?必须在以上这个范围内??
疑惑二:
根据公式
转换时间=(intial time+programmed sample time+resolutiom period)
上面的程序中
转换时间=2+2+8=12个ATDclock=2us
如果说6MHz的AD时钟是不合理,必须在0.5MHz到2MHz之间
那么也就是说八位精度的A/D转换 采样时间2个A/D时钟周期
MC9SDG128B的最快最快也只能是 12/2MHz=6us
这个转换速度似乎太慢了,在做摄像头扫描时根本不可能满足设计需要啊!!
希望有高手能把我解决这个疑惑。不胜感激
作者:
mooyeep
时间:
2008-3-12 19:07
疑惑一:
根据一份资料在对ATDCTL4进行设置应该满足以下条件:
0.5MHz=
也就是说将A/D时钟设置为6MHz是不合理的?必须在以上这个范围内??
作者:
mooyeep
时间:
2008-3-12 19:08
疑惑一:
根据一份资料在对ATDCTL4进行设置应该满足以下条件:
A/D时钟周期在0.5MHZ到2mhz
也就是说将A/D时钟设置为6MHz是不合理的?必须在以上这个范围内??
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0