3.1 SPI Timing Requirements
The embedded PIC16F1618 requires certain SPI timing requirements in order for successful communication to
occur. When the Chip Select line is brought low, users must wait at least 15 μS before sending the first byte of
data. An interbyte delay of at least 10 μS is required when transferring multiple bytes. When the Chip Select line is
brought high after the last byte has been transferred, at least 25 μS is required before users may bring the Chip
Select line low again to initiate another communication session.
3.2 Calibrating the Module
The PmodJSTK2 has a set of factory loaded calibration values that are used to calculate the 8-bit position values for
each axis. Users may enter calibration mode to recalculate all of those values by rotating the joystick around so the
embedded PIC16 can record all of the maximum and minimum samples for the two axes. The on-board blue LED
will be flashing to indicate that the calibration sequence is taking place. When the embedded microcontroller
detects that the joystick has not changed for an entire second, allowing the microcontroller to presume that the
most recent set of measurements correspond to the joystick's center position, the blue LED will stop flashing and
the green LED will flash twice to indicate that the calibration procedure was successful. However, if 10 seconds
pass without the PIC16 detecting the center position, the blue LED will stop flashing and the red LED will flash
twice indicating that the calibration procedure was not successful.
Once the Chip Select pin goes high after the calibration command has been processed, the PmodJSTK2 will not
accept any new commands during the calibration procedure. Users may still poll the status register to determine
the current status of the device during this time.