Hi,
In our product we are using TM4C123GE6PZ, but have also tried GH6PZ version. After long testing period we have reached to conclusion that adc channel ADC_CTL_CH18 on pin #18, portH, pin_2 is triggering the part into high current mode, drawing additional ~150mA when the adjacent input pin on #19 is taken to gnd. Let me briefly describe our applacation.
There are 10 potentiometers defined as ROM_GPIOPinTypeADC(). All wipers have 1u cap to GND. There are 3 input switches defined as ROM_GPIOPinTypeGPIOInput(). On the board these inputs have 10k pullup to uC 3.3V supply with 100n cap to GND. ADC values are shifted into 8bit data for futher handling.
Here is the problem:
When potentiometer on pin #18 is turned to read values < 251 then everything works as expected. But when that potentiometer is turned to values 251...255 and input switch on pin #19 is taken to gnd then the voltage on ADC input pin #18 drops dramatically to 1.01V and ADC reads 76 instead. Now by turning the potentiometer to max position then ADC reads 147 and addional 150-200mA is drawn from supply to pin #18. Within the expected range of 251...255 ADC reads 76...146 (1.0...2.1V) while the part is heated up to 65deg. Within that range it is possible to control the part, meaning that you can increase and decrease the extra current/temperature. But when turning the potentiometer below the wrong value of 76, the correct 250 is restored and part is going back to normal mode and temperature goes normal. Now one can turn it back over 251 again until switch on #19 is pressed again within that range.
When the part is in that regime uC reset nor program reload does not take it back to normal regime. Only power-off or getting pin #18 below 1.0V helps.
All 10 potentiometers and all 3 switches are read/processes in the same way. There are other pairs where ADC input is next to switch or digital signal in the pinout but no other places ADC is affected. At least 1 out of 4 button presses triggers that bad event.
Is such behaviour know issue in TM4C123GE? I could not find any hints from errata, neither from this forum. Right now I am looking for help to find any possible s/w workaround before we go and manually rework all boards.
I can share more details about schematics, board layout and code offline if needed.
Thanks in advance.
Taivo.