Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Lars-Peter Clausen <lars@metafoo.de>
To: thomas chen <tchen61@gmail.com>,
	Clemens Ladisch <clemens@ladisch.de>,
	alsa-devel@alsa-project.org
Subject: Re: I2S frame configuration
Date: Tue, 09 Dec 2014 16:12:29 +0100	[thread overview]
Message-ID: <5487115D.9030001@metafoo.de> (raw)
In-Reply-To: <5486FE71.8090501@gmail.com>

On 12/09/2014 02:51 PM, thomas chen wrote:
>
> I have set up according to the thread.... but when I attempt to play a sound
> file (with aplay)
> the program just stop ....
[...]
>
> Seems like the something (maybe clock ?) is missing ???

Yes, most likely your SoC is not seeing the frameclock/bitclock.

>
> Thx
>
>
>
>
>
>
>
>
>
> On 12/8/2014 2:37 PM, Lars-Peter Clausen wrote:
>> On 12/08/2014 07:03 PM, thomas chen wrote:
>>>
>>> Thanks for the info... so it is possible for Asoc to handle such format...
>>
>> Yes, its not a special format, it is just plain and simple I2S like it is
>> supported by the majority of all drivers/devices.
>>
>>>
>>> So where does one specify number of bits in a FRAME/WORD (epsecially if we
>>> were to be master instead of slave ?)
>>
>> That's typically specified in the format that is used, e.g. in your case
>> SNDRV_PCM_FORMAT_S24_3LE. This is not necessarily ideal for all cases, but
>> has work well enough so far.
>>
>>>
>>> and, how does one specify number of bits to ignore (before the valid data)
>>
>> There are no bits to ignore the valid data. I2S has a delay of 1 bit clock
>> cycle between the first bit of the sample and the frame sync signal. So
>> the data bit that is transmitted on the same clock cycle as the frame sync
>> is actually the last bit of the previous sample. So in your case your
>> sample has 16 valid bits followed by 8 ignored bits.
>>
>>>
>>> and also how many valid bits (ie size of data word) ???
>>
>> You can set a snd_pcm_hw_constraint_msbits() constraint to tell userspace
>> that only a certain amount of bits are actually going to be used.
>>
>> If you are using ASoC you can do this by setting the sig_bits property on
>> your snd_soc_dai_driver.
>>
>> - Lars
>>
>>>
>>> Thanks...
>>>
>>>
>>>
>>>
>>> On 12/8/2014 12:01 PM, Clemens Ladisch wrote:
>>>> thomas chen wrote:
>>>>> I am working on a ALSA interface to a particular codec over I2S
>>>>>
>>>>> the audio stream format is a bit peculiar...
>>>>>
>>>>> there are 24 BCLK cycle between transition of FSYNC... howver, there
>>>>> are only 16 bit that are valid
>>>>>
>>>>> bit 0: ignore
>>>>> bit 1-16:   valid pcm data (MSB....LSB)
>>>>> bit 17-23: ignore
>>>> This is the 'original' I²S format.  The format where the sample begins
>>>> with the 1st BCLK usually is called left-justified (and uses the
>>>> opposite FSYNC polarity).
>>>>
>>>> Having ignored bits is common.  (Typically, there are 32 BCLK cycles per
>>>> sample.)
>>>>
>>>> In ASoC, this would be SND_SOC_DAIFMT_I2S and SND_SOC_DAIFMT_LEFT_J.
>>>>
>>>>
>>>> Regards,
>>>> Clemens
>>>
>>> _______________________________________________
>>> Alsa-devel mailing list
>>> Alsa-devel@alsa-project.org
>>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>>
>

      reply	other threads:[~2014-12-09 15:12 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-08 15:37 I2S frame configuration thomas chen
2014-12-08 17:01 ` Clemens Ladisch
2014-12-08 18:03   ` thomas chen
2014-12-08 19:37     ` Lars-Peter Clausen
2014-12-09 13:51       ` thomas chen
2014-12-09 15:12         ` Lars-Peter Clausen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5487115D.9030001@metafoo.de \
    --to=lars@metafoo.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=tchen61@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox