Hello,
I’m trying to establish an I2C connection between the evaluation board PNEV7642A and a system based on LPC541xx devices.
Pin connections:
J46.1 → AD_I2CM_SCL
J46.2 → AD_I2CM_SDA
J46.4 → GND
(Connected to the corresponding I2C pins on the LPC541xx board.)
The issue I’m facing is that the I2C bus seems to get stuck — either the data is not received correctly or not received at all.
Additionally, when the I2C bus from the PN7642 evaluation board is connected, it appears to pull down the communication of other I2C devices on the same bus.
Could this be related to a clock issue (e.g., clock stretching, desynchronization, or incorrect clock/frequency settings)?
Initially, I used the clock driver and clock_config files provided in the PNEV7642FAMA software package.
Would you recommend using MCUXpresso Config Tools (https://mcuxpresso.nxp.com/) to generate the pin mux and clock configuration?
If so, is there any special procedure or configuration required for this setup?
Thank you for your help.
Hi,
According to PN7642 Data Sheet, Section 9.6.1.7, I2C Controller interface supports both multi controller and multi controller with target.
Latest SDK available (should be v02.15.004) can be found in PN7642 Product Page, under Software section. Available examples for I2C communication are pn76_hostif_i2c (driver_examples > hostif > i2c) and i2c_gpdma_b2b_transfer_master/_slave (driver_examples > i2c).
Also, I will recommend you referring to the I2C-bus specification and user manual.
Regards,
Eduardo.
Hi,
Please, try using the default source code of the demo (from latest SDK version of each device). I tried to replicate your setup by using:
- LPCXpresso54114 Evaluation board -> lpcxpresso54114_i2c_dma_b2b_transfer_master, no modifications
- OM27642EVK Evaluation board -> pnev7642fama_i2c_gpdma_b2b_transfer_slave, no modifications
Then, connected:
| PNEV7642A | LPCXpresso54114 |
| J46-1 | J1-1 |
| J46-2 | J1-3 |
| J46-4 | J1-7 |
The communication works as expected:
- LPCXpresso54114Regards,
Eduardo.
Hello @EduardoZamora,
Did you have a chance to look into the issue?
I’ve attached two files showing one I2C message that is sent cyclically. I can see the signal on the oscilloscope connected to the evaluation board pins; however, it does not appear in the receive buffer of the I2C slave software.
What could be the reason for this behavior? Please advise.
Best regards,
Radoslaw
Hello @EduardoZamora,
Thanks, I’m doing fine — hope you’re doing well too!
I’m using the i2c_gpdma_b2b_transfer_slave example (from PN7642 SDK > driver_examples > i2c) as a reference for my tests. My goal is to receive data and send a modified response back.
I modified the address setting to:
slaveConfig.address0.address = 0x00;
so that the device can receive all data on the bus.
On the oscilloscope, I can see traffic on the bus reaching pins J46.1 and J46.2.
Are these pins the correct outputs for I2C communication, or should I use different pins if I only want to receive data?
Regarding J54, my current jumper configuration is as delivered (all four jumpers in place):
J54 pins 1–3 & 2–4: PN76xx I2CM as leader — default
J54 pins 3–5 & 4–6: PN76xx I2CM as follower — optional
J54 pins 5–7 & 6–8: PN76xx I2CA (ATX) as follower — default
I’ve attached an example of the I2C communication for reference.
I hope this helps clarify the situation a bit more.
Thank you in advance for your support.
Best regards,
Radoslaw
Hello @RadoslawTomasik
Hope you are doing well.
Could you please confirm if you are using i2c_gpdma_b2b_transfer_master (PN7642 SDK > driver_examples > i2c) demo as a reference for your test? By any chance, have you modified the original source code?
What are the pins you are using on the LPC541xx? Can you provide a capture of the I2C communication by using an oscilloscope or logic analyzer?
i2c_gpdma_b2b_transfer_master uses a baud rate of 100K. After connecting to LPC55s16 with slave configuration, using pins J46-1 / J46-2 / J46-4, this should be the output:
- PN7642
-LPC55s16
Regards,
Eduardo.