AnsweredAssumed Answered

ADSP-BF70x pin interrupt (PINTx) configuration/assignment and API

Question asked by matthiaswe on Apr 9, 2018
Latest reply on May 15, 2018 by matthiaswe

Hi,

 

from the documentation:


• PINT0 can sense pin activity on PORTA and PORTB

• PINT1 can sense pin activity on PORTB and PORTC

• PINT2 can sense pin activity on PORTC and PORTA

 

However, I don't fully understand the mapping of ports to the PINT_ASSIGN register. Can you please elaborate a bit on it? I'd like to have a pin interrupt on PC14. So if I get it right, I can assign the half port C half port to either bytes 3 or 0 of PINT1 or PINT2. Right?

 

What about the the byte mapping in PINT_ASSIGN? What does "PA" and "PB" stand for in the case of PINT0, PINT1 and PINT2, i.e. which port is the "A" and which one is the "B"? This seems especially confusing for PINT1 and PINT2.

 

Does the Analog Devices API adi_gpio_* take care of this? It seems tha the default configuration value of PINTx_ASSIGN is 0b00 00 01 01, which means a mapping of:

byte 3 = PA.H

byte 2 = PA.L

byte 1 = PB.H

byte 0 = PB.L

 

My guess is that the default assignment is as follows:

PINT0:

byte 3 = Port A.H

byte 2 = Port A.L

byte 1 = Port B.H

byte 0 = Port B.L

PINT1:

byte 3 = Port B.H

byte 2 = Port B.L

byte 1 = Port C.H

byte 0 = Port C.L

PINT2:

byte 3 = Port C.H

byte 2 = Port C.L

byte 1 = Port A.H

byte 0 = Port A.L

 

Using ADI_GPIO_PIN_INTERRUPT_1 with the API works for me, ADI_GPIO_PIN_INTERRUPT_2 does not.

If my interpretation is right, one can only use:

PINT0 for Port B,

PINT1 for Port C,

PINT2 for Port A.

 

At least with this configuration. Am I right?

 

Thanks.

Outcomes