SX1509 Keyboard info clarification wanted sleepTime vs scanTime

Looking at the SX1509 documentation, and its companion SX1509 class object, I find a number of parameters that clearly interact with each other. I am specifically speaking about the interaction between sleepTime and scanTime.
It is clear to me that scanTime determines how often the key-down interrupt signal will occur. Near as I can tell, with sleepTime=off, an interrupt pulse will occur every (scanTime*rows) milli-seconds. Therefore, this sets the maximum number of key-presses that can be detected per second.
From the name of the parameter, I would expect that sleepTime has something to do with allowing the hardware to “sleep” in order to save power.
Questions that come to mind are:

  • What effect does sleepTime have on key-down response time?
  • Does sleepTime have any effect on non-keypad SX1509 functions that may also be in use?

Yes; longer sleep times increase the maximum potential delay between a key press and its detection, up to a max of:
sleepTime + (scanTime * rows)

SleepTime primarily affects the keypad engine and has limited impact on other SX1509 functions:

  1. GPIO : SleepTime does not directly affect GPIO operations. The SX1509 can still handle interrupts and I/O changes while the keypad engine is in sleep mode

  2. LED driver functions: The LED driver operates independently of the keypad engine. Functions like PWM, blinking, and breathing should continue to work regardless of the keypad’s sleep state

  3. Power consumption: Enabling sleepTime can significantly reduce power consumption for the entire chip, which may be beneficial for battery-powered applications or when using other low-power features of the SX1509

  4. I2C communication: The SX1509 remains responsive to I2C commands even when the keypad engine is in sleep mode, allowing for configuration changes or data reading/writing

Add’l Tips:

  • Use the lowest sleepTime setting for responsive applications
  • Increase sleepTime only when power conservation is a critical priority
  • Always validate the actual performance in your specific use case through empirical testing

Thank you very much for this fully detailed information.