我在使用FPGA控制TI的tla2528的时候,不清楚应该如何读出采样的数据
如果是通过single read这种方式,原数据手册没有给出存储采样值的寄存器地址
如果是通过7bit地址位加读标志位,出来的数据也不对
有没有好兄弟控制过TI的adc,他所有的adc芯片的读出方式是一样的吗
我在使用FPGA控制TI的tla2528的时候,不清楚应该如何读出采样的数据
对于TI的TLA2528 ADC,数据读取分为两种模式:单次采样和循环采样。
单次采样模式下,ADC将会输出一组16位的采样结果,你可以通过SPI接口读出该值。具体读取方式如下:
(1)首先向ADC发送一个触发命令,即配置控制寄存器中的相应寄存器位。在默认模式下,控制寄存器的第11位(STRT)为0,表示不进行采样。将其设置为1,启动一次采样。
(2)等待采样完成。可以通过轮询状态寄存器的第4位(RDY)来判断是否采样完成。当RDY=1时,表示采样完成。
(3)读取采样结果。在单次采样模式下,数据存储在数据寄存器0x01和0x02中,使用7bit地址位加读标志位的方式进行读取即可获取16位的采样数据。
在循环采样模式下,ADC将会自动进行采样,并将采样结果输出,在FPGA中也可以通过SPI接口进行读取。以下是具体读取方式:
(1)在控制寄存器中配置相应寄存器位,开启连续采样模式。默认情况下,控制寄存器的第12位(CNV)为0,表示不进行连续采样。将其设置为1,启动连续采样。
(2)等待采样结果的更新。可以通过轮询状态寄存器的第4位(RDY)来判断是否采样完成。在循环采样模式下,ADC每完成一次采样,RDY会自动置位,表示采样结果已经更新。
(3)读取数据。在循环采样模式下,数据存储在数据寄存器0x01和0x02中,通过7bit地址位加读标志位的方式进行读取即可获取16位的采样数据。
需要注意的是,TI的不同型号的ADC,其读取方式可能会存在差异。因此,需要根据具体型号的数据手册进行读取。