Hi all,
I'm currently developing a modular system using the available flexcomms on the LPC55S69. I am trying to develop a library in which the user can pick a flexcomm and select a protocol, e.g. I2C, I2S, SPI or UART. To configure the pinout I am using MCUExpresso IDE to configure each flexcomm to use 5 unique pins that are capable of running each protocol. For example, this is the configuration for FLEXCOMM1:

The protocol is selected in the application code and is determined by the sensor that is connected.
I've tested all interfaces and I2C is the only one that is giving me problems. I think the issue is that there are 2 pins configured for SDA (71&40) and 2 for SCL (72&93) in the same flexcomm and it looks like these pins interfere with each other when both enabled and I2C is selected as protocol. The following line of code is used to initialize a flexcomm to use I2C:
- (void)FLEXCOMM_Init(base, FLEXCOMM_PERIPH_I2C);
It works perfectly after disabling one I2C pair in the pinout configuration, but some other protocols are then also disabled. The goal is not to have to change the pinout with every new sensor that is connected.
Does one of the I2C pins have priority over the other and is it possible to select which pins have priority? Or is it simply not possible to have FCX_CTS_SDA_SSEL0 + FCX_RXD_SDA_MOSI_DATA and FCX_RTS_SCL_SSEL1 + FCX_TXD_SCL_MISO_WS enabled on the same flexcomm and use I2C?