UG-1828 Preliminary Technical Data
Rev. PrB | Page 196 of 277
INTERRUPT
The ADRV9001 features the general purpose interrupt output pin (GP_INT), the GP_INT pin can alert the baseband processor that an
important event or error regarding the device operation has occurred. These events include of unlocking of PLLS, Stream Processors
errors or ARM exception, and so on.
A description of the interrupt sources and their bit positions is provided in Table 85. An Interrupt source can be masked so that it won’t
be transmitted to the BBIC on GP_INT pin or in status registers. An interrupt is masked when the corresponding mask SPI bit is set to
‘1’. The GP_INT pin represents a logical OR of the enabled GP_INT mask sources. It is not necessary to enable all of the interrupt
sources.
Table 85. GP_INT Bitmask Description
Bit Position Description Component
0 ARM Error. ARM
1 Force set an interrupt ARM
2 ARM system error ARM
3 ARM calibration error ARM
4 Monitor interrupt ARM
Tx1 power amplifier Protection Error
6 Tx2 power amplifier Protection Error Transmitter
7 Low Power Clock PLL Lock indicator Lower Power Clock PLL
8 RF PLL 1 Lock indicator RF PLL1
9 RF PLL 2 Lock indicator RF PLL2
10 Aux PLL Lock indicator Aux PLL
11 Clock PLL Lock indicator Clock PLL
12 Main clock 1105 MCS Clock Distribution
13 Main clock 1105 Second MCS Clock Distribution
14 RX1 LSSI MCS RX SSI
15 RX2 LSSI MCS RX SSI
16 Main Stream Processor Error Stream Processor
17 Stream Processor 0 Error Stream Processor
18 Stream Processor 1 Error Stream Processor
19 Stream Processor 2 Error Stream Processor
20 Stream Processor 3 Error Stream Processor
21 Not used
22 Not used
23 Not used
24 Not used
The GP_INT pin is configured by adi_adrv9001_gpio_GpIntMask_Set() after device initialization. When a rising edge is detected on the
GP_INT pin, the baseband processor should call the API command adi_adrv9001_gpio_GpIntHandler() , the interrupt handler will
return information related to the interrupt source to the user. Calling this command may be sufficient to clearing the error. Either
handler function returns a recovery action which suggests further action if necessary, adi_adrv9001_gpio_GpIntStatus_Get() can also be
used to read in the current interrupt status register.
Two cases are provided for users to handle the interrupt.
Usecase 1: User Handles Status Register
In this scenario, full control (via public API functions) is given to the user to set/get mask, sticky mask and status registers (although the
status register is a read only). Hence the user can custom tailor solutions (recovery actions) to handle the different events/interrupts. This
requires that the user completely maintains the status register (i.e. clear interrupts that have been serviced bit by bit).
Usecase 2: User Calls ADI GPIntHandler (Recommended)
In this scenario, the user can monitor the GP_INT pins and call a central GPIntHandler function provided by ADI to handle decoding
and maintaining the status register. The user can then plug their custom actions into the corresponding sub block of the GPIntHandler
function (or implement their recovery action after GPIntHandler). The advantage of using this technique (and why it is recommended)
is that ADI can provide some built-in recovery action for specific events before potentially calling user functions. Figure 185 shows the
sequence of events between baseband processor and ADRV9001 API with respect to the GP interrupts.