LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

I2C Write/Read Error

Error -301742 occurred at NI-845x I2C Write Read.vi

"Possible reason(s):

NI-845x:  The slave did not acknowledge an address+direction byte transmitted by the I2C master. Reasons include the incorrect address set in the I2C configuration or the incorrect use of the 7-bit address. When entering an address to access a 7-bit device, do not include the direction bit. The NI-845x Basic I2C API internally sets the direction bit to the correct value, depending on the function (write or read). If your datasheet specfies the 7-bit device address as a byte, discard the direction bit (bit 0) and right-shift the byte value by one to create the 7-bit address."

 

We have connected the pull up resistors on the SDA and SCL line.

 

The error seems to be strange in our case,

We have two setup

1. Using a push button to power the device and wires through the pull up resistor.

2. We are trying to communicate using a NI 2569 for the SDA and SLC and the Power supply to the device.

 

We do not observe the error in case 1,however, in case 2 we do observe,attached are the waveform pics for the same.

 

Noted that we have the clock signal rise delay in case 2, is this because of the relay 2569?

 

Any help will be highly appreciated.

 

Regards,

Naru 

Download All
0 Kudos
Message 1 of 4
(6,683 Views)
0 Kudos
Message 2 of 4
(6,662 Views)
I don't quite understand your setup, and I'm not sure what I'm looking at with the figures you posted. What does the 2569 have to do with the 8451? You also said

1. Using a push button to power the device and wires through the pull up resistor.


I have no idea what this means.

 

It's hard to tell from the pictures, but for the Case 1 figure, it appears that you are generating a correct start condition. It's also indicating that are sending a read transaction. You didn't indicate what device you're talking to, so we can't say for sure if this is correct. 

 

In the second case it also appears that you generating a correct start condition. The slow rise times that you are seeing in the clock is probably due to extra capacitance on the bus, or weak pullups, or both. This transaction appears to be a write transaction, but with no data.

 

At this point, without knowing what device you're talking to, a better explanation of your setup, and the code itself, I'm not sure how much help we can be. 

0 Kudos
Message 3 of 4
(6,645 Views)

Hi,

 

Thanks for the reponses.

Actually the 2569 is used to switch between multiple I2C devices for the SCL, SDA and the Power Signal.

 

However, i suppose we have figured this one.

 

In case 1 we were using a 1 Kohm pull resistor on the SDA and 3.3 Kohm on the SCL and

In case 2 we were tried 500 ohm and 1Kohm pull resistor on SDA with either 4.7 Kohm or 1 Kohm on the SCL.

 

It is confusing to understand though, however, we suppose, that the drive current in case 2 through the SDA is very high.

 

Does the 845X driver has an internal protection for large current passing through the I2C module? which is why we get an error?

 

Thanks.

 

Naru 

0 Kudos
Message 4 of 4
(6,633 Views)