• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

灰道三(はい!どうぞ)のブログ一覧

2020年12月10日 イイね!

FPGAでオーディオクロックを作る

FPGAでオーディオクロックを作るシエンタのシステムではMCLKとBCLKは入力のままで、LRCKだけリクロックしてました。
今回の基盤はここに外部クロックを入れています。


高精度な外部クロックでMCLK、BCLK、LRCKを作り出すのが目的です。

前回サンプリングレート判定回路と共にブロックデザインに入れていたクロック生成回路でMCLKとBCLKの出力を出せるようにします。




そもそもなぜサンプリングレート判定が必要かといいますと、MCLKとBCLKの周波数がサンプリングレートによって違うからです。
BCLKはMCLKを分周した値なので、回路記述をする前に、どのサンプリングレートの時にどれだけ分周するかを整理してみます。




PCM384KHzになるとBCLKはMCLKと同じですね(^^

サンプリングレート値は表のsrateで、5ビットの信号を使って定義して各ブロックに連携します。
ちなみに0ビット目は22.57MHzと24.57MHzの判定で、LUTに連結することで回路を節約できるようにしました。

簡単ですがコードを書きます。



case文でどれだけ分周するかを決めます。
分周しない場合はMCLKを出力です。


インプリメントしてオシロで確認します。
combo384をPCに繋いでこちらのソフトを起動します。




プルダウンからサンプリングレートを選択するとすぐ信号が変わるので試験に便利です。


まず44.1KHzから、赤いのがBCLKで黄色いのがMCLKです。
左下に周波数をでる様にしました。


48KHz


96KHz


176KHz




192KHz



352KHz





384KHz


DSD2.8MHz


DSD5.6MHz


DSD11.2MHz



合ってるかな?ぱっと見同じ画像だからわかりにくい....
PCM768MHzは対応して無いので試せず。

シエンタの回路はロジアナも無かったしオシロも古かったので大変でしたが今は楽ですね。
周波数自動計測とかしてくれるし手放せません。




Posted at 2020/12/12 11:25:15 | コメント(1) | トラックバック(0)
2020年12月10日 イイね!

FPGAでサンプリングレートを判定する

FPGAでサンプリングレートを判定する以前の開発でも同じ事を書いたのですが、今回はcmod A7-35Tを使って実装していきたいと思います。

とりあえずブレットボードに22.57MHzと24.57MHzの2系統のクロックとcombo384の出力でSDATA、LRCK、BCLK、DSDONを繋ぎます。



サンプリングレートを判定する理由は以下
・MCLK、BCLK、LRCKを高精度な外部クロックから生成
・サンプリングレートでTAのディレイが変わらない様にする

ザクッとブロックデザインを作ります。


サンプリングレートはLRCKで判定するんですが、DSD信号はLRCKにデータが載るのでDSDONのピンでBCLKを見に行く仕様にします。

判定回路とは別にBCLKのクロックジェネレーターと、動作検証用にCPUのMicroBrazeを入れてます。

レートの判定はLRCK(DSDはBCLK)の一周期で何回システムクロックをカウントしたかで判定しますがcmod A7-35Tは12MHzのクロックしか積んでいないので最大で11MHzの信号をカウントするには足りません。
なので一旦MMCMを使い100MHzまで逓倍します。
100MHzを元にバッファを考慮して判定基準を考えて見ます。


RTLで書くとこんな感じです。



カウントする信号の周波数が高くなるほど余裕が無くなりズレやすくなりますので実際に動かしながら修正した方がいいですね。

設計した回路をバイナリにして、先日紹介したXilinx Vitis 2020.2でMicroBrazeのソフトウェアを作ります。
MicroBrazeには信号をカウントするレジスタを繋げてあるので、USB経由でPC上のコンソールにリアルタイムに表示するプログラムを書きました。





実行するとこんな感じで出てきます。



やや安定度が良くないのでVivadoに付いているロジアナで調べてみます。

いろいろロジックを修正して直していきます。若干ケアレスミス発見。
いろいろ直しましたが、再生音源を変えて見ていくとDSDの5.6MHzがDSD11.2MHzで判定されるタイミングがある様です。

これは判定周波数が高い事による揺らぎが原因なので、少し判定のレンジを修正して、安定度を上げる仕組みを入れてみます。


判定出力を追加して安定した事が確認できました。カウンターは想定よりも前後に2ぐらいずれる場合がありますね。

こんな感じで機能ごとに作って動作検証してながら実装していきます。
オシロではピン出力を図ることはできますが、内部レジスタの動きまでは確認出来ないのでロジアナ機能は大変便利ですね。


次はブロックデザインに入れていた外部クロックからBCLKを生成するロジックを作ります。
Posted at 2020/12/10 11:12:43 | コメント(3) | トラックバック(0) | 日記

プロフィール

「ハイレゾカーオーディオ秋のオフ会 http://cvw.jp/b/1743868/48631494/
何シテル?   09/01 13:02
灰道三です。よろしくお願いします。 グレー(灰)のストリートトリプル(道三)というバイクに乗ってます。 カーオーディオはハイレゾシステムの車載を進めてますが、...
みんカラ新規会員登録

ユーザー内検索

<< 2020/12 >>

  12345
678 9 10 1112
131415161718 19
20212223242526
2728293031  

リンク・クリップ

筑西カーオーディオミーティングに行ってきました。 
カテゴリ:その他(カテゴリ未設定)
2025/06/30 21:24:18
ハイブリッド車の「整備モード」移行方法 
カテゴリ:その他(カテゴリ未設定)
2024/08/03 20:48:58
【デッドニング】天井の施工 
カテゴリ:その他(カテゴリ未設定)
2023/12/19 19:48:22

愛車一覧

トヨタ シエンタ トヨタ シエンタ
P80系からの乗り換えです。 スッと曲がるし、滑らかに加速するし、欲しい機能は付いている ...
トライアンフ ストリートトリプル トライアンフ ストリートトリプル
愛車です。 トライアンフは始めてですが、三気筒のエンジンフィーリングが素晴らしいです。 ...
トヨタ シエンタ トヨタ シエンタ
子供と妻の為にコンパクトでスライドドアのシエンタにしました。 前車も丸目インプレッサでバ ...
ヘルプ利用規約サイトマップ
© LY Corporation