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.

DAC53401: Communication DAC53401

Part Number: DAC53401

Hi TI's supporters

I'm developping device, use DAC53401 chip (schematic diagram is below)

I try to read DAC_STATUS register(address 0xD0) of DAC53401 but value always is 0xFFFF. (I2C line(SCL, SDA pins is only use for DAC53401).

Time chart I2C bus is show below . 

I want to confirm is my schematic diagram correct?? And there is a DAC53401 of sample code?? Can you send me DAC sample code??

Thanks,

  • Hi,

    Schematics looks ok to me. This device uses 7 bit addressing scheme and since A0 is GND, address should be 0x48.

    Can you please probe the voltage at node CAP ( pin 4) after power up? It should read between 1.55 to 1.6V

    Regards,

    AK

  • Hi, Akhilesh K

    Thank you your reponse.

    Address 0x48 is MSB of address byte and I addtion R/W bit. Then address byte is 0x90(for send) and 0x91(for read).

    I reviewed a hardware, CAP pin(pin 4) of DAC is 1.557V .

    Now, I still not read sequence of DAC. Can you help me??

    Thanks,

  • Hi,

    This means DAC is powered up correctly.

    Can you please share your code? Are you able to write into the device and get the desired output?

    Regards,

    AK

  • Hi Akhilesh K,

    I programming for a another microcontroller (not Ti's microcontroller).

    I begin work with DAC recently, I not writen data to DAC yet, but I think that when power is input, DAC is reset state, I read Status register( command address is 0xD0), result is 0x000C (DAC53401).

    But now, result always 0xFFFF.

    My code is attached below

    Thanks

    ,

    i2c_read.c
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //SDA_D is direction port: 0: output 1: input
    data = read_dac_i2c(0xD0); // Always 0xFFFF
    unsigned short read_dac_i2c(unsigned char cmd_byte)
    {
    unsigned short data;
    unsigned char address_byte;
    unsigned char timeout;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     

  • Hi,

    After power up, if you are reading 0xD0 as 0x000C its correct. That means your existing code is correct. Can you do power up gain, measure CAP voltage and read the same register again?  Also read 0xD1 as a debug.

    In both cases please probe SDA and SCL lines to see device acknowledges both i2c transactions.

    Regards

    AK