Hi,
On OMAP-L138/C6748 DSP Experimenter Kit, I am running the following sample code:
CSL McAsp echo (c:\ti\quickStartOMAPL1x_rCSL\OMAPL1x\rCSL_examples\evmOMAPL138\DSP_examples\mcasp\)
in codec.c I have changed the following line to make it work in 16bit mode (the slot size is still 32 bits):
CODEC_FINST(codecPage0Regs.AUDIO_SERIAL_DATA_B, AUDIO_SERIAL_DATA_B_WORDLEN, BIT16);
The demo works as it is but I would need to change it. The simplest manipulation would be to simply divide the audio sample values to change volume.
After collecting the content of the receiving register (RBUF12) I got the following (without any division):
index type value address
[0] unsigned int 0x3FF6C000 (Hex) 0x00805000
[1] unsigned int 0x007AC000 (Hex) 0x00805004
[2] unsigned int 0x3FF78000 (Hex) 0x00805008
[3] unsigned int 0x007A4000 (Hex) 0x0080500C
[4] unsigned int 0x3FF6C000 (Hex) 0x00805010
[5] unsigned int 0x007A0000 (Hex) 0x00805014
[6] unsigned int 0x3FF70000 (Hex) 0x00805018
[7] unsigned int 0x007A4000 (Hex) 0x0080501C
[8] unsigned int 0x3FF6C000 (Hex) 0x00805020
[9] unsigned int 0x007A4000 (Hex) 0x00805024
[10] unsigned int 0x3FF74000 (Hex) 0x00805028
[11] unsigned int 0x007A8000 (Hex) 0x0080502C
[12] unsigned int 0x3FF74000 (Hex) 0x00805030
[13] unsigned int 0x007A0000 (Hex) 0x00805034
[14] unsigned int 0x3FF6C000 (Hex) 0x00805038
[15] unsigned int 0x007A0000 (Hex) 0x0080503C
If I understand it well, based on the ref guide, I have 2 slots (= 2 channels) in 1 frame. However, the values with odd index look different from the even ones (beginning with 00 vs 3F) and in both cases the 32 bit value has two 0-s on the left and then the 16 bit info seems to come but this format is totally not clear to me. Could anybody please clarify?
Thanks a lot.