投稿

ラベル(PSoC)が付いた投稿を表示しています

PSoC5LP Prototyping Kitで作るUSBオーディオI/F(I2S出力対応) その2

イメージ
  前回 、I2S用のビットクロックを作ろうとして、コンデンサと抵抗を外付けしてVCO(Voltage Controlled Oscillator)を作りましたが、今回はそれを分数分周器に置き換えました。そのため、アンプやI2S DAC以外の外付け部品は要らなくなりました(*´▽`*) ソースはこちら https://github.com/MinatsuT/USB_Audio_PSoC5LP_I2S ちょっと温度が変化したり指で触ったりするだけで周波数が変わっちゃう”なんちゃってVCO”と違い、安定した入力クロックを好きに分周できるので、 最初に、入力クロックがきっちり正しいと仮定して分周比を計算 その分周比でUSBホストからのSoF(Start of Frame)の到着間隔(1ms)を基準に、実際に出力されたパルスをカウント カウント結果を基に誤差を修正。出力周波数は分周比に完全に比例するので、修正値の計算も簡単! ということで、PC側で再生デバイスのサンプリングレートを変更しても、即座に追従できるようになりました・・・おぉぅ・・・(゜ロ゜)  (PCでサンプリングレートを変更したときのファンファーレがうるさくてすみません。。。) 生成しているビットクロックの周波数変動も殆ど無く、今まで上下にゆらゆら揺れていた再生バッファの溜まり具体もほぼ横一直線ヽ(´▽`)ノワーイ 分数分周器(Fractional Divider)  分周器と言えば入力されたクロックの整数分の1の周波数を作るものが一般的ですが、例えば入力クロックの3/5とか5/11に分周できれば、非整数倍の周波数を作れます。しかも、分母に与える数を大きくするだけで、簡単に精度が上がります。分母を32bitにすれば 43億分の1 ですよ奥様!ただし、例えば分周比3/5なら「入力クロックのパルスを5回に3回だけ通過させ、残りの2回は遮断する」という動作になるため、クロックが歯抜けになりジッタが増えます。なので、オーディオ用のクロックとしてはよろしくないんじゃないかと思って避けてたのですが・・・試してみたところ、私の耳ではジッタが生じてるのかどうか 全然分かりません でした(゜◇゜) まぁよく考えてみれば、I2Sのビットクロックはだいたい3...

PSoC5LP Prototyping Kitで作るUSBオーディオI/F(I2S出力対応)

イメージ
 PSoC5には CE95390 - USB Audio with PSoC 3/5LP というUSBオーディオの公式サンプルがありますが、32kHz 8ビット モノラルなんですよねー。ということで、これを96kHz 16ビット ステレオに拡張しつつ、内蔵の8bit DACだけでなく外部DACも利用できるように、I2S出力にも対応してます(*´▽`*)  前置きはいいからとりあえず鳴らしてみたい!という方は、下記のダウンロード先に最小限の説明があるので、それを見て試してみてね(●´ω`●) PSoC Creator用プロジェクトのダウンロード CY8CKIT-059(PSoC5LP) USB Audio with Internal DAC and I2S Dual Out 必要な部品 必須パーツ PSoC5LP Prototyping Kit(CY8CKIT-059) コンデンサ :C1(100pF), C2(1uF) 抵抗 :R1(100kΩ) オプションパーツ(無くてもOKです) I2S DACボード マスタークロックを自己生成できるのものが使えます。信号電圧が3.3Vならそのまま使えますが、5V駆動の場合はTopDesign.cysch内のI2Sコンポーネントの出力先を変更して、3.3V生成部分を使わずピン直接出力すればOKです。私は、PCM5102A搭載のちっこいボードを買いました(送料込み512円)。 Interface I2S PCM5102 DAC Decoder GY-PCM5102 I2S Player Module For Raspberry Pi 16x2 LCD(LCD1602) I2C接続で信号電圧が5Vのもの。よくあるArduino用のが使えます。繋いでおくと、Audio出力のON/OFF状態と現在の再生周波数が表示されます。 アンプボード アンプ内蔵スピーカーで鳴らす場合は不要ですが、私は持っていなかったので、お安いD級アンプボードを買いました(送料込み71円)。 new 1pcs PAM8403 mini 5V digital amplifier board with switch potentiometer can be USB powered スピーカー D級...