This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WAVEDEV2\HWCTXT MCBSP Question

Other Parts Discussed in Thread: AM3505

I reviewed \WINCE600\PLATFORM\COMMON\SRC\SOC\COMMON_TI_V1\COMMON_TI\WAVEDEV2\hwctxt.cpp for McBSP sample codes. My system has 2 AM3505 processor back to back with McBSP2 for data communication interface.  From hwctxt.cpp, my understanding is the call back functions work as follow:

For data transmission:

1. I have a logical driver (LD) DLL initiates a transmission command
m_fnTxCommand(kExternalDrvrDx_Start, m_pCallbackData, (PortConfigInfo_t*)&m_PlayPortConfigInfo);
2. LD receives PopulateTxBuffer from BSP.  LD populates command data to DMA tx buffer.
3. LD receives TxCommand notification kExternalDrvrDx_Start.
4. LD receives TxCommand notification kExternalDrvrDx_Stop when the transmission is done.

For data receive:

5. LD initiate receive command during start up:
m_fnRxCommand(kExternalDrvrDx_Start, m_pCallbackData, (PortConfigInfo_t*)&m_PlayPortConfigInfo);
6. When data available, BSP invoke PopulateRxBuffer().  LD pass data back to application through
point to point message queue.
7. LD never stop input DMA during run-time.
8. LD stops input DMA during shutdown.

From the WinCE BSP ARM-A8 User Guide, I am thinking that should be able to use the I2S master and I2S slave default profiles for my 2 processors.  Please let me know if you have any inputs on this topic.  Also, do you see any misunderstanding on the data receive on items 5-8?

Thanks a lot,

Dennis

  • You should be able to use both master and slave profiles using McBSP indeed. This driver can be entirely configured by changing registry keys under mcbsp.reg. Comments in this file will help you sort out the keys you should adapt, but looking into the driver source code for those keys will probably help you a lot more understanding how it works.