Discussion:
i2c help need with pull up resistor problem
(too old to reply)
rbme
2008-08-06 22:10:05 UTC
Permalink
I've been troubleshooting with my i2c device for 2 weeks. I've made sure all connections are correct and have even had associates check as well. My device requires two 10K resistors which I am using but I keep getting this message: Error -301740 occurred at NI-845x I2C Write.vi:2Possible reason(s):NI-845x: The I2C master failed to seize the bus. Reasons include the absence of a pullup resistor on the SDA line, SCL line, or both, a transaction in progress by another master, or a bus fault condition in which the SDA line, SCL line, or both are being held low.Does anyone know what I should do?Thanks,Ross
tflink
2008-08-07 07:10:06 UTC
Permalink
Hello,
 
I would start with checking the signals with an oscilloscope. Do you have the correct amplitude on the SCL and SDA pins and are they toggeling as expected?
 
Second would be if you have any other application running that also is communicating with the I2C that could "seize the bus", then close that one.
 
Also as the error mesage states could there be another master on the I2C bus? Or is your device not set to slave?
 
BR
Thomas
Song_M
2008-08-07 16:10:05 UTC
Permalink
Hey rbme!  The 8451 requires pull up resistors between the ranges of 2.2 to 4.4 kOhms.  Please refer to the Knowledge Base article below: http://zone.ni.com/devzone/cda/tut/p/id/5767Also, what example VI are you running?  Thanks!
rbme
2008-08-07 21:10:05 UTC
Permalink
Ok thanks guys, I will try all thoses things right now and I am using my own VI for an HMC 6343.  If you like to look at it just let me know your email so that I can send it directly.
Thanks and will let you know result soon,
Ross
rbme
2008-08-07 21:40:07 UTC
Permalink
Song,
I have a quick question: If my device requires a pull up resistor of 10k on the SDA and then the 8451 requires a 2.2-4.4k resistor on the SDA, how do I go about doing this?
Thanks,Ross
rbme
2008-08-12 02:10:05 UTC
Permalink
I've changed the pull up resistor to the 8451 required, 2.2-4.4k, and I don't have any other master.  My device is a slave, thus my problem must be a bus fault.  What is a bus fault and how can I fix it?  Please Help!
Tobin
2008-08-12 17:40:09 UTC
Permalink
This post might be inappropriate. Click to display it.
rbme
2008-08-12 20:40:22 UTC
Permalink
I checked the values and the SCL was 2.7V and the SDA was 0.55V with the 8451 attached.  I am not sure what you mean by having the 8451 not connect, because what would supply power then?  Attached is the schematic I am using for my circuit from the manufacture of my sensor (Honeywell).  From +5V from the 8451 goes into a 3.3V Regulator then to the two resistors then to the VDD's of the HMC6343.
Thanks!


Circuit.docx:
http://forums.ni.com/attachments/ni/170/348797/1/Circuit.docx
Tobin
2008-08-12 22:10:05 UTC
Permalink
rbme,
I'm presently downloading a microsoft office compatibility pack so I can view your attachement. But, in the mean time, if you are using the 8451 to supply power to your device, then just disconnect the scl and sda lines from the 8451 and leave the power connections intact. The pull up resistors still need to be connected between power and scl and sda of your device.
I just want to find out if your device is pulling the sda line low by itself. Sometimes, an I2C slave device my hold the line low if it does not power-up correctly.
I've just completed my download. I'll install it and then view your document. I may make further comments then.
Tobin
Tobin
2008-08-12 23:10:07 UTC
Permalink
rbme,
I've looked at the schematic that you posted. I've reviewed the spec for the slave device. Drawing power through the 8451 should be fine since it is only about 5 mA.
The only things that I can suggest are: make sure that the power-up rise time for the device is at least 0.05v/msec (per the spec for the slave device). If you have a filter capacitor on the supply line that is too large, it may slow the power-up rise time. This could cause the device to latchup and hold the data line low. The other thing is to make sure that both the slave device and the 8451 share the same ground reference. I expect that is already the case since you are using the 8451 to supply power.
If you measure the slave device while the clock and data lines are disconnected from the 8451 and they are fine (high) and then connect them to the 8451 and the data line latches low, then we may need to suspect the 8451.
Do you have any other I2C slave devices that you could connect to the 8451? Even if you don't run the VI, the clock and data lines of the 8451 should be idle high if the pull-up resistors are attached.
 
Tobin
rbme
2008-08-12 23:10:08 UTC
Permalink
I get the same results when the SDA and SCL are disconnected from the 8451.  I have multiple HMC6343 slave devices but no others kinds of devices.  I have just noticed something about the schematic from Honeywell that is not consistent with the PCB in which the device is on: The CS and CS_CTRL are not connected, so I have just ordered a new PCB.  I think that this might be the problem.  Do you know what the CS and CS_CTRL do?  Thanks for all your help!  I am going to try and connect these two pad together before the PCB comes and then I will get back to you!! Thank you so much!
Continue reading on narkive:
Loading...