先日、1kHz→ADC→フーリエ変換→スペクトラム→機器の性能評価 を行いました.
PCのMBDのaudio回路だとノイズが多くて何を測ってるのかよくわかんないのがオチでした.
ちゃんとしたAudio ADCを設計したので基板を発注しました.
3.5mm JACKからモノラル入力です.
その後の信号の流れはこんなです.
3.5mm → 6次LPF → ADC → DRAM → FPGA → COM → (PC → フーリエ変換)
3.5mm → 6次LPF → ADC → DRAM → FPGA → COM → (PC → フーリエ変換)
PCへのサンプルデータはUSB COMでトロトロと送ります.
サンプルデータは4Mbit DRAMへストアします.60kHzぐらいでサンプルすると、16bitで5秒弱ぐらいストアできます.フーリエ変換するには十分なデータサイズです.
サンプルデータは4Mbit DRAMへストアします.60kHzぐらいでサンプルすると、16bitで5秒弱ぐらいストアできます.フーリエ変換するには十分なデータサイズです.
JLCPCBはいつもよりももっとイミフな低価格でした.たったの$3.
ANA系列のOCSという国際運送会社にて、運送料がどうして$1なのか?
ADCは秋月で売ってるPCM1808です.16bit 96kHz デルタシグマ.
ハイレゾの上位とまでは言えないけど、ちゃんと作ればハイレゾの中位ぐらいのperformanceを発揮してくれるでしょう.
サンプルデータの一時蓄積メモリは、4Mbit DRAMです.
秋月で売ってるHM514100CというDRAMであり、SDRAMではありません.discon品の在庫処分みたいです.10個ぐらい買っておこうかね.わたしはDRAMを自分で動かした経験がないんで、refreshなどはやってみりゃ出来るでしょ、といったところです.
ZIP packageというものはマシンも人も幸せにしないと思います.
最初の検討でSDRAMを使おうとして、しかしSDRAM cotrolerを自作する気なんかないので、XILINXのSpartan6のメモリコントローラの仕様をチェックしてたら、DDR SDRAMだけしか対応しておらず、非DDR SDRAMは非対応でした.ぎゃふん.
FPGAには、I2S、UART、DRAMコン、overflow checkなどをやらせます.
Spartan3が載った中華基板です→こちら この基板をピンヘッダで挿して動かします.
Spartan3が載った中華基板です→こちら この基板をピンヘッダで挿して動かします.
半導体不足のせいだと思いますが、この基板はもう売ってないみたいです.安くて便利だったので残念です.
先日発注したヘッドホンアンプ基板は中国から輸送中です.
メモリ選択をDRAMとは、修羅の道を選ばれていますね。
返信削除これデータバスが1ビットなので、スピード間に合いますか?
自分ならSRAMで4~500円台のを選択します。
これなら直接アクセスできるので何も考えずにバスを接続するだけで設計が終わります。
DRAMの基本なのはネットを探せば基本シーケンスのサンプルを見つける事ができると思いますので、がんばって設計してください。
あれ?このICは5Vですが、最近のFPGAは基本3.3Vじゃないですか?
(使用予定のFPGAは5V-IC直接接続できますか?)
4Mbit必要なところ、秋月のSRAMは1Mbit品までしか売ってないんですよ.それでDRAMにしました.
削除スピードはOKです.
>使用予定のFPGAは5V-IC直接接続できますか?
おっと、トレランス調べてなかった.
フツーのICの作法通りで無問題でした.
いまどきのパソコン関連ICで5Vスイング品って流通してるのかな?
削除理由は指摘の通り5Vトレラントが面倒なので敬遠されるからベンダーが出さなくなって久しいという事情.
DRAMで5Vスイングしてたら骨董品を発掘したみたいで逆に感動します、わたしは.
1年ぐらい前に中華通販のXtal発振器で、3.3V電源だと3Vスイング、5V電源を与えると5Vスイングというのに出くわして、「わぁお」と思ったことがありました.
最近ルネサスが5Vと接続できるプロセッサーを発表しています。
返信削除ターゲットは車載用のデバイスだったかな?
一般のICは省エネ、高速化対応で低電圧が進んでいますが、車載用はノイズ対応等を考えて5Vで行くつもりみたいです。
DRAM側のVinレベル大丈夫ですか?
レベルが足りないとプルアップ抵抗でがんばってもらう必要があります。
あと、FPGAのバッファだとアンダー/オーバーシュートが発生してデータ化けが発生する場合がありますので、確認はきっちりとやる事をお勧めします。
オシロスコープがなくても正弦波をライト、リードしてD/A出力すれば耳で確認できます。
1ビットのずれや、化けでもノイズとして聞き分ける事ができます。
>5Vと接続できるプロセッサー
削除それは安心な.
Bit Clockって数MHzなんですよ.
速度がとろとろなのでデータ化けで窮する場面は無いと大船にのったつもりでいいでしょう.
>4Mbit DRAM
返信削除私は、
「Z80で、64kbit の DRAM」
ならば、作ったことがあります(いつの時代だよ。容量6ケタも違うじゃないか・・・)
※気の利いた奴だと「IC内部で勝手にリフレッシュする」のがあったと思いますが、これは違うのかな?
SDRAMだと、最近は何処かにサンプル(標準のFPGAプロパティ)が、ありそうですが、こういうのは無いかな。
※私が作るとしたら、「チップ数が増えても」SRAM使うかな。リフレッシュのタイミングで、「サンプルロス」したら、元も子もないので。
(まぁ、オーディオ帯域位なら、そんな心配はないか。高速ロジアナとかは、フロントエンドに「コレでもかという位」SRAM積んでますね。)
>Spartan3
こんなのまだあったのですか。Spartan3って、2000年代初頭ですよ。
とっくの昔に、Disconじゃなかったかな。(これのインターフェースの付録の基板が、私のジャンク箱のどこかにあったハズ。結局、未使用のまま死蔵されてます。)
遅いとはいえレートが決まってしまっているのでリフレッシュと競合するかもなのでPCBが来たらなんか考えます.FPGAのFIFOに貯めてとかなんとか.
削除Spartan3Eは90nmだそうです.ふるー
3Eもディスコンかもしんないですね.
>レベルが足りないとプルアップ抵抗でがんばってもらう
返信削除秋月に、5V⇔3.3V の、レベルシフタICあったハズです。
(さすがに今の時代、I/O駆動系以外で「プルアップ・プルダウン」は、危険だと思います。MHzオーダーで、それやったら、もうナニやってるかわかりません。)
SOT-23のようなちっこい汎用ゲートを使わざるを得ない場面がたまにあったりしますね.
削除>秋月で売ってるHM514100C
返信削除いま、Datasheet見てみましたが、アドレス線が増えただけで、昔からある、
RAS / CAS アクセス型の DRAM
ですね。この形式だと、リフレッシュって言っても結局、
・定期的に、アドレス(A0~A9、順次インクリメントする)与えて、RAS イネーブルする
だけですね。これを、「データアクセスと、競合しないタイミング」で、行うだけです。
(Z80 は、それ用の「専用カウンタ」を、内部に持っていたので、CPUが空き時間で勝手にやっていた。)
※あんまり進化してないなと思ったら、これ「日立」ブランドだし、多分20年くらい前の仕様ですね。(秋月の写真の刻印が、97 40 (1997年 第40週(9月位)になってるので、どっかの「不良在庫」を格安で入手したのかも知れません。)
>Z80 は、それ用の「専用カウンタ」を、内部に持っていた
削除なつかしー、MZ-80の世界線へ
>多分20年くらい前の仕様
かけそば、ってかんじです.
SDRAMみたくかったるくないのである意味で貴重品かも.
10個ぐらい買っときます.
さっき、timing chartを眺めていて、RAS→CASの間隔は50nsぐらいでやれという制限があるんですね.1000nsとかだと動かないらしいです.ふ~ん、、、そうゆうもんなんだー
削除>RAS→CASの間隔は50nsぐらいでやれ
削除マニュアルちゃんと読むとわかりますが、読出しモードが色々あるので、
「規定時間内に、アドレスを与えないと(アドレス線は、RAS/CAS兼用なので)」思わぬモードに入ったりします。
・RASを一回与えて、次にCASのみ連続して与えるモード(PageMode、同一ページ内なら、連続読み込みが早くできる)
・Hidden Refresh Mode (読出しサイクルの裏で、「隠れて」リフレッシュサイクルに移れる)
などのモードがあります。
※電気的特性を見ると、これ一個当たり「1W」くらい、消費電力がありますね。これだけで、凄い発熱しそうです。
(確かに、メモリの発熱って馬鹿にならないんだよな・・・)
>規定時間内に、アドレスを与えないと思わぬモードに入ったり
削除ダイナミックですなぁ、なにもかも
>一個当たり「1W」
あのpackageでフルスピードアクセスしたらきっと熱いですよね.
でもこのメモリって、
削除・「8個」で、たった「4MByte」なんですよね・・・ (しかも、これで「8W」喰う)
※イマドキのPCのメモリが、少なくても「8GB」って考えると、「何それ?」って感じです。
そう考えると「ラズパイに、アプリ乗っけたほう」が、早くて安くなっちゃうのも、うなずけますね・・・ 恐ろしい時代だな。
MP3のオーディオファイルが1つ入るぐらいしかないですね.
削除しょぼ
初めまして。床暖房で検索して、その後時々ブログ読ませて頂いております。先日偶然プロフィール(かそれに類するエントリー)を読ませて頂き、とてもなつかしく思いました。DIR-1000からDTF, DTF2までずっと使わせておりました。技術者の方にも来て頂いて遅くまで議論させて頂きました。当時ヘリカルスキャンのテープがリニアに負けてしまって、SONYの方共々大変残念に思ったのを思い出しました。
返信削除それはよろしくですー
削除床暖房は円満に動いています.
>DIR-1000からDTF, DTF2まで
とすると、、、三鷹の方面でしょうか???
いやいや詮索はせず...
わたしは最後のヘリカルまでやりましたが、
ヘリカルがリニアに負けた本質原因は、ヘリカルのテープとヘッドの接触が「点接触」だった点に集約されます.
リニアのテープヘッド接触は「線接触」です.
線接触のリニアはマルチヘッドが得意.
点接触のヘリカルはマルチヘッドが苦手.
computerでは転送レートが重要視されますので、どうにもならなかったですね.
返信ありがとうございます。三鷹方面ではありません。北関東です。点・線は記録方向の事ですか?Sonyのサーボ技術が凄すぎて他社が同等品を作れなかったので普及しなかったのだと思っておりました
返信削除点・線は記録方向で合ってると思います.
削除サーボはダイナミックトラッキングヘッドを作れるのはもしかしたらソニーだけだったかもしれませんね.
DRAMはある意味コンデンサの塊と考えてください。
返信削除時間がたつと放電してしまって、記録したビットを忘れてしまいます。
忘れないように時々どいついてやるのがリフレッシュ・・・・と教わりました。
今はD-FFが大量にあるので、完全同期設計が基本ですが、昔はD-FFが少なかったので、ANDやORした出力をそのまま出力したりしました。
結果としてひげのような信号が出力されて、トラブルになった事があります。
あと、通電直後にデータを書き込むような設計をすると最初のアクセスが正常にできない場合があります。
対策としてダミーサイクルが必要・・・・と仕様書の隅に小さな文字で書かれている場合があるので注意してください。
今思い描いているカラクリは、
削除refresh rate > audio rate なので、
refreshシーケンサを常時ぐるぐる回しておいて、audio dataのアクセスが生じた際に同シーケンサを脇道に逸らすというものです.
どのみちランダムアクセスはしなくて、シーケンシャルアクセスしかしないので、これでいいんじゃね? という予想です.
>ADCは秋月で売ってるPCM1808です
返信削除これ、1個 ¥90(税込) なんですね・・・
(なんという、破格の値段。これで「ハイレゾ」しかも「ステレオ」って、信じられないですね。)
なんか、自分も作りたくなってきた。
Raspberry Pi 4 余ってるから、なんか作ろうかな。
ラズパイオーディオというジャンルもあるくらいですからね.
削除ラズパイにはI2S interfaceが備わっているのでPCM1808を取り付けるのはhardware的には楽ちんみたいです.