社区导航

 

搜索
查看: 229|回复: 5

[求助] 关于AD芯片ADS1251的时序问题以及采集问题

[复制链接]

7

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2019-11-17 16:58 | 显示全部楼层 |阅读模式
5芯币

ADS1251的时序以及各个部分所对应的时间如下图所示,请问我写的读取代码是否有问题?

double GET_DOUT(void)
{
	unsigned int temp = 0x00000000;
	int i;
	
	SCLK(0);
	CLK(0);
	
	while(1)
	{
		CLK_Toggle();
		if(DOUT() == 1)
			break;
	}
	for(i=0;i<23;i++)	CLK_Toggle();
	CLK_Toggle();
	if(DOUT() != 0)
		return 1;
	for(i=0;i<5;i++)	CLK_Toggle();
	CLK_Toggle();
	if(DOUT() == 0)
		return 1;
	for(i=0;i<5;i++)	CLK_Toggle();
	
	CLK_Toggle();
	SCLK(1);
	if(DOUT())	temp |= 1;
	CLK_Toggle();
	SCLK(0);
	CLK_Toggle();
	CLK_Toggle();
	for(i=0;i<23;i++)
	{
		temp <<= 1;
		SCLK(1);
		if(DOUT())	temp |= 1;
		CLK_Toggle();
		CLK_Toggle();
		SCLK(0);
		CLK_Toggle();
		CLK_Toggle();
	}
	SCLK(1);
	CLK_Toggle();
	CLK_Toggle();
	SCLK(0);
	CLK_Toggle();
	CLK_Toggle();
	for(i=0;i<248;i++)	CLK_Toggle();
	
	Sample_Single = (double)temp;
	
	return 0;
}

DATASHEET上面说数据读取频率为f(CLK)/384,采样频率为f(CLK)/6,读取频率远远小于采样频率,那么不会讲寄存器写爆导致读到的数据存在一个时延吗?但是实际读取之中好像并没有出现明显的时延,这又是为什么?

 

QQ截图20191117165345.png
QQ截图20191117165356.png
ADS1251采集频率.png


回复

使用道具 举报

6667

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-11-17 18:33 | 显示全部楼层

你的问题描述不是很清楚

说下我的理解如果不是你的要的答案再修改你的提问

ADS1251最大支持20.833K的采样率,对应的CLK时钟是8MHZ这是最大值

根据FIGURE 12时序,当你给CLK施加一个时钟时,DOUT首先输出DRDY信号,DRDY信号占用36个CLK

当DRDY的‘高低高‘信号输出完毕后你就可以读取转换数据了,你需要在接下来的348个CLK周期内把数据读完,这个过程叫DOUT,DRDY+DOUT一共为384个周期就是一个转换周期,所以8MZH(CLK)/384=20.833KSPS最大采样率就是这么来的。

 

虾扯蛋


回复

使用道具 举报

7

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

 楼主| 发表于 2019-11-17 19:25 | 显示全部楼层
littleshrimp 发表于 2019-11-17 18:33 你的问题描述不是很清楚 说下我的理解如果不是你的要的答案再修改你的提问 ADS1251最大支持20.833K的 ...

我的意思是,在芯片读取的时间之中(DRDY之后DOUT之中)是否依然在采样,如果是的话,那么下次一读取到的数据不会有延迟吗(下一次产生DRDY的数据是否在前一次DOUT期间进行采样的)?

点评

数据转换是依赖CLK时钟,你只要保证CLK是连续的就不存在延迟  详情 回复 发表于 2019-11-17 22:22
DRDY的意思是数据准备好,当前DOUT读取的是上一次的转换结果,当前结果应该正在转换中,转换好以后再输出DRDY信号供处理器读取  详情 回复 发表于 2019-11-17 22:20


回复

使用道具 举报

6667

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-11-17 22:20 来自手机 | 显示全部楼层
Mengmei 发表于 2019-11-17 19:25 我的意思是,在芯片读取的时间之中(DRDY之后DOUT之中)是否依然在采样,如果是的话,那么下次一读取到的 ...
DRDY的意思是数据准备好,当前DOUT读取的是上一次的转换结果,当前结果应该正在转换中,转换好以后再输出DRDY信号供处理器读取


回复

使用道具 举报

6667

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-11-17 22:22 来自手机 | 显示全部楼层
Mengmei 发表于 2019-11-17 19:25 我的意思是,在芯片读取的时间之中(DRDY之后DOUT之中)是否依然在采样,如果是的话,那么下次一读取到的 ...
数据转换是依赖CLK时钟,你只要保证CLK是连续的就不存在延迟


回复

使用道具 举报

7

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

 楼主| 发表于 2019-11-19 20:34 | 显示全部楼层
littleshrimp 发表于 2019-11-17 22:22 数据转换是依赖CLK时钟,你只要保证CLK是连续的就不存在延迟

了解,感谢大佬



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /8 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-12-8 13:50 , Processed in 0.186015 second(s), 16 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表