SLAAEU1A August 2025 – September 2026 MSPM0L1306
This section explains the pin setup for PA15 and PA16 which were used as ADC pins and GPIO pins. This is done by performing pin mode switching the two pins. The microcontroller cannot simultaneously read and drive on the same physical pins. Therefore, a dual-phase measurement approach is required.
When reading the X coordinate, the Y-axis pins are driven as the GPIO outputs to create the voltage potential and the X-axis pin (PA15) is configured as the ADC input to measure the resulting voltage through Channel 8 of the ADC. This is implemented in the readTouchX() API in the resistive_detection.c file. It is a similar implementation for reading the Y coordinate using the PA16 pin. This necessitates switching of the pins PA15 and PA16 between GPIO and ADC modes.
The touchIOReset() function converts all touch pins back to peripheral analog mode using DL_GPIO_initPeripheralAnalogFunction(). The measurement functions then call DL_GPIO_initDigitalOutput() to temporarily switch specific pins to GPIO mode. After measurement completes, pins return to analog mode for the next cycle. A settle delay is applied after pin configuration changes to maintain voltage stabilization before the ADC measurement is done.