ADS7952当配置为手动模式时,SPI通信时最后两帧的数据怎么配置,看的是图51,因为最后两帧数据是要接受的,是最后两个通道转换的数据。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Figure51是手动模式扫描通道4、7和9的示例。从Figure51可以看出,ADS7952具有两帧延迟,这意味着所选通道的输出数据将在初始帧后的输出两帧中。
比如要选择通道4 (CH4)的数据在第 N 个帧中采样,延迟两帧之后,与 CH4相对应的数据在第(N + 2)个帧中可用帧。CH7和CH9也是同样的例子。
CH7的数据在Frame (N+3)中可用(在FameN+1中对Ch7的数据进行选择,经过两个frame的延迟之后,在Frame(N+3)中数据可用)。
同样,CH9的数据在FrameN+2中选择,经过两个frame的延迟在N+4中数据可用。
哪第N+3帧应该是选中通道几的数字量,然后得到通道7的值,第N+4帧发送通道几的数字量得到通道9的数字量
我是这样理解的:
手动选择CH4,CH7以及CH9的SDI命令已经写完了。只是每个通道的数据在延迟两帧之后可用。
所以N+3和N+4帧不需要再发送选择通道的命令了。
就是可以帮我看行写的程序吗?
void ads7952_readsr(u8* data)
{
u16 byte[13]={0};
ads7952_cs=0;
spi1_readwritebyte(0x1800);
ads7952_cs=1;
delay_us(1);
ads7952_cs=0;
spi1_readwritebyte(0x1800);
ads7952_cs=1;
delay_us(1);
ads7952_cs=0;
spi1_readwritebyte(0x1900);
data[0]=byte[1]&0x0FFF;
ads7952_cs=1;
delay_us(1);
ads7952_cs=0;
spi1_readwritebyte(0x1980);
data[1]=byte[2]&0x0FFF;
ads7952_cs=1;
delay_us(1);
ads7952_cs=0;
spi1_readwritebyte(0x1A00);
data[2]=byte[3]&0x0FFF;
ads7952_cs=1;
delay_us(1);
}
这样写可以吗?