[alsa-devel] About iMX6SL sign extension of SSI Receive Configuration Register (SSIx_SRCR)
Hi Nicolin and community,
iMX6SL reference manual section "48.9.8 SSI Receive Configuration Register (SSIx_SRCR)" says about sign extension.
Below is a quote from iMX6SL reference manual: ------------------------------------------------------------- Receive Data Extension. This control bit allows SSI to store the received data word in sign extended form. This bit affects data storage only in case received data is LSB aligned (SRCR[9]=1)
0 OFF — Sign extension turned off. 1 ON — Sign extension turned on. -------------------------------------------------------------
After I receive data (in the format of S16_LE) from SSI/I2S, I got data like 0x7FFF or 0x77d2. Are they supposed to be 0xFFFF or 0xF7d2?
After setting bit 10 (RXEXT) of SSIx_SRCR, I still get 0x7FFF or 0x77d2. -- Note: SRCR[9] is 1.
Any suggestions? Thanks.
On Mon, Mar 09, 2015 at 05:09:34PM +0800, Xuebing Wang wrote:
After I receive data (in the format of S16_LE) from SSI/I2S, I got data like 0x7FFF or 0x77d2. Are they supposed to be 0xFFFF or 0xF7d2?
After setting bit 10 (RXEXT) of SSIx_SRCR, I still get 0x7FFF or 0x77d2.
I don't have much detail information on it. But what I see a sign extension should only happen during some procedures like converting a 16-bit signed number to a 32-bit signed number. For example, the original number is 0x8000 (16-bit), then the result should be a 32- bit 0xFFFF8000.
However, you are still using 16-bit format and the sample data you provided looks like positive numbers.
You might need to read a 32-bit result from the Receive FIFO so as to get a 32-bit sign extended data.
participants (2)
-
Nicolin Chen
-
Xuebing Wang