Can't get NRF52840 to interface over I2C with a PCA9534

I’m trying to get my NRF52840 to interface with a a PCA9534 to expand the GPIO port pins. For some reason, the NRF just won’t communciate with the chip. I have it communicating with other I2C devices and I can get the PCA9534 to communicate with other micro’s.
It’s not an address issue as I run an I2C address scanner and it gets nothing back though it will get addresses of other I2C devices if they are also connected.
Has anyone connected a 9534 or variant to the NRF?

Have you checked the usual suspects, pull-up resistors on SCL and SDA lines?

Yep, I’ve tried 1k up to 10k pull-ups. I look at the traces on my scope and they seem fine in terms of squareness and being pulled up properly. This is the strangest problem.

Hi there,
Can you post up the code you are trying, What pins are you using GPIO We can look.
I have two of these as well. This is not the seeed IO expander right ? You have a picture of it?
HTH
GL :slight_smile: PJ

You doing this?

Yes that is how i have it connected. Though ihave tried different pull-ups, down to 3.6k. My VCC is 3V3 rather than the 5V shown.

Hi there,
So you have some example code? Post that Let’s look. Seems like it should just work.
Most notably the Address A2 pullup is different than the I2C , I would try without them , Have you?
Have you looked at the Xiao port expander Wiki?
HTH
GL :slight_smile: PJ

I’ve tried different A0…A3 configurations.
I’m just running an I2C scanner and the address isn’t even detected.

As I said originally, I have other i2c devices working just fine. It’s just this part that doesn’t seem to want to communicate.

I also bought a couple of these breakout boards and they worked fine. When I recreate their exact circuit the original chip s so don’t communicate.

https://www.amazon.com/dp/B01ICN5JB6?psc=1&ref=ppx_yo2ov_dt_b_product_details

Hi there,
So I see the Amazon page and the first review offers some incite on the address and scanner , I feel like it should respond to the scanner at a minimum, I would start with that as your first clue.
Have you tried what he is saying on the Resistors?
How about the code your using and a picture of the setup.

Top reviews from the United States



BobK

5.0 out of 5 stars Great I/O port

Reviewed in the United States on December 7, 2019

Verified Purchase

GPIO pins are generally in short supply on most microcontrollers. These boards are a great way to add a couple 8-bit I/O ports to your device. Mines :grin: had a base address of 0x20, apparently some have a base address of 0x38. If in doubt code for an I2C scanner can be easily found. You could also just try 0x20 and if that doesn’t work then try 0x38.

These devices are easily cascadeable, one device can plug into a second (or third, or fourth…) up to a limit of eight. Of course you will have to set the address jumpers provided so each board has a unique address; if your board’s base address is 0x20 you can use the jumpers to set it to 0x21, 0x22, …0x27.

One thing I did discover is that you’d be wise to add your own pullup resistors on SDA and SCL; a 4.7k resistor works well.

An excellent value for the price.

3 people found this helpful
–END__
HTH
GL :slight_smile: PJ :vulcan_salute: