打印

系统用内部时钟+-2%的精度模拟时序行不?

[复制链接]
1919|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
系统时钟用内部时钟+-2%的精度,单片机模拟AD芯片的时序,AD可否正常工作,是否必须要用外部时钟?AD采样总时间是2个US,前后台时间怎样分配比较好呢?我想:前台用16个US定时中断,用来实时采集AD,因为要模拟时序花掉12US,后台只4个US,数据处理时间又怕不够。如果用20个US定时中断去实时采集AD,实时性又怕不好。for (i=0;i<10;i++)
     {
        clock=1;clock=0;
}运行完后,我看了示波器,一个CLOCK,占空比大概是9%,为低的时间为500NS,为高的时间50NS,如果让占空比达到50%。周期要花1US,12个clock就12US。

不知可有好的填充10个clock方法?

相关帖子

沙发
lyjian| | 2010-12-1 21:42 | 只看该作者
AD不需要精确的时序,采样时间够长就行
怕时间不够就按内部时钟最高时写呗

使用特权

评论回复
板凳
liuoulyy|  楼主 | 2010-12-1 22:01 | 只看该作者
已是49M的时钟了。前台用20个US定时中断去实时采集AD,模拟时序要花12US,留8US给后台,我这样的思路没什么问题吧?模拟时序的占空比是否就要50%呢?太花时间了。

使用特权

评论回复
地板
ayb_ice| | 2010-12-2 08:32 | 只看该作者
那些一般是最小值,大点没有关系,不能小

使用特权

评论回复
5
liuoulyy|  楼主 | 2010-12-2 19:01 | 只看该作者
在片选信号CS的下降沿后,每当来一个SCLK的下降沿,读DOUTA的输出结果。问题是SCLK一个下降宽度只300NS时间,读结果所用的时间超过300NS怎么办呢?

旋转 20101202029.jpg (339.83 KB )

旋转 20101202029.jpg

使用特权

评论回复
6
liuoulyy|  楼主 | 2010-12-2 19:02 | 只看该作者
时序图

20101202034.jpg (679.77 KB )

20101202034.jpg

使用特权

评论回复
7
liuoulyy|  楼主 | 2010-12-2 19:11 | 只看该作者
原本用单片机输出固定2M时钟送AD芯片,用启动转换CNVST和片选CS来控制时序。可是AD芯片的输出结果DoutA又不知怎样处理,输出的结果DoutA是在时钟SCLK的下降沿读取(共12个)。

20101202024.jpg (560.39 KB )

20101202024.jpg

使用特权

评论回复
8
liuoulyy|  楼主 | 2010-12-2 19:12 | 只看该作者
用软件怎样读取AD芯片的换转结果呢

使用特权

评论回复
9
liuoulyy|  楼主 | 2010-12-2 19:15 | 只看该作者
//等待AD转换

_nop_();_nop_();_nop_();

for (i=0;i<4;i++) //取D8-D11
{
D_OUT=1;
CLOCK=1;
ah<<=1;
if (D_OUT) ah|=0x01;
CLOCK=0;
}

for (i=0;i<8;i++) //取D7--D0
{
D_OUT=1;
CLOCK=1;
al<<=1;
if (D_OUT) al|=0x01;
CLOCK=0;

使用特权

评论回复
10
liuoulyy|  楼主 | 2010-12-2 19:17 | 只看该作者
以上是模拟时序来读AD结果,这样可以吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

134

主题

472

帖子

1

粉丝