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.

C6720 External Interrupt via AMUTEIN

Hello,

I'm having an issue using the AMUTEIN pin to trigger a CPU interrupt on the C6720.  Here's my procedure for setting this up, am I doing something wrong ?

1.    I assign 0x00000007 to CFGMCASP0, which sets up pin 105(#SPI0_ENA/I2C1_SDA) on the C6720 to act as AMUTEIN for the McASP0 peripheral.  I have a digital output pin from a PIC microcontroller connected to pin 105 of the C6720. 

2.  I write 0x00020007 to address 0x6100 8068, which is { MAX0 (HiMAX) Event Entry Table (0x6100 8000) + (0x68) MCASP0ERR (entry 26 offset)}

--> The step above is supposed to configure the dMAX such that when event 26 occurs it triggers INT9 on the CPU.  At this point in time, bit 0 and bit 1 in the CSR are both high... those are the PGIE and GIE bits.  In addition IER is configured to have all interrupts on, it has a value 0xFFF3.

3.  I write 0x04000000 to DEPR to make event 26 rising edge sensitive.

4.  I write 0x04000000 to DEHPR to make event 26 a high priority event.

5.  I write 0x04000000 to DEER to enable event 26.

6.  I trigger an interrupt with my PIC processor.  I saw the signal transition from low to high with my oscilloscope.

7.  INT 9 does not execute !!!

8.  So I then I verify that I can indeed execute the code in INT 9, so I trigger it manually writing a '1' to the corresponding bit in the IFR register.  I PROVED THAT THE INTERRUPT SERVICE ROUTINE EXECUTED !

9.  So then I turn off event 26 in DEER by clearing bit 26.

10.  I then try to see if the corresponding bit in the DEFR register gets set for event 26 when I transition pin 105 from low to high.  And what do you know... IT DOES !!! I clear it then trigger it again, it seems to be working A OK !!

11.  SO THEN MY QUESTION IS .... why doesn't my ISR code for INT 9 not execute when I enable event 26 ?

I've tried everything possible to figure out what the problem was.  I verified I was writing to the right memory locations.  I verified the event entry for entry 26 on HI_MAX, I read back the memory contents and got back what I wrote.  I verified all of the values I wrote to the corresponding registers.  I verified that my INT 9 ISR could execute.  

I've read the dMAX guide thoroughly, I'm pretty sure I'm not missing anything.  I'm seeing the event get flagged in the DEFR register, however it's not triggering my INT 9 ISR when I turn the event on in the DEER register, which leads me to believe that there could possibly be an issue with the documentation in either the C6720 manual on the page where it shows the memory map of the device.  The HI_MAX event entry address could possibly be wrong or the event entry format for triggering CPU interrupts listed in the dMAX guide could be wrong, or it could be that I'm making a mistake and I'm not realizing it. 

I would really appreciate any type of help with this issue as I have hit a brick wall with this problem and I can't make any further progress in trying to debug it.

Thank you any help efforts,

Julxhino

 

  • Julxhino

    AMUTEIN:
    1. This pin is used for McASP mute input, which is from external device.
    2. The external error signal is coming into this.

    In addition, the AMUTE device pin is asserted when one of the interrupt flags is set or an external
    device issues an error signal on the AMUTEIN input.

    dMAX Control Registers:
    1. I can suggest you, will you write 0x00060007 to address 0x6100 8068 for INT13.
       The HiMAX module will trigger a CPU interrupt INT13 for a rising edge on the event signal 26.
    2. The assigned value(0x04000000 ) is fine for DEPR, DEHPR and DEER.
    3. If you likely to trigger the interrupt via INT9, kindly set the Event Entry(18-16 bits & INT field) for Interrupt from dMAX Controller to the CPU.