DSPRelated.com
Forums

EZkit 2191 SPORT TX Interrupt

Started by hillho June 12, 2003
Greetings,

I'm receiving a constant interrupt when I turn on the Transmit
interrupt. When I disable the transmitter I do not get the interrupt
so I think my IRQs and priority are right. I am opperating the sport
with an internal clock/ internal frame sync/ DITFS = 0 only frame
when there is data. and Late frame sync.

I'm getting a constant interrupt as soon as I turn on the transmitter
whether I transmit a single 16bit word or not.

I would like a single interrupt after the TX buffer empties and is
ready for the next word.

Any Ideas?

thanks
JH



--On Thursday, June 12, 2003 7:58 PM +0000 hillho <> wrote:

> I'm getting a constant interrupt as soon as I turn on the transmitter
> whether I transmit a single 16bit word or not.

I'm not familiar with the 2191, but it sounds like the interrupt is
level-triggered by the condition of TX register empty, not edge-triggered as
you might desire. This is pretty similar to the way many UART's work.

What do you do in your ISR? You could use a boolean to remember if this is the
first invocation (before anything has been transmitted yet) and load the first
word to send if so, and do nothing else until the next time.



Read Page 9 of chapter 13 of the ADSP-219x/2191 DSP Hardware Reference, which can be downloaded from the AD website.
The extract from the page:
"Setting TSPEN causes an immediate assertion of a SPORT TX interrupt,
indicating that the TX data register is empty and needs to be
filled."

If you read over this chapter the SPORT operation should make more sense.

Cheers
Brett hillho wrote:
Greetings,
I'm receiving a constant interrupt when I turn on the Transmit interrupt.
When I disable the transmitter I do not get the interrupt so I think my IRQs and
priority are right. I am opperating the sport with an internal clock/ internal
frame sync/ DITFS = 0 only frame when there is data. and Late frame sync.
I'm getting a constant interrupt as soon as I turn on the transmitter
whether I transmit a single 16bit word or not.
I would like a single interrupt after the TX buffer empties and is ready for the
next word.
Any Ideas?
thanks
JH
_____________________________________
Note: If you do a simple "reply" with your email client, only the author of this
message will receive your answer. You need to do a "reply all" if you want your
answer to be distributed to the entire group.
_____________________________________
About this discussion group:
To Join: Send an email to a...@yahoogroups.com
To Post: Send an email to a...@yahoogroups.com
To Leave: Send an email to a...@yahoogroups.com
Archives: http://groups.yahoo.com/group/adsp
Other Groups: http://www.dsprelated.com/groups.php3
">http://docs.yahoo.com/info/terms/ 


--
Brett Olsen
Senior DSP Design Engineer
Tait Electronics Ltd
175 Roydvale Avenue
Christchurch
New Zealand
 
Phone:  (64) (3) 357 0766
Fax:     (64) (3) 359 4632
Email:  
b...@tait.co.nz
Post:     PO Box 1645, Christchurch, NZ


JH,
My guess is you are setting the interrupt latch rather then unmasking
the interrupt bit in IMASK. As you say the interrupt occurs whether
or not you transmit a word. You might also have another IO device
mapped to that priority. In that case, the other device may be
causing your ISR to run. What rev silicon did you get with you
EZlite board??

Regards
TD --- In , "hillho" <hillho@y...> wrote:
> Greetings,
>
> I'm receiving a constant interrupt when I turn on the Transmit
> interrupt. When I disable the transmitter I do not get the
interrupt
> so I think my IRQs and priority are right. I am opperating the
sport
> with an internal clock/ internal frame sync/ DITFS = 0 only frame
> when there is data. and Late frame sync.
>
> I'm getting a constant interrupt as soon as I turn on the
transmitter
> whether I transmit a single 16bit word or not.
>
> I would like a single interrupt after the TX buffer empties and is
> ready for the next word.
>
> Any Ideas?
>
> thanks
> JH