Hi,
We used the C6747 starter kits with AIC3106 codec, CCS v3.3, BIOS 5.33.05, PSP 1.30.01 and we were able to have our application sample and playing audio wave files successfully. We moved to our C6745 and AIC3007 codec and we resolved all the issues except this start up issue. We pinpoint the issue down (through audioMdCreateChan() and aic31CreateChan()) to McASP.C Mcasp_localActivateSmFsForXmt() where:
mcaspBitSetGblXCtl(instHandle, CSL_MCASP_XGBLCTL_XSMRST_MASK);
did not return.
When I load my application through CCS v3.3 JTAG, the first run start will have the lock up. However from CCS v3.3, I could restart the DSP (Debug->Restart) and run again then McASP is happy. The problem is my application has to boot from the bootloader. I can not restart the DSP unless from a cold boot with power on.
Please advice on what could be the root cause.
Here is my trace from UART that we dumped out before the application locked:
9:14:22.097> audioMdCreateChan
9:14:22.097> aic31MdCreateChan
9:14:22.097> << 0 0 1 // I2C write (<<) codec register, value, count
9:14:22.097> << 1 80 1
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> 8 0 1
9:14:22.097> << 8 c0 1
9:14:22.097> << 9 40 1
9:14:22.097> aic31SetSamplingRate
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> 2 0 1
9:14:22.097> << 2 6 1
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> 7 0 1 // I2C read (>>) codec register, value, count
9:14:22.097> << 7 0 1
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> 3 0 1
9:14:22.097> << 3 90 1
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> 66 0 1
9:14:22.097> << 66 2 1
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> 65 0 1
9:14:22.097> << 65 0 1
9:14:22.097> << 62 20 1
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> 3 0 1
9:14:22.097> << 3 92 1
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> 4 0 1
9:14:22.097> << 4 1c 1
9:14:22.097> << 5 52 1
9:14:22.097> << 6 80 1
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> b 0 1
9:14:22.097> << b 1 1
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> 7 0 1
9:14:22.097> << 7 80 1
9:14:22.097> aic31SetSamplingRate 0
9:14:22.097> aic31InitDac
9:14:22.097> aic31RegWriteBf
9:14:22.097> >> 7 0 1
9:14:22.097> << 7 8a 1
9:14:22.097> << 25 e0 1
9:14:22.097> << 26 6 1
9:14:22.097> << 29 42 1
9:14:22.097> << 49 8 1
9:14:22.097> << 2a 6c 1
9:14:22.097> << 2b 0 1
9:14:22.097> << 2c 0 1
9:14:22.097> << 2f 80 1
9:14:22.097> << 33 9 1
9:14:22.097> << 40 80 1
9:14:22.097> << 41 9 1
9:14:22.097> << 52 80 1
9:14:22.097> << 56 9 1
9:14:22.097> << 5c 80 1
9:14:22.097> << 5d 9 1
9:14:22.097> << 2c 0 1
9:14:22.097> channel creation is successful
9:14:22.097> aic31MdCreateChan done...
9:14:22.097> aic31MdControlChan
9:14:22.097> cmd: 139
9:14:22.097> GET_CODEC_INFO retVal: 0
9:14:22.097> DEV_match...
9:14:22.097> mdCreateChan...
9:14:27.222> mcaspMdCreateChan begin
9:14:27.222> calling mcaspInit
9:14:27.222> channelMode 0
9:14:27.222> isDataPacked 1
9:14:27.222> mcaspConfigureFifo
9:14:27.222> IOM_OUTPUT
9:14:27.222> AFSXCTL
9:14:27.222> CALLING mcaspRegisterInt // This the last trace before calling Mcasp_localActivateSmFsForXmt()
Thanks,
Dennis