I2C slave cannot drive SDA LOW on !ACK bit on LPCXpresso55S69-EVK R3 board

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

I2C slave cannot drive SDA LOW on !ACK bit on LPCXpresso55S69-EVK R3 board

Jump to solution
689 Views
E66man
Contributor II

Currently trying to work with the LPCXpresso55S69 dev board and the Microchip USB2534 dev board on the FlexComm1 I2C bus.  We have already communicated with the Microchip board successfully over I2C using the ST Nucleo-U575 board.

The USB2534 is failing to respond when addressed on the bus.  Attached is an o'scope output of the address byte.  As can be seen the USB2534 *is* attempting to pull down SDA during the !ACK bit, but can't.  It should be noted that this image shows the result after removing R71 & R72 from the LPC dev board and replacing them with external 10k bus pull-ups.  With the original 2.2kOhm resistors on the LPC board the !ACK drop was even weaker.  With the on-board pull-ups the SDA line would drop to ~3V on !ACK, while with 4.7kOhm ones it dropped to ~2.5V, and then at 10kOm ~2V as can be seen in the image.  So this doesn't appear to be a protocol issue per se since the USB2534 is clearly attempting to do the !ACK.

We became suspicious that maybe something is not set up correctly on the LPC side even though we used the MCUXpresso IDE and the latest SDK code to generate the I2C initialization sequence for FlexComm1.  After I2C setup completes a read of the IOCON register for PIO0_13 (FC1_SDA) gives 0x5105.  This indicates that the EGP bit (bit 14) has not been cleared, meaning the pins should be running as GPIO and not I2C. Despite this the I2C peripheral *is* actually running as can be seen on the o'scope.  We did try to edit the start-up code to ensure that EGP is cleared, but this did not help.  Other ideas we have include leaving EGP set and also setting the OD bit (bit 9) to enable open-drain.  Another possibility is setting ECS (bit 13) to switch the peripheral to use (presumably) internal pull-ups.  These are guesses, however, if somebody has another idea of what to look at it would be appreciated. 

 

shared image.jpg

Labels (1)
0 Kudos
Reply
1 Solution
652 Views
E66man
Contributor II

 

So the issue ended up being on the USB2534 hub board.  The only exposed pins for I2C that the board gives access to on the top right of the image are on the wrong side of the 10k pull-ups (also interesting to note, there are no exposed ground pins meant to be used for connections to external boards).  We ended up having to remove the socket for U8 and installing header pins instead to be able to correctly wire the bus.  Looks like Microchip really wants you to buy their ProConnect tool do to anything with this board.

It is still curious though that when the LPC55S69 is correctly doing I2C that none of the related bits (aside from the function bits 0:3) in IOCON appear to be set. 

usb2534_circuit.jpg

View solution in original post

0 Kudos
Reply
3 Replies
596 Views
E66man
Contributor II

Hello-

It's not clear from reading my post but the attached schematic is from the Microchip USB2534 eval board, in order to show the unusual setup on the I2C jumper pins.  As stated once we realized no pin on the USB2534 gave direct access to the I2C bus we hacked the board and the LPC ran just fine (although still odd why the ICON EGP bit among others is not set).

0 Kudos
Reply
653 Views
E66man
Contributor II

 

So the issue ended up being on the USB2534 hub board.  The only exposed pins for I2C that the board gives access to on the top right of the image are on the wrong side of the 10k pull-ups (also interesting to note, there are no exposed ground pins meant to be used for connections to external boards).  We ended up having to remove the socket for U8 and installing header pins instead to be able to correctly wire the bus.  Looks like Microchip really wants you to buy their ProConnect tool do to anything with this board.

It is still curious though that when the LPC55S69 is correctly doing I2C that none of the related bits (aside from the function bits 0:3) in IOCON appear to be set. 

usb2534_circuit.jpg

0 Kudos
Reply
642 Views
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello @E66man 

From the schematic you share, it seems do not use Flexcomm1 as I2C. 

Alice_Yang_0-1713430034854.png

 

Please check and confirm the used I2C pins.

 

BR

Alice

 

0 Kudos
Reply