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外接ADS8364采样

Other Parts Discussed in Thread: ADS8364

2812通过XINTF连接ADS8364。我不明白ADS8364采样后的结果放到哪里了?2812到哪里读取数据?

2812内部的AD,采样结果会放到对应的result register中,那么ADS8364是怎样的呢?

  • power,

    ADS8364内部有FIFO,然后从下图我认为读结果是通过地址读的,即000 的地址是读A0的结果,依次类推。

    建议你可以看一下ADS8364的datasheet了解一下详细的信息。

    如果对ADS8364还有更深入的问题,推荐你到数据转换器 区域提问,http://www.deyisupport.com/question_answer/analog/data_converters/f/58.aspx

    Eric

  • 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论坛来试试。