I'm having a problem when I press more than one key at a time. Pressing any 1 key is detected perfectly, always. If I press 2, or 3, or more keys, if they all occur at the same time (as close as my hands are pressing them concurrently) sometimes 1 or more won't register going down. The same is true when I release the keys as well.
While my matrix does have 1n4148 diodes, I am able to reduce my design to just enabling 3 keys to even see this behavior, they have taken over completely column 4, 5 and 6.
So to be sure, and disable all the other row/column, I put this:
writeI2C8(FD_PANEL,0x1D,0x00); //SET ROWS PART OF KEYSCAN (R0-R4)
writeI2C8(FD_PANEL,0x1E,0x00); //SET ROWS PART OF KEYSCAN (C0-C3, C7)
writeI2C8(FD_PANEL,0x1F,0x00); //SET ROWS PART OF KEYSCAN (C8-C9)
writeI2C8(FD_PANEL,0x20,0x00); // ROW5 GPIO INTO FIFO
writeI2C8(FD_PANEL,0x21,0x70); // COL456 GPIO INTO FIFO
I've scoped the signals on 4 5 and 6 and they look fantastic. Not seeing any capacitance droop or excessive ringing.
The only thing I know that is not 100% correct is ROW 6 and 7 are floating because they are not being used in any configuration. But given the rows are open anyways if no button is down, I didn't think that would cause any problems.
I'm just not sure what else to check. I have 2 boards built up and both behave exactly the same.