I recently got an oscilloscope with a logic analyser and their first mission was helping me in reverse engineering the communication protocol between two 15-20 years old unknown MCUs (COB). The goal is interfacing with one of them using an Arduino. My issue is that the currents flowing through the input pins of the unknown MCU (clock+data) are unusually high. I expected almost zero current because input pins are supposed to be high impedance.
In its original environment the MCU receives a 10-20kHz clock signal from the other unknown MCU and that requires 4-8mA current (these measurements might not be very accurate though). The current seems to be directly proportional to the frequency. Nothing too surprising but I never had to measure the current flowing through a digital input pin in my previous much simpler Arduino projects.
I bitbanged the protocol in the Arduino IDE and my teensy LC (MKL26Z64VFT4 Cortex-M0+ 3.3V) can communicate with the unknown MCU: a 10-20kHz clock signal needs 3-6mA current. However, an Adafruit ItsyBitsy (ATmega32U4 3.3V) can't send the clock signal to the unknown MCU. Trying to drive the output LOW drops the voltage from 3.3V to 2.4V and the current is a steady 27mA.
Can those input pins be (partially) damaged? What makes it possible for my ARM-based MCU (teensy LC) to interface with those input pins? Can this damage the ARM MCU in the long term? (I guess the instantaneous currents are higher than my measurements.)