I'm trying to write code for a PIC16LF15344 to use the I2C interface. I've been able to write I2C code for a PIC16LF1822 that works well, but so far I have not been able to handle this PIC16LF15344, and the datasheet contains some confusing documentation that I'd like to delete.
Pin assignment descriptions for the PIC16LF15344 show that the I2C SDA function can be assigned to RC1 or RB6. Similarly, I2C-SCL can be assigned to RC0 or RB4. However, there is a note in Section 15.3 Bidirectional Pins as follows.
The I2C functions SCLx and SDAx can be reassigned via PPS. However, only the pins RB1, RB2, RC3 and RC4 have I2C and SMBus specific input buffers implemented (I2C mode disables INLVL and sets I2C specific thresholds). If the SCLx or SDAx functions are assigned to a different pin (except RB1, RB2, RC3 or RC4), the common TTL or ST input buffers (as configured based on the INLVL register setting) are used instead. It is therefore recommended that Assign only the SCLx and SDAx pin functions to the RB1, RB2, RC3 or RC4 pins. "
Not only is the hint not only seemingly conflicting with the descriptions in the pin mapping tables, it also points to pins RB1 and RB2 that are nowhere in the pin mapping tables, that is, they do not appear to be there this picture. I see similar footnote references like RB1 and RB2, but they are not documented anywhere in the body of the document or in the tables.
Surely, this must be a documentation error, but I can not find actual errata on the PIC16LF15324 / 44 datasheet to correct this. Am I reading this correctly?
I tried configuring SCL and SDA with PPS for pins RC0 and RC1 because they are wired on my board, but I still can not use the I2C with the software essentially used for PIC16LF1822. The PPS standard for EUSART TX2 and RX2 is RC0 and RC1. Does this mean that I need to use TX2CKPPS and RX2DTPPS to move the EUSART assignments to another location before SSP1CLKPPS and SSP1DATPPS are used to assign SCL and SDA RC0 and RC1?
I'm going to investigate other potential issues with my circuit board, but I'd like to fix the problem before adding another circuit board for fabrication. I'll have to make some changes anyway, so in the next version I can easily connect SCL and SDA to their PPS defaults.