Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12603 Discussions

Side B of MCP23017 did not pull up?

Altera_Forum
Honored Contributor II
1,064 Views

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
Reply