Sign in

username:

password:



Not a member?

Search c54x



Search tips

Subscribe to c54x



c54x by Keywords

5409 | 5416 | AD5 | ADC | BIOS | Boot | Booting | Bootloader | C540 | C5402 | C5409 | C5416 | CCS | Codec | DMA | Dmad | DSK | DSKPlus | Dsplib | EVM | FFT | FIR | Flash | GPIO | HPI | Initialization | Interrupt | JTAG | LOG_printf | MCBSP | RFFT | RTDX | Sampling | STLM | UART | VC540

Ads

Discussion Groups

Discussion Groups | TMS320C54x | C5402 DSK INTERRUPT PROBLEM

Technical discussions about the TI C54x DSPs (including the c5401, c5402, c5402a, c5404, c5407, c5409, c5409a, c5410, c5410a, c5416, c5420, c5421, c5441, c549, c5470 and c5471).

  

Post a new Thread

C5402 DSK INTERRUPT PROBLEM - Author Unknown - Nov 5 13:18:00 2001



I have a problem with interrupts on the C5402 DSK. I use the IDLE 1
instruction to wait until a BRINT1 interrupt occurs from the AD50
codec, indicated by IFR=400h. When this occurs, the program does not
jump to vector table and hence to the ISR, instead it loops around
and waits for the next interrupt to occur. At the time of the
interrupt, INTM=0 and IMR=400h. If I comment out the IDLE 1
instruction and replace it with INTR 26 to force it a BRINT1
interrupt, it jumps to the vector table and executes the ISR okay.

Does anyone know what would cause the IDLE 1 to not jump to ISR apart
from the obvious ie. IMR bit for BRINT1 not set, and INTM=1 ?

Note, my vector table is remapped to 0x80.

Regards

Maurizio Gencarelli
Avoinics Engineer
Royal Australian Air Force





(You need to be a member of c54x -- send a blank email to c54x-subscribe@yahoogroups.com )

RE: C5402 DSK INTERRUPT PROBLEM - Dave Helsley - Nov 5 17:27:00 2001

Hello,

I'm new to the newsgroup, but I have had some experience with these serial
ports, and I have a theory about what's going on. If memory serves, the
serial port receive interrupt occurs on a shift-register-to-DRR copy event.
If the DRR has not been read since the serial port was enabled, there's a
chance that there's data waiting to be read. If that's the case, there will
be no subsequent copying of data from the shift register to the DRR until
that data is read, and hence no interrupt event to vector you to your ISR.
I had this problem with DMA synchronization events once.

To fix it, I would always do an unconditional read from the serial port's
DRR register to free the logjam immediately after enabling interrupts. This
way I know there won't be a logjam in the serial port.

Hope this helps,
Dave Helsley -----Original Message-----
From: [mailto:]
Sent: Monday, November 05, 2001 5:18 AM
To:
Subject: [c54x] C5402 DSK INTERRUPT PROBLEM I have a problem with interrupts on the C5402 DSK. I use the IDLE 1
instruction to wait until a BRINT1 interrupt occurs from the AD50
codec, indicated by IFR=400h. When this occurs, the program does not
jump to vector table and hence to the ISR, instead it loops around
and waits for the next interrupt to occur. At the time of the
interrupt, INTM=0 and IMR=400h. If I comment out the IDLE 1
instruction and replace it with INTR 26 to force it a BRINT1
interrupt, it jumps to the vector table and executes the ISR okay.

Does anyone know what would cause the IDLE 1 to not jump to ISR apart
from the obvious ie. IMR bit for BRINT1 not set, and INTM=1 ?

Note, my vector table is remapped to 0x80.

Regards

Maurizio Gencarelli
Avoinics Engineer
Royal Australian Air Force
_____________________________________




(You need to be a member of c54x -- send a blank email to c54x-subscribe@yahoogroups.com )