Reply by September 24, 20032003-09-24
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:

To Join: Send an email to

To Post: Send an email to

To Leave: Send an email to

Archives: http://groups.yahoo.com/group/adsp

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:

To Join: Send an email to

To Post: Send an email to

To Leave: Send an email to

Archives: http://groups.yahoo.com/group/adsp

Other Groups: http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/


Reply by James Dabbs September 23, 20032003-09-23
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:

To Join: Send an email to

To Post: Send an email to

To Leave: Send an email to

Archives: http://groups.yahoo.com/group/adsp

Other Groups: http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/


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++;
}

Any clue??
ThanX
Jens Michaelsen