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

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

2016年07月17日 イイね!

クロックに手を出す

クロックに手を出すまたしばらく意味不明なブログとなります。m(_ _)m

今までの作業は以下の青線部分であるデータとLRCK(ワードクロック)に焦点を当てており、タイムアライメント付きのメモリバッファを経由する事で信号を作り直す回路を作成しました。
しかしながら赤線の基準となるクロックについては入力されたものをそのまま利用している状態です。






という事で赤線のクロック部分に手を入れることにしました。

一概にクロックと言ってもI2S信号では3種類ありMCLK(マスタークロック)、BCLK(ビットクロック)、LRCK(ワードクロック)と言われるものがあり、今回はMCLK、BCLKに焦点を当てます。

MCLKは一番大元のクロックにになり、精度を上げるとなると、PLLという回路でジッタを取り除くか、もっと高精度なクロックを外部から入力する方法しか無さそうです。BCLKはMCLKを分周すれば作る事ができるようです。イメージとしてはこんな感じ.↓







この手法が良いものか、そして効果的かもわかりませんが、今回はMCLKをPLLでジッタクリーニング、BCLKはクリーニングされたMCLKから作り直しという事をやってみたいと思いました。


MCLKはcombo384の場合22.5792MHz、24.576MHz、WM8805はLRCKの256倍になります。

入力されるMCLKだけでも4パターンあります。


MCLKをどのぐらい分周すればよいか軽く計算すると

COMBO384の場合
44.1KHz&DSD64のBCLK
44.1KHz × 64 ÷ 22.5792MHz = 1/ 8

48KHzのBCLK
48KHz × 64 ÷ 24.576MHz = 1/ 8

96KHzのBCLK
96KHz × 64 ÷ 24.576MHz = 1/4

192KHzのBCLK
192KHz × 64 ÷ 24.576MHz = 1/2

WM8805の場合
64 ÷ 256 = 1/4
※全レート同じ

こちらはMCLKの1/2と1/4と1/8の3パターンが用意できればよさそうです。

さて、PLLの説明を見ると以下の記載があります。


「入力クロックの周波数がわかっていること」とも読めます。

固定っぽい??

試しに弄ってみるも任意に変更できる気配なし、ちなみにこのFPGAにはPLLが2個しかありません。
このままコアモジュールを作るとなると少なくとも4つPLLが必要なのですが....(^_^;)

遥か昔、学生の頃の記憶を掘り起こすと、そもそもPLLって簡単に任意の周波数のクロックを作れるのがメリットと習った気がするんですが....

動的にパラメータを変更する事をダイナミックリコンフィグレーションというらしいのでGoogleで探したところ.....出てきました!( ´ ▽ ` )ノ




FPGAはメーカーからの資料がしっかりあるので助かります。
但し、情報量が多くて素人の私には手に負えませんが.....

読んでゆくと....



ここからダウンロードせよとのこと!

リンク先に行くと



なんかIDとパスワードを要求されます(^_^;)
その後は、同意を求められます。


なんだか厳重な体制をクリアしてやっとダイナミックリコンフィグレーション用のコードをダウンロードできました。

なんだか敷居が高そうです(^_^;)


続く.....かな?(汗






Posted at 2016/07/17 01:13:56 | コメント(8) | トラックバック(0)
2016年07月16日 イイね!

好きだっ〜たのよア・ナ・タ〜♪

好きだっ〜たのよア・ナ・タ〜♪どうも!

荒井由美です( ´ ▽ ` )ノ



ヘルメットもAraiです♪




今日は久しぶりにライトなブログです。
※本当はディープなブログを書く予定でしたが、例のブツが届いたので予定変更です。
横浜支店さんごめんなさいm(_ _)m


さて本題です。
私先ほどのAraiのヘルメットを使っておりましたが、劣化が激しく特にこの下の繋ぎ目が剥がれて走行中にバタつく状態になってしました。



しかも左右....

接着剤でつけておりましたがもはや限界!



で!!!買い換える事にしました。









個人的にAraiのフォルムは気に入っていたのですが届いたのはこちら!





























間違えた!(ノ_<)こちら









SHOEIの Z-7です( ´ ▽ ` )ノ



ちょっと渋めのグラフィック





数字はシックスナインでは無くゴックンです\(//∇//)\


まず軽い
荒井さん1.6Kg



笑瓶さん1.4Kg





200g違います。




そして一回り小さい!






SHOEIはデカイというイメージが覆りました。( ´ ▽ ` )



しかもこの少しの大きさと重さの差は実際に被ってみるとかなりの差なんです。





次に、ベンチレーションが良く効きそう!

荒井さんは旧モデルなのもあり単なる穴だけですが




笑瓶さんは空気の流れる溝があります。




さらにシールドのロック機構がいいです。
完全に閉める前はこちらですが



閉めるとシールドが後ろに引っ張られしっかり密閉されます。




最後に細かい部分ですが下のところがパンチングになってたりしてカッコいいです。




という事でお店ですすめられてすっかりSHOEI派になりました( ´ ▽ ` )ノ




ま、買ったのはネットですがwwww



一番の発見はヘルメットの箱がコイケヤのポテチのサイズと同じってこと!



では♪
Posted at 2016/07/16 08:01:48 | コメント(4) | トラックバック(0)
2016年07月09日 イイね!

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

サンプリングレートを判定するcombo384は以下の様に4ビット信号でサンプリングレートを識別出来る端子があるのですがSPDIF入力で使っているwm8805の基板にはその様なものはついておらず44.1Kか48Kか96Kかがわかりません。




そのままDACに送るだけなら問題無いのですが、タイムアライメントの遅延秒数をどのサンプリングレートでも維持するにはサンプリングレートを識別してディレイ値を任意に変更する必要があります。

と....いう事で下の赤枠部分を作ってみました。





判定方法ですがI2S信号のみで判定するのは少々難があるので、今回はFPGAボードに実装している100MHzのクロックを使ってLRCKがOFFの時に何個カウントするかで判定するようにしました。
DSD信号はデフォルトで2.8MHz固定にしてますのでメインはPCMのみ。

100MHzの周期は0.01μsになるのですが何回カウントできるか計算すると

44.1KHz=約1134回
48KHz=約1042回
96KHz=約521回
192KHz=約261回

それをさらに2進数に変換すると
1134=0100 0110 1110
1042=0100 0001 0010
521=0010 0000 1001
261=0001 0000 0101


下位5ビットを切り捨てて何となく範囲を持たせてみることにします。




回路はLRCKがOFFの時にカウントし、ONの時レート判定&レジスタ値書き換えをします。
サンプリングレートを表す3ビット信号との関係は以下の通り設計してます。

44.1KHz=001
48KHz=010
96KHz=011
192KHz=100
DSD64=101

テスト用にLEDの右3個に先ほどの値を表示させてチェックしてみます。ちなみに1だとLEDが光ります。


44.1KHz(001)




48KHz(010)




96KHz(011)




192KHz(100)



※間違えてたので差し替え...



DSD64(101)





初期の回路は安定性が悪かったのですが、もろもろ見直しをした結果、何とか動いているようです(^_^;)
これで入力を自動判定して遅延量の自動調節ができるようになりました。

ちょこっとづつ進んでおります。
Posted at 2016/07/09 16:05:12 | コメント(4) | トラックバック(0)
2016年07月07日 イイね!

サンプリングレート変換を使わないタイムアライメント(続)

サンプリングレート変換を使わないタイムアライメント(続)引き続き動作確認を進めておりましたが、192KHzだけなぜかオシロの表示がおかしい事がわかりました。

PCM44.1KHz




PCM192KHz


44.1KHzと比べると明らかに遅延量が違います。
何でだろうと思っていろいろ確認してみたら、マサカの設計段階で計算間違いをしてました.....(^_^;)



192Kは48Kの3倍で書いてましたが正しくは4倍
普通に考えても192/48=4倍なのになぜ3倍にしたんだろ....
こちらが正しい設定です↓




昨晩、修正したら192KHzは同じ遅延量になりました。




以上設計ミスってた〜(ノ_<)
というお話しです。

これで一応TA部分完成したっぽいです♪

でもまだ全てが終わった訳ではございません。
今日は七夕ですね。

短冊に「FPGAを使いこなせますように」と書いておきます。(–人ー)

続く


Posted at 2016/07/07 08:16:03 | コメント(0) | トラックバック(0)
2016年07月06日 イイね!

サンプリングレート変換を使わないタイムアライメント

サンプリングレート変換を使わないタイムアライメント最近忙しくて更新できておりませんでしたが、安心してください。


生きてますよ!( ´ ▽ ` )ノ



毎度読む人を置き去りにするブログが続いておりますが今回も仏血切りで置き去りにしますwwww

最近はトップ画像のI2Sフォーマットと戦ってます。

一応説明すると今作成してるのは赤枠の辺りです。


何をするかというとi2sまたはDSD信号を一旦メモリに格納しクロックに合わせて再度i2sまたはDSD信号に戻します。

ジッタ低減と読み出す際に遅延処理を行いタイムアライメント機能を実現する狙いです。

タイムアライメントについてですが、多くのカーオディオではサンプリングレートをPCM信号の固定レートに変換することでDSPの処理に関わるコストを削減しているようなのですが、DSDをPCMに変換できるチップが限られることと、せっかくDSDとPCM両方に対応しているのにサンプリングレートとフォーマットを変換しなければならない為、ネイティブな信号では無くなるなどハイレゾとしては少々微妙に思います。



灰)メーカーさんDSD対応ハイレゾナビ作ってくださいよ〜

メ)いやね...DSDソース持ってる人少ないし、DSP処理が複雑になるし、PCMにしちゃうと微妙だし、お金もかかるし面倒くさいし最近暑くてやる気ないし難しいのよ〜(´Д` )

灰)TAだけでいいのでお願いします。_| ̄|○

メ)やっぱりDSPとか捨てれないのよ〜(´Д` )

灰)しょっぼいDSP機能は使わないので捨ててくださいよ〜

メ)いや〜メーカーとしてはDSP機能を盛り込む必要があってですね.....ダッシュボード上設定とか....(;´Д`A


↑こんなやりとりがあったかは定かではありませんが、カーオーディオメーカーさんとしてもDSPとハイレゾの両立はビジネス的にも課題が多いのでは?と思います(^^;;


カーオーディオでごはんを食べていかない私は、EQやデジタルクロスの処理を捨ててピュアデータでタイムアライメントのみを実現する事を目指し、ノンサンプリングレート変換タイムアライメント(NSRC-TA)を実装する事にしました。( ´ ▽ ` )ノ



何だか某2輪の名車の様な名称ですが....




カーオーディオでは音場補正を重視してタイムアライメントとEQを駆使するデジタル派とピュアデータ再生を重視するアナログ派に分かれているようですが(元データは全てデジタルなんですがね....)、ピュアデータのまま音場補正を一部実現する「いいとこ取り」を目指してます。www


ちなみに現在彩速ナビで設定している右側0.9msディレイを基準に実現方法を考えてみたのですが、ハイレゾのクロックが2系統あるために周期が全く一致せず、諦めて設定値を44.1KHz/DSDは22.676μsの倍数、48K/96K/192KHzは20.833μsの倍数の2系統として実装することにしました。↓





メモリへの格納ですがFPGAボードに実装されているDDRメモリを使う事を考えたのですが、やや難解なのと色々調べているうちにFPGAの内部にもBlockRAMというメモリを持てる事がわかりました。
使える容量は少ないのですが計算してみたらTA程度なら充分そうでしたので使ってみる事に、内蔵しているものなので外付けのDDRメモリに比べ遅延も少ないのではないでしょうかね。


いざコーディングに移ると、すぐ出来ると思ってたのですが、音を出してみるとちゃんと出なかったり、ノイズや謎の事象が...(^^;;

ISEも不安定だったりして再起動したりで、ここ1ヶ月間はコードを書いて、検証して、消しての繰り返しでしたが、結局最後に判明した失敗要因はノーマークだったサンプリングレートチェッカーが誤動作してリセット信号がランダムにでていたのが原因だったというお粗末な有様です。(^^;;

まあ色々デバックしたりして、その他の誤動作の要因やエラーを減らしたり、無駄な回路を省いたりといろんな検証ができたのでよかったのかもしれません

試しにいろんなサンプリング周波数で1KHzの正弦波を再生してみます。


PCM44.1KHz




PCM96KHz






DSD64





どのフォーマットでも同じぐらいズレますね( ´ ▽ ` )

でも、期待値と違うんですが.....

まだ続きそうwww


------
同日早朝....寝ぼけた頭ではなく、寝起きの状態でよく考えてみたら1ms-0.094ms=0.906msとなりほぼ期待値である事がわかりました♪

オシロの時計も遅延がかかってる....(~_~;)
Posted at 2016/07/06 00:50:55 | コメント(6) | トラックバック(0)

プロフィール

「今年もよろしくおねがいします😊」
何シテル?   01/01 12:04
灰道三です。よろしくお願いします。 グレー(灰)のストリートトリプル(道三)というバイクに乗ってます。 カーオーディオはハイレゾシステムの車載を進めてますが、...
みんカラ新規会員登録

ユーザー内検索

<< 2016/7 >>

     12
345 6 78 9
101112131415 16
17181920212223
24252627282930
31      

リンク・クリップ

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

愛車一覧

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