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.

TFP410 I2C Registers Return Zeros

Other Parts Discussed in Thread: TFP410

The TFP410EP on my card acks i2c address write cycles and read cycles, but returns zero data for all registers read. No previous I2C writes have occurred. The device has been released from reset. When in reset the device does not ack. Bus freq is 100kHz. There are no other devices on the bus at 0x70. ~PD is tied to GND.

Is it necessary to implement repeated start between the write address cycle and the read data cycle?

The attached waveform shows a read of one byte per read cycle. I get the same results when reading two bytes per read cycle.

I've seen postings of others' with similar problems - but no posted solutions.

Any ideas?

  • Hello Bill,

    When you read from the TFP410 you have to use the addresses 0x71, 0x73, 0x75, etc.

    The image shows that you are trying to read from address 0x70.

     

    Regards.

  • Although the analyzer labels shows 70 it's really 71 - the analyzer drops the bottom bit but puts the R label to indicate read. Stepping through the SDA waveform actually shows address 71. It's probably impossible to see on the waveforms attached here.

     

    A new development - I enabled repeatedStart termination in the xilinx driver I'm using and the behavior has indeed changed. I see the correct 0x4C vendor id at subaddress 0x00, but the clock 'stops' mid-word. I understand that I2c provides for a mechanism referred to as clock stretching which allows the slave to hold the clock low. In this case the clock goes high and stays there for 21mS ! Then it starts up again and the rest of the '4C' read completes. After that though - everything seems to be in the weeds.