Am using Griffin SC589 to receive A2B data over Sport0B. A2B data is coming from Accelerometer sensors (14 bit data from each accel) to Griffin Sport via TDM lines. Total 4 accels are connected on the wire.
Sport is configured for 48KHz Frame Sync, 25 MHz Clock, Right Justified Sign fill with 32 bit word Length (TDM16 D32) or Right Justified Sign fill with 16 bit word Length (TDM32 D16)
TDM is configured as TDM32 Data 16 to Sport 0B. However I could hear some extra noise of 10db on Sport Slot 1,2 and 3 (last accel sensor data coming on Slot 1,2,3) and also on Slot 4,5,6 (last before accel).
When i configure the same TDM for TDM16 Data 32, am seeing issue is only with Slot 1,2,3 ( last accel).
Also when i reduce the accel number from 4 to 3, then issue moves from Accel 4 to 3 while configured as TDM 16 Data 32. This shows issue is not with accel sensor but always staying with starting slots of Sport.
There is no noise if TDM is probed at master A2B transceiver which drives data to Sport 0B DMA. This also confirms there is a problem in data sampling or the way data clocks into Sport DMA.
My question is, do we need to take care of any bit delay while sampling sport incoming data as actual data from accel is just 14 bits. Since Sport is configured for 32 bit length while using TDM16 data 32, am doing left shifting to get correct data at DSP.
// Configure SPORT0B (receive) for Multichannel (TDM) mode
SPORT_MODECONFIG(0,B,ENUM_SPORT_CTL_RX); // SPORT0B is a receiver
SPORT_CLOCKCONFIG(0,B,ENUM_SPORT_CTL_CLK_RISE_EDGE,ENUM_SPORT_CTL_EDGE_FS,ENUM_SPORT_CTL_FS_REQ); // rising-edge sampling, edge sensitive Fs, Fs required
SPORT_DATACONFIG(0,B,16,ENUM_SPORT_CTL_RJUSTIFY_SFILL); //16-bit word length, right-justified with sign fill
SPORT_DATACONFIG(0,B,32,ENUM_SPORT_CTL_RJUSTIFY_SFILL); //32-bit word length, right-justified with sign fill
** Select the multi-channel mode of the SPORT
SPORT_MULTICHANNELCONFIG(0,B,16,0,ENUM_SPORT_MCTL_EN ); // 16 slots/channels, 0-bit delay between Fs and channel 1 (MFD = 1), multi-channel enable
SPORT_MULTICHANNELSELECT(0,B,SLOT_MASK(A2B1_TOTAL_SLOTS) ); // channel slot mask (1-enable)
In short data before Sport0B looks good but data after sampled into DMA buffer have extra noise on beginning slots. What could be wrong? Can you suggest.