0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

I2Sのフォーマット

Last updated at Posted at 2024-01-30

FreeBSDで使ってるAR9341のI2SがFN1242は鳴るのですが、PCM1796やAK4382が鳴らないので、調べてみました。

AR9341のI2Sは16Bitがデフォルトです。

image.png

ところが、PCM1796は24Bitがデフォルトでした。

image.png

I2Cで設定できるようなのですが、なんらかマイコンを使わなければいけません。

AK4382は24Bitしか対応していないようなので、鳴らすことは出来ないようです。

image.png

デフォルトがI2Sではないのでマイコンで設定しています。

FN1242は自動選択のようです。

image.png

VS1053も16Bitのようで、同じようにPCM1796やAK4382が鳴りません。

ちなみにAR9341のpcmドライバは本家にはなくて、ZRouter.orgのgithubの私のブランチにあります。

コード見直してみたのですが、直値でよくないですね。もう本家にマージできないので、まーいいですかね。

ちょっと勘違いしてたのですが、AR9341のI2C_WORD_SIZE = 0の場合はbit clockが32fsですが1の場合は64fsになるようです。64fsに16bit*2というデータでも良いようです。64fsにすればPCM1796やAK4382は鳴りました。この設定をsysctlで変更出来るようにしてみました。

dev.pcm.0.bclk64fs: 0

NewFile3.png

dev.pcm.0.bclk64fs: 1

NewFile4.png

デフォルトを64fsにしました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?