关于ADS1146/47/48的控制方式的问题
读了数据手册后,有如下的困惑:(以ADS1146为例)
1、可以通过产生一个START的脉冲来启动一次AD转换,或者将START持续拉高进行连续的AD转换,这两种操作方式和通过SPI写入控制命令RDATA和RDATAC有何区别?两者是否是独立的?通过SPI写控制命令的时候,是不是就和START的高低无关了?
2.、ADS1146的外接时钟,以4.096MHZ为例,这个时钟频率是用来决定采样频率的么?那数据的传输速率又由谁决定呢?比如2kSPS和5SPS的传输速率下,对SCLK的速率是否有要求?
3、如果通过START脉冲或者RDATA单次转换的方式控制ADC,上述数据传输速率是否还有意义?
谢谢!
1. START是启动转换,RDATA和RDATAC是SPI读数据的指令,没从手册上发现这两者有什么关联。不过对于正常工作的ADC,应该是START从低跳高,而芯片default的读取方式是RDATAC(手册50页右侧)。
2. 根据手册,有两个采样时钟:内部时钟和外部时钟。如果CLK引脚接地,则是内部时钟模式;否则就是外部时钟模式。这个时钟是用来决定采样频率的。数据传输速率在手册第三页Data rate可以找到,是几个分立的值。至于数据的传输,是在SCLK下降沿读/写,可能一次转换的周期很长,但是实际SPI把转换数据读出来的时间却很短,这个和传输速率没冲突。SCLK的速率要求详见手册12页表格,最小500ns,最大64 Tconversion,这个Tconversion,应该指采样时钟的周期,不管采样时钟是内部还是外部产生。
3. RDATA只是读一次数据,读的是最近一次的转换数据,这个命令不能启动新的转换。数据传输速率,应该还是手册第三页决定的那几个分立值。
非常感谢您的解答!
还有一个地方不太明白,按照手册27页的时序图,一个START脉冲后,当数据转换完成时,DRDY产生低电平,这时候直接通过发送16个SCLK信号就可以从DOUT口读取数据了吧? 但是如果这时候同时通过前8个SCLK发送一个RDATA之后会怎样呢?
发送SCLK就可以读DOUT了啊,默认不是RDATAC吗?如果用RDATA读,读的是最近一次的转换结果,如果你只用START启动了一次转换,那RDATA读出来的结果,应该和16个SCLK读出来的一样啊。你可以在板子上做个实验。