首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于A/D时钟频率的预分频问题

关于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) 对吗?
预分频系数的设置是不是要根据总线时钟频率允许范围进行设置?
什么芯片?
海纳百川  有容乃大
MC9S12DG128
这个公式是对的。但对于S12DG128来说,必须注意它的总线频率不应超过25MHz,而它的A/D模块时钟频率应该分到在500K~2M之间。
海纳百川  有容乃大
根据预分频设置表:
PRS4~PRS0 00001 对应总分频系数为4,但要求总线时钟频率允许范围2~8MHz
那我设置的总线频率为32MHz不在这个范围内,那总分频系数为4是不是有问题啊??
这样AD模块的时钟就会超出500K~2M的范围,AD无法正常工作。
海纳百川  有容乃大
我看到有的书是这样写的:
“可以通过将S12的CPU适当超频运行或降低A/D转换器精度等方式,提高A/D转换器的速度。通过实验我们发现,将S12内部总线频率提高到40~48MHz,CPU仍然可以工作。同时,还可以将A/D转换器时钟提高到12~14MHz,在损失一定A/D转换精度的情况下,将A/D转换时间缩短为1.5us左右”
那可以吗?
这样可能是可以工作,但整个系统运行都不可靠,随时可能出错。不建议这样做。
海纳百川  有容乃大
你说A/D时钟频率=(32/2)/(4+1) 是对的。但是我还是不明白我设置的PRS4~PRS0 00001 它要求总线时钟频率允许范围2~8MHz,而我的总线时钟频率32MHz不再2~8MHz内。32MHz对应的
是PRS4~PRS0 00001 即分频系数16。
数据是针对必须得到500K~2M的AD时钟,反向推出总线频率范围。分频系数本身与总线频率无关。
海纳百川  有容乃大
分频系数最小是不是2?
A/D时钟频率=(40/2)/(1+1)=10MHz 对吗?
以下是我自己写一小段程序():

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
这个转换速度似乎太慢了,在做摄像头扫描时根本不可能满足设计需要啊!!

希望有高手能把我解决这个疑惑。不胜感激

这个问题嘛,我实在还是没想好要写什么。以后再说啊。o(∩_∩)o...哈哈
疑惑一:
根据一份资料在对ATDCTL4进行设置应该满足以下条件:
0.5MHz= 也就是说将A/D时钟设置为6MHz是不合理的?必须在以上这个范围内??
这个问题嘛,我实在还是没想好要写什么。以后再说啊。o(∩_∩)o...哈哈
疑惑一:
根据一份资料在对ATDCTL4进行设置应该满足以下条件:
A/D时钟周期在0.5MHZ到2mhz
也就是说将A/D时钟设置为6MHz是不合理的?必须在以上这个范围内??
这个问题嘛,我实在还是没想好要写什么。以后再说啊。o(∩_∩)o...哈哈
返回列表