I'm wanting the LP586x to drive RGB leds as well as scan a keypad. The open and short circuit detect features seem ideal for this purpose.
Using the LP5860TEVM board, I have disabled the led matrix from CS14..17 by removing the jumpers and connected the CS14..17 pins via series resistors to the keypad rows and SW0..2 via 1N4148 diodes (K to keypad) to the keypad columns.
The keypad is a simple 3x4 matrix of silicone buttons with carbon pills to complete the circuit. The on resistance seems to be around 10 Ohms.
Using 0 Ohm series resistors, I wrote some test code to randomly change colors on the leds and to read the relevant DOT_LODx and DOT_LSDx registers.
This works as I expect with the SC bits being set when the corresponding button is pressed and the OC bits being set when the corresponding buttons are not pressed.
Just to complete the background info - the Chip-en register is set to '1', Dev_initial register is set to 0x58 (mode 1). The rest of the configuration is the default values, MC = 3 (15mA), CCx = 64, DCx=128
The pwm_brix registers are set to 255 for the relevant buttons.
The question. When I measure the voltage across the series resistors when a button is pressed (in order to determine the current) I get values like this:
0.8V over 68R is 14mA
0.06V over 1.5R is 40mA
Where the expectation would be less than the 3.75mA set by Imax.
Is it wise to 'abuse' the short circuit detection in this manner?
Would it be advisable to use higher value series resistors and just use the open circuit detection mechanism to ensure excessive current is not passed through the keypad?
Comments as to whether using the LP586x device to scan a keypad is not reliable and/or recommended?