2812通过XINTF连接ADS8364。我不明白ADS8364采样后的结果放到哪里了?2812到哪里读取数据?
2812内部的AD,采样结果会放到对应的result register中,那么ADS8364是怎样的呢?
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.
2812通过XINTF连接ADS8364。我不明白ADS8364采样后的结果放到哪里了?2812到哪里读取数据?
2812内部的AD,采样结果会放到对应的result register中,那么ADS8364是怎样的呢?
Eric,
谢谢。
我已经看过了ADS8364的datasheet。上图的A0,A1,A2并不是指的实际的地址,而是为了确定怎样读取结果数据。即000,读取的CHA0;110,以循环模式读取数据。但是并没有指明在哪个地址里去数据。
我这里有一段代码,硬件条件是ADS8364连到了2812的XINTF2区,代码如下:
#define CHA0 0x080022
#define CHA1 0x080025
#define CHB0 0x080029
#define CHB1 0x08002C
#define CHC0 0x080030
#define CHC1 0x080034
#define CYCLE 0x080038
#define FIFO 0x08003C
int *ptrCHA0;
int *ptrCHA1;
int *ptrCHB0;
int *ptrCHB1;
int *ptrCHC0;
int *ptrCHC1;
以上是ADS8364在头文件中的定义。下面是main函数内的代码:
ptrCHA0 = (int *)CHA0; (可以看出0x080022就是CHA0的地址)
ptrCHA1 = (int *)CHA1;
ptrCHB0 = (int *)CHB0;
ptrCHB1 = (int *)CHB1;
ptrCHC0 = (int *)CHC0;
ptrCHC1 = (int *)CHC1;
以下是在中断里读取采样数据的代码
CHA0_Data[idx] = *ptrCHA0;
。。。
CHC1_Data[idx] = *ptrCHC1;
OK,我不明白的是因为我们操作2812的时候,程序中所定义的寄存器在2812片内是实实在在存在的,我们访问result register,就是访问了片内对应的存储空间。但是对于ADS8364,只是在程序里定义了一个地址(地址符合XINTF2 的范围),2812访问这个地址的时候,ADS8364的采样数据就在这个地址里?
问题描述的可能不清楚,但是这个问题也确实不太好说。我在数据转换器论坛也发了帖子了,巧的是他说让我来C2000论坛来试试。