Input Shifter GPI

We are trying to use both ‘Bidirectional GPIO’ and ‘Input Shifter GPI’ on the Apalis TK1 to process external button presses. These include:

  • UART1 CTS
  • UART1 DCD
  • UART1 DSR
  • DAP1_BIT_CLK
  • DAP1_D_IN
  • DAP1_SYNC

Our problem is the bidirectional GPIO buttons are working properly. That is the Interrupt from the button press and released is sensed. However the Input Shifter GPI buttons are latching on the first press and will only reset with a power recycle. I am looking for some help explaining why the GPI are not resetting.2174-sdio-as-gpio.png

Could you please provide more details?

  • what is “Input Shifter GPI”?

  • Which lines (X1 pin #) is “latching”?

  • Did you check a voltage on that line or just read by SW

  • How do you read lines’ state?

  • UART1 is used as a console and debug output. Did you disable flow control while using CTS/DCD/DSR lines?

Alex,
Thank you for getting back to me
Here are some answers
I should have said an Input Shifted (from the TK1 datasheet) General Purpose Input :

We have six buttons with four implemented on Input Shifted pins. All of these ‘latched’ after the first press of a button. A release or another press does not change the state

We measured the voltage and looked at the pin in SW

We look at the state in Software and on a Scope

I have not tried to disable flow control yet.

Could you pleas specify on which exactly pins you are seeing “latching”. How are you reading states? Are you really observing “latching” on scope?

To investigate your issue I need to repro it locally. Could you provide full information?

I work with rbammons, we are seeing the latching behavior on pins 116, 120, 124, & 202 from the Apalis TK1 module. The circuit on the carrier board as shown is held high (3.3 V) with a pull up resistor, and the button press brings the line to ground. However, after the button is released the line remains pulled to ground (<100 mV). The line returns to 3.3 V after a reboot until the first button press.

We have tested this without the Apalis module on our carrier board and the line returns to high after a button release.

Thank you, changing the resistors to 4.7k to allow a higher drive current worked.

Hi @wall1345

The non-bidirectional level-shifted pins use the TI 74AVCAH164245 as a level shifter. This level shifter has a hold feature. According to the datasheet, at 3.3V logic level, the input pins have to be driven with at least 525uA (worst case). With your 100k pull-up resistor, you drive it only with 33uA. If you replace the pull-up resistors with 4.7k, you will drive them strong enough.

Please let me know whether this solution works for you.

Perfect that it works. Thanks for the feedback.