How to activate the INTRQ interrupt pin on the ADV7180 by Rob.Analog
The INTRQ interrupt pin on the ADV7180 can be programmed to change state under a number of different conditions. This can be a useful tool to detect issues with the the inputted analog video.
It is advised to place a pull-up resistor to DVDDIO onto the INTRQ pin of the ADV7180. The INTRQ pin will drive low when activated.
The following example will describe how to set the interrupt pin to go from a high state to a low state when the ADV7180 has lost lock to the inputted video. The interrupt will remain low until cleared.
1) Enter the Interrupt/VDP Sub Map by setting register 0x0E bit [5] to 1
2) Program the interrupt to drive low when active and to stay low until cleared: In register 0x40 write 0xD1
3) Unmask (i.e. activate) the unlock interrupt: set register 0x44 bit[1] to 1.
4) Clear the interrupt by writing writing 1 to register 0x43 bit [1]. (Note the bit will automatically reset to 0 after being written to).
5) Re-enter the User Map: set register 0x0E bit [5] to 0.
See script below. Note this should be run after a normal script has been run on the ADV7180 (e.g.CVBS autodetect in, YUV out)
Read/Write | Device Address | Register Address | Value | Comment |
---|---|---|---|---|
Write | 0x42 | 0x0E | 0x20 | Enter Interrupt/VDP Map |
Write | 0x42 | 0x40 | 0xD1 | INTRQ pin drives low when active and remains low until interrupt is cleared |
Write | 0x42 | 0x44 | 0x02 | Active SD_UNLOCK interrupt |
Write | 0x42 | 0x43 | 0x02 | Clear SD_UNLOCK interrupt |
Write | 0x42 | 0x0E | 0x00 | Re-enter main map |
The ADV7180 has now been programed to drive the INTRQ pin high under normal operation. When the ADV7180 loses video lock (i.e. goes from a locked state to an unlocked state) the INTRQ pin will drive low and remain low until the interrupt has been cleared.
How to clear the interrupt:
1) Enter the Interrupt/VDP Sub Map by setting register 0x0E bit [5] to 1
2) clear the unlock interrupt by writing 1 to register 0x43 bit [1]. (Note the bit will automatically reset to 0 after being written to)
3) Re-enter the User Map: set register 0x0E bit [5] to 0
The INTRQ pin will then drive high and will only drive low on the next loss of video lock.
Note:
The user can program a number of different interrupts to occur at the same time. When the INTRQ pin drives low the user must read the interrupt status registers ( User Sub map register 0x42, 0x46, 0x4A. 0x4E) to see which interrupt has been activated.
For more information see Table 108 in the ADV7180 datasheet (Rev I).