USBトランスポート(5)
せっかくVS1053が動いたので、念願のI2Sに挑戦する。
とは言ってもレジスタを設定するだけのようだ。
またソフトリセットでも影響があるようで、その後も設定するようにしておく必要があるようだ。
マニュアルにはこうある。
To enable I2S first write 0xc017 to SCI WRAMADDR and 0xf0 to SCI WRAM,
then write 0xc040 to SCI WRAMADDR and 0x0c to SCI WRAM.
つまり
WriteCMD(0x07,0xc017); /* Enable Addr */
WriteCMD(0x06,0x00f0); /* Enable data */
WriteCMD(0x07,0xc040); /* Enable Addr */
WriteCMD(0x06,0x000c); /* Enable data */
とすればよい。
やってみたのが、これ。
念願のI2Sの波形が出てきた。
観測した実測値と理論値は以下。
SCLK 650ns=1.538MHz 16bit*2ch*48KHz=1.536MHz
MCLK 80ns=12.5MHz 48KHz*256=12.288Mhz
まあ、あっているようだ。
前に記載していたが、このChipはサンプリング周波数を48KHzに変換して出してくる。
これはmp3でもwavでもそうなる。
仕様書を読むと
The I2S Interface makes it possible to attach an external DAC to the system.
はいいとして
Note: The sample rate of the audio file and the I2S rate are independent.
All audio will be automatically converted to 6.144MHz for VS1053 DAC and to the configured I2S rate using our high-quality sample-rate converter.
とあった。どうもオーディオ形式を一旦6.144MHzのレートにしてサンプルレートを変更するみたいだ。
192KHzよりは高速なので安心もするのだが...。
しかし、6.144MHzでも44.1KHzの整数倍じゃない。
まあ補完の精度はいいみたいだし、予測はされたことだし。
後はこれをS/PDIFに変換するのだが、チップワンストップの部品はまだ届かない。
コメントはありません