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 |
|
SPORT input HANG
Started by ●September 23, 2003
Reply by ●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 ●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/ |