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.

LAUNCHXL-F28069M: Does probing work for I2C?

Part Number: LAUNCHXL-F28069M

Hi,

I have I2C communication setup between two LAUNCHXL-F28069M boards and it works fine. When I use NVIDIA Jetson Nano board as master for I2C communication, the communication does not work. The "i2cdetect" command in Linux scans the bus to find the connected modules and their address. When I run this command, the Jetson (master) scans the bus by sending commands at different address, in this case the address is 0x03. Here the launchpad is not connected: 

 

When I connect the launchpad (slave), this is what I get:

apart from voltage level that jumps tto 3.3v, the ACK bit is set (by slave?) and since the Read/Write bit is also set (by master?), the launchpad(?) pulls down the bus but it does not send any data. 

I'm not sure if my assumptions are correct, but I think launchpad should respond to this request from Jetson and that's the issue. 

  • Hi Kash,

    In your last two images where the LP is connected, the F2806x slave device is ACKing the address properly, i.e. 9th bit is a 0 (pulled down by slave). The W/R bit is a 1, so the master is meant to read data from the slave.

    Does the master provide any SCL clock pulses to shift data in sometime after what's shown in your images? If not, then it seems the slave is either holding the SCL line low or the master device is not providing additional clocks for data. I'd suggest further debugging your f2806x slave code further, do you switch the device to slave TX and have data to send back to the master placed in the TX buffer?

    Best,

    Kevin

  • Kevin, 

    I'm glad my understanding was right. So I'd assume the slave (F28069) pulls down the bus to send data but it won't. 

    I wrote software in Simulink and I do not setup the slave-tx mode, I guess the slave-tx mode would automatically be activated when Read/Write bit is set. Is this right?

    Based on the below pictures, the issue is the slave goes into slave-tx mode (because it holds down the SCL) but it does not write data to I2CDXR.

    The questions are:

    1. How to write data to I2CDXR register in Simulink. I'll ask that question from Mathworks.

    2. What data do I need to put there? Any value is fine? 

    Thanks,

  • Kevin,

    When the user manual says to release SCL in slave-TX mode, write data to I2CDXR, what data should I write to, by knowing the fact it's in probing mode? 

  • Hi Kash,

    I2CDXR should be filled with whatever data bytes you wish to transmit back to the master. If in FIFO mode it will act as the 4 byte FIFO, otherwise you can only byte 1 byte at a time.

    Best,

    Kevin

  • Kevin,

    I do not know what message the master is looking for in probing mode. 

    In addition, I have not setup anything for TX. So what I'm going to do is send an arbitrary message when the master probes the slave.

  • Hi Kash,

    Yes, that's OK. For test purposes you can fill the I2CDXR register of the slave with dummy data.

    Let me know if you're able to get the slave TX working OK with that.

    Best,

    Kevin