We did have these problems with the 21161 SPORT clock pins, the cause was
ground
bounce together
with slow rise and fall times - so don't be too hasty in adding RC networks
as
this would make the problem worse!
The best way is of course to use a high frequency storage 'scope to examine
the
clocks.
Alex Young
DSP software Engineer
Consultant for Philips Digital Systems Laboratories
To:
cc: (bcc: Alex
Young/LEU/PDSL/PHILIPS)
Subject: RE: [adsp] SPORT
input HANG
James Dabbs Classification:
<
23/09/03 20:49
ADSP SPORT clock pins are sometimes extremely susceptable to any harmonics
present in the active edge. I don't know about the 21161, but this is
definitely the case with the 2184 -- it can just lock up the part. If you
haven't already, you might try splicing an rc into the clock line.
-----Original Message-----
From: Jens Michaelsen [mailto:]
Sent: Tuesday, September 23, 2003 12:28 PM
To:
Subject: [adsp] SPORT input HANG
Hello group,
have this one remaining nasty behavior.
The DSP hangs waiting for IIS data on PORT0.
The loop works fine till it hangs waiting
for the next sample. The done counter may
reach several or only some thousands.
Have 2 ADSP21161 listening to the same
input stream. For the long run both fail,
one earlier than the other.
Everytime the DSP captures proper data I
get proper results. Memory test routines
did run for several hours with succes.
>>>>>>>>>>>My init
code snippet<<<<<<<<< #define GetIOP(addr) (* (int *) addr)
// SPORTx rx control
// 01000000 SPEN_B Enable Port B
// 00000800 OPMODE i2s
// 000001F0 SLEN 32Bit-1
SetIOP(SPCTL0,0x010009F0); // enable PORT
>>>>>>>>>>>My first
code snippet<<<<<<<<< while(1)
{
left = GetIOP(RX0B); // >>>hang here<<<<<<
right = GetIOP(RX0B);
done++;
}
>>>>>>>>>>>My second
code snippet<<<<<<<<< while(2)
{
while(!(GetIOP(SPCTL0)&0x10000000));//>>or hang here<<
left = GetIOP(RX0B);
right = GetIOP(RX0B);
done++;
}
Any clue??
ThanX
Jens Michaelsen
_____________________________________
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:
Other Groups: http://www.dsprelated.com/groups.php3
">http://docs.yahoo.com/info/terms/
_____________________________________
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:
ADSP SPORT clock pins are sometimes extremely susceptable to any
harmonics
present in the active edge. I don't know about the 21161, but this is
definitely the case with the 2184 -- it can just lock up the part. If you
haven't already, you might try splicing an rc into the clock line.
-----Original Message-----
From: Jens Michaelsen [mailto:]
Sent: Tuesday, September 23, 2003 12:28 PM
To:
Subject: [adsp] SPORT input HANG
Hello group,
have this one remaining nasty behavior.
The DSP hangs waiting for IIS data on PORT0.
The loop works fine till it hangs waiting
for the next sample. The done counter may
reach several or only some thousands.
Have 2 ADSP21161 listening to the same
input stream. For the long run both fail,
one earlier than the other.
Everytime the DSP captures proper data I
get proper results. Memory test routines
did run for several hours with succes.
>>>>>>>>>>>My init
code snippet<<<<<<<<< #define GetIOP(addr) (* (int *) addr)
// SPORTx rx control
// 01000000 SPEN_B Enable Port B
// 00000800 OPMODE i2s
// 000001F0 SLEN 32Bit-1
SetIOP(SPCTL0,0x010009F0); // enable PORT
>>>>>>>>>>>My first
code snippet<<<<<<<<< while(1)
{
left = GetIOP(RX0B); // >>>hang here<<<<<<
right = GetIOP(RX0B);
done++;
}
>>>>>>>>>>>My second
code snippet<<<<<<<<< while(2)
{
while(!(GetIOP(SPCTL0)&0x10000000));//>>or hang here<<
left = GetIOP(RX0B);
right = GetIOP(RX0B);
done++;
}
Any clue??
ThanX
Jens Michaelsen
_____________________________________
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:
Reply by Jens Michaelsen●September 23, 20032003-09-23
Hello group,
have this one remaining nasty behavior.
The DSP hangs waiting for IIS data on PORT0.
The loop works fine till it hangs waiting
for the next sample. The done counter may
reach several or only some thousands.
Have 2 ADSP21161 listening to the same
input stream. For the long run both fail,
one earlier than the other.
Everytime the DSP captures proper data I
get proper results. Memory test routines
did run for several hours with succes.
>>>>>>>>>>>My init
code snippet<<<<<<<<< #define GetIOP(addr) (* (int *) addr)
// SPORTx rx control
// 01000000 SPEN_B Enable Port B
// 00000800 OPMODE i2s
// 000001F0 SLEN 32Bit-1
SetIOP(SPCTL0,0x010009F0); // enable PORT
>>>>>>>>>>>My first
code snippet<<<<<<<<< while(1)
{
left = GetIOP(RX0B); // >>>hang here<<<<<<
right = GetIOP(RX0B);
done++;
}
>>>>>>>>>>>My second
code snippet<<<<<<<<< while(2)
{
while(!(GetIOP(SPCTL0)&0x10000000));//>>or hang here<<
left = GetIOP(RX0B);
right = GetIOP(RX0B);
done++;
}