PR33-17 SCL Idle State Low

Good afternoon all,

Simple question here, is the PR33-17 idle state truly supposed to be SDA high and SCL low? It’s odd because I’m used to the arduino default of idle meaning high for both.

To see this, all I did was plug the PR33-17 into the computer USB port and measure SDA/SCL relative to ground with a multimeter. If this is the case is there any way to change this? I have my system watch for a low clock signal to identify error conditions and this behavior is causing some confusion.

Thanks,
Ethan

SDA SCL should be high given that they are pulled high.

@ryan1 do you know what would this happen?

Here’s the Alpha Station Config panel in case that’s helpful. As you can see, there’s one device connected to the bus at address 0x25. And my multimeter still reads SDA = 4.96V, SCL = 0.02V.

Hey team, just want to follow up to make sure this didn’t fall through the cracks. Any ideas/solutions?

@ryan1 is back now and should be able to check this out

1 Like

Please remove all external devices and remove the USB cables. You can then use Ohms on your meter to read between the +5V and SCL/SDA. You should read 4.5K or greater on each SCL and SDA lines. If not, please let me know.
Thanks,
Ryan

All seems okay with that.

4.72kOhm for 5V to SDA
4.75kOhm for 5V to SCL

Could there be some configuration setting/issue that could cause the processor to hold SCL low during inactivity?

Just to confirm, the device at idle is holding the SCL line low at all times and this is happening with nothing connected to the I2C port?

Correct as far as I can tell. When I plug the usb in for power (with nothing else connected to the bus), the SDA goes high and SCL stays low, according to a multimeter.

Tomorrow I’ll have access to both an oscilloscope and a new, unused PR33-17 module and I’ll see whether that shows the same.

To be clear, when I send messages through the serial port with the correct API, the I2C writes and reads work just fine. The only issue is that I use the low SCL state as an error state signifier so all external bus devices reset themselves to ensure they aren’t the culprit holding down the bus.

I just plugged a new (just out of package) PR33-17 into a usb and see the same thing, SDA sits high, SCL sits low. Do you see differently on your module?

I have confirmed the clock line will idle low on power-up. Unfortunately, the CPU is full and the project is closed, so no firmware changes can be made to this cpu. However, it may be possible to use a I2C multiplexer and switch to a channel you do not intend to use when you are finished with communications, this should release the clock line when not in use.

Okay, thanks for your help. As I mentioned, the part has generally worked well for me and will simply require a bit of an adjustment to overcome this limitation.