Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Altera_Forum
Honored Contributor I
754 Views

Side B of MCP23017 did not pull up?

I'm hoping for some help with MCP23017 chips from the wonderful community here. I am not able to get the B side to pull up, but the A side is. I am seeing this on 2 different chips so I think I can safely say it is my code not the chips. 

 

I'm using C# in a Windows 10 IoT app running on a Raspberry Pi 3. 

 

i2cPortExpander is a Windows.Devices.I2c.I2cDevice object and I am setting the B side immediately after the A side. 

 

Side A, which is working uses: 

i2CWriteBuffer = new byte[] {0x0C, 0xFF }; 

i2cPortExpander.Write(i2CWriteBuffer); 

 

Side B, which is not working, uses: 

i2CWriteBuffer = new byte[] {0x0D, 0xFF }; 

i2cPortExpander.Write(i2CWriteBuffer); 

 

In case they were on split banks (didn't think they were since 0x0D worked for A), I did try but also did not work: 

i2CWriteBuffer = new byte[] { 0x16, 0xFF }; 

i2cPortExpander.Write(i2CWriteBuffer); 

 

Reading from the pins works as expected when they are connected to ground or VCC, but when open they wobble. Interrupts are running in mirror mode if that makes any difference. Spec sheet says that the B side does support pullup. Testing with a multi-meter shows around 0.6v on the B pins, the A side is at VCC (3.3v). The pins I am measuring are the first 8 on each side (first relative to the U end). 

 

The spec sheet I am using is http://www.kynix.com/uploadfiles/pdf2286/mcp23017-e2fml.pdf

 

I'm hoping to just rule out the obvious of misreading documentation or maybe someone has experience with MCP23017 chips and knows of a gotcha.
0 Kudos
0 Replies