This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TL16C752D-Q1: Interrupt Pin Always Asserted

Part Number: TL16C752D-Q1


Tool/software:

Hello, I'm trying to develop an application that uses two TL16C752's that is interrupt driven. They are configured to use the receive and transmit interrupts, however the INT pin never clears to low. I have setup the most minimal example attempting to get the INT pin de-asserted. From power up I run the code.

 

patDuart2A->MCR = 0x10; //disable interrupt line with loopback
int interrupt_status = patDuart2A->IIR_FCR;
patDuart2A->IER = 0; 
patDuart2A->MCR = 0x18; //enable interrupts 
int interrupt_status1 = patDuart2A->IIR_FCR;

Inspecting interrupt_status and interrupt_status1 through GDB I find that the value is 193 = 0b1100 0001. This indicates that no interrupts are pending, however when I probe the INT pin with a scope it remains high as soon as the board is powered up. Separately, I have checked the functionality of the UART chip by enabling loopback mode and being able to read back what I write to it. I also checked the functionality of the IIR register by modifying the FCR register and observing the 2 most significant bits in IIR change. The chip seems to be functioning normally except that the INT pin is high from power up and nothing seems to be able to bring it low. 

  • Hi Sam,

    I've played with this device in the past and was able to get INT triggers from it before. We probably need to debug further to understand if it's a hardware issue or a potential programming issue.

    Do you have a schematic I could review?

    Also, Can you reset the device (should force INT to be high-z) and then tie a 10k resistor to GND on the INT pin and probe it to see if it goes to GND? I want to verify there isn't some sort of short on the INT pin that could hold the voltage to Vcc.

    Other thing is to do a read of the MCR register to verify the MCR[3] is actually getting set.

    I would also suggest using a digital multimeter's continuity test and poke the pin's INT vs the place you're probing to make sure theres a good connection.

    -Bobby

  • It appears that adding the 10k pulldown on the INT pin makes it work as expected now. The pin passed through an FPGA before going to the processor which may somehow have caused the floating behavior to always be high. Now with the pulldown the interrupt pin reflects the status in the IIR register. Thank you for your help