AD7091R-8

Hello
I'm trying to set up communication with AD7091R-8. In setup I send following SPI command: 0X0CFF, 0X08FF, 0XFFFF, 0XFFFF, 0X00FF. Then I periodically send 0X0020 and I'm trying to read channel 5. I'd like to read one channeland them sequential readings. I inserted pictures from the logic analyzer into the attachment. I guess I'm getting bad data. Could you help me.

Thank you

Lukáš Mistr

attachments.zip
Parents
  • Hi Jonathan,


    it is my mistake 0x0800. Now i sending periodically this data:

    //prepare reading

    0x0DFF //set channel register
    0x01FF //set channel sequencer
    0x0000 // of the reasons for the latency

    //read

    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert

    When I use this, all works fine. The question is why I need to use the 0x0DFF command instead of 0x0CFF and 0x01FF instead of 0x00FF. If I use only 0x0CFF and 0x00FF I do not read the last channel. The second question is about the pulse width of CONVST. If it decrease from the current 20 microseconds so the result is not correct.


    Regards,
    Mistr

Reply
  • Hi Jonathan,


    it is my mistake 0x0800. Now i sending periodically this data:

    //prepare reading

    0x0DFF //set channel register
    0x01FF //set channel sequencer
    0x0000 // of the reasons for the latency

    //read

    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert
    CONVST //pulse width 20 Microseconds
    0x0000 // read data from convert

    When I use this, all works fine. The question is why I need to use the 0x0DFF command instead of 0x0CFF and 0x01FF instead of 0x00FF. If I use only 0x0CFF and 0x00FF I do not read the last channel. The second question is about the pulse width of CONVST. If it decrease from the current 20 microseconds so the result is not correct.


    Regards,
    Mistr

Children
No Data