• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
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

イイね!0件



今、あなたにおすすめ

ブログ人気記事

トヨフェスト (LS500/500 ...
LSFさん

MAZDA TRANS AOYAM ...
なみじさん

2025 ハチマルトヨタ北海道 春 ...
どさんこさん

よかった😅
dark1313さん

KYOJO CUP & INTER ...
yukijirouさん

すぐに新幹線 by c24セレナ
別手蘭太郎さん

この記事へのコメント

2020年12月10日 12:59
入力側は、基準クロックが異なるので、送信側の周波数と合わないことがありますね。
判定に、少し幅を持たせた方が良いかも(^^)
コメントへの返答
2020年12月10日 13:36
幅を持たせすぎると他の周波数の幅が犠牲になってしまう状態なので、動作を見てなるべくレンジの真ん中に持ってくる様にしつつリソース消費を最小限にする様にしてみました。DSD11.2MHzはレンジが3しか無いのでちょっと怪しいですがね。。。
意外と上手く動いてくれました。
2020年12月10日 20:11
エクセルの表を見落としてました。
流石です(^^)
コメントへの返答
2020年12月10日 23:06
いろいろ試してましたがエクセルでレンジ計算してもDSD5.6MHz とDSD11.2MHzは境目が難しいみたいです(^_^)
システムクロックの周波数上げないとダメかもですね。
2020年12月10日 23:14
BCLKを100mでカウントすると難しそうなので、
100mを分周して長めのゲートを作って、ゲートを開いている間のBCLKをカウントすると良いと思います(^^)
コメントへの返答
2020年12月11日 7:53
100mを分周する場合のシミュレーションをしました。
44.1KHzと48KHzが近いのでかなり低い周波数じゃ無いとバッファが持てない為 、systemclockの12MHzを15回分周して366Hz辺りが妥当と出ました。
366Hzをゲートにするとサンプリングレートが切り替わる時にラグがでるのと、カウント用レジスタがDSD11.2MHzの時に今より多く必要になってしまいます。
100MHzはMicroBrazeのシステムクロックとして使うので必ず必要で、15分周用の分周器が別に必要になりリソースも余分に必要になるので違う方法で考えてみます。

プロフィール

「@tomii さん>欲しいけど高い><」
何シテル?   03/21 21:21
灰道三です。よろしくお願いします。 グレー(灰)のストリートトリプル(道三)というバイクに乗ってます。 カーオーディオはハイレゾシステムの車載を進めてますが、...
みんカラ新規会員登録

ユーザー内検索

<< 2025/5 >>

    123
45678910
11121314151617
18192021222324
25262728293031

リンク・クリップ

ハイブリッド車の「整備モード」移行方法 
カテゴリ:その他(カテゴリ未設定)
2024/08/03 20:48:58
【デッドニング】天井の施工 
カテゴリ:その他(カテゴリ未設定)
2023/12/19 19:48:22
CAR MATE / カーメイト クロスライド Xride セーフティガード NS107 
カテゴリ:その他(カテゴリ未設定)
2023/10/25 14:08:50

愛車一覧

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

あなたの愛車、今いくら?

複数社の査定額を比較して愛車の最高額を調べよう!

あなたの愛車、今いくら?
メーカー
モデル
年式
走行距離(km)
© LY Corporation