みなさん、いつもお世話になっております。
SDRAMを使用した装置を試作しています。
電源の瞬停や一時的な低下の対策としてマイコンには電源監視ICを外付けしてリセットが入るようにしているのですが、使用しているSDRAMにはリセット入力端子がないため特に対策をしていません。電源が不安定な時に装置の異常動作が発生しており、SDRAMが原因ではないかと考えているのですが、電源が不安定な時(電源復旧後も含め)にSDRAMの動作が不安定(暴走など)になる可能性はありますでしょうか。もし可能性がある場合、そのような状態からの復旧方法はありますでしょうか。
ご存知の方がいらっしゃいましたらお教えください。どうぞ宜しくお願いいたします。
m-ueno さん
SDRAMが不安定とのことで、原因枝があまりにも多いのですが、以前に経験した内容では発振器の不都合でSDARAMのデータ化けが発生したことがありました、SDARAMが不良という触れ込みであったのですが実際には発振子の不都合でした、これを信頼できる他のものに変更したら、良くなりました、m-ueno さんの場合には当てはまらないかもしれませんが。
IKUZOさん
アドバイスどうもありがとうございます。
原因は電源だけかと思っていましたので、発振子も原因になり得ると知り大変参考になりました。
どうもありがとうございます。
たいへんお世話になっております。
発振子について、信頼できる製品とできない製品はデータシートを見れば判断できることなのでしょうか。お教えください。
どうぞ宜しくお願いします。
一般にはPPMと言われる数値が低いほど、温度による周波数の変化が低いです
周波数精度は16MHzと言う表記より16.00000MHz等のほうが精度が高いと見ます
発振モジュールと比べて発振子を使用している場合、基板作成には注意が必要です
基板のパターンにより、12Pぐらいのコンデンサの容量が違ってきたりします、1MRや200Rの
固定抵抗も使用しているなら全体を含めた系の安定性が重要だと思います
合わせこむのが結構たいへんで、適当に発振モジュールに変えてみるのも1案かと思います
あまり私も専門分野ではないのですが、
たいへんお世話になっております。アドバイスどうもありがとうございます。
周波数が安定しないとSDRAMがデータ化けを起こす可能性があるのですね。
基板パタンや定数によっても安定性が変わるということで、発振子のデータシートだけではなく、実際に測定してみないと分からないですね。
実測したPPMがどの程度であれば安定していると考えられるのでしょうか。
どうぞ宜しくお願いいたします。
これまで使用したのは50PPM前後でしょうか、
これは温度安定性ですので、他に系のジッタ等の問題もあります
ジッタで検索されると、理解しやすいと思います
最近のマイコンでは内部CR発振器を使用できるものも出てきており
その場合ジッタが悪くなりますので逓倍等してSDRAM等の接続は不可能だと思います
ハードウェアを調べてみます。
SDRAMに関して内部の動作がクロックでコントロールされ他のデバイスと同期でき高速にできる程度の知識しかありません。よって、投稿を差し控えようかと思ったのですが、水晶振動子に関しては少し情報があります。
PPMは100万分の1を表す単位ではないのですか?温度特性と明確に書かれているのですが、50PPMだと常温周波数偏差ではありませんか?10MHzならの50ppmは±500Hzの製造バラつきがあると言うことでは? 安定性の話とは違うような気がします。狙った周波数とのずれがSDRAM誤動作に関わるかは良く分かりません。
水晶発振回路の安定性は、発振回路全体での負性抵抗と負荷容量と励振電力に大きく依存します。これらは水晶振動子だけでなく発振回路全体での話です。製品開発では、水晶振動子とマイコンとできれば量産基板を水晶振動子メーカ様で評価してもらいます。評価項目やそれぞれの意味合いなどを水晶振動子メーカ様からレクチャを受けたことがありますが、資料や詳細は機密事項に関わる可能性があるので書けません。インターネットを検索したところ、www.tamadevice.co.jp/solution.htm に解説があります。
ここからは余計なつけたしです。SDRAMだと100MHz以上ですよね?発振回路もPLLじゃないですか?基本の水晶発振回路の特性がそのまま影響すると思いますが、クロックは水晶発振回路からではなくてVCOからになります。負荷の影響はほとんどないと思います。このあたりのスピードだとPCBなどもかなり気を使って作らないとうまく動作しないと思います。
kijoさん
マイコン:V850E2/ME3
クロック:セラミック発振子 村田製作所製 CSTCE10M0G55-R0
を使用しています。
発振回路はマイコン内蔵のPLLで、10MHzのクロックを200MHzにしています。
SDRAMのクロックはマイコンのBUSCLK端子のクロックを使用しており、周波数は66MHzです。
PLLだとジッタが悪いということでしょうか。
私の勉強不足で申し訳ないのですが、アドバイスいただければと思います。
まずSDRAM側でのコマンド/データセットアップ時間、ホールド時間は満足できていますか?
次にCPU側でのリードデータセットアップ時間、ホールド時間は満足できていますか?
クロックに鈍りや肩、リンギングはございませんか?
HWから追うならこの辺りからつぶすべきかと思いますよ。
m-uenoさん
SDRAMの解析よりも電源を安定させるのを先にするのが簡単かも。
DRAM系は信号ノイズとかでも簡単にデータが化けちゃうので、なかなか解析が難しいんですよね。 私のセンパイの世代はDRAM系の解析にはデジタルオシロではなくて、わざわざアナログオシロを持ち出していましたね。 アナログオシロの画面に毛布を被せて、CRTに表示される光の点をつぶさに眺めて、時折「出たっ!」という叫び声をあげていました。 関連記事 : ednjapan.com/.../news002.html
解析する際も、オシロスコープのプローブを当てると、それだけで波形やタイミングが変わってきちゃうので、何を見ているのか分からないなんてこともあるんですよね。 その一方で今では、ダンピング抵抗や配線トポロジー、特性インピーダンスなど基板設計をちゃんとしていれば~500MHzくらいまでなら、基板シミュレーションなんかしなくても、問題なく動作するほど枯れている技術なのかなと思います。 ということで、いつ出るか分からないSDRAMの不良解析よりも、コンデンサ追加などで電源を安定化させてみるほうが先なのかなと思います。 電源が安定している状態で、マーチングやウォーキング、ギャロッピングなどのパターンでSDRAMのアクセステストを長期間してみるのがいいと思います。 可能なら恒温槽で温度を-20~60℃とか振るのがいいと思います。(とりあえずサンプル数は3台くらい) これでSDRAMが今回の不具合の原因である可能性が排除できたら、あとはロジック(ソフト)的なバグの可能性を疑うのがいいかもしれません。
みなさん百戦錬磨の技術者ですから、いろいろなアプローチがあるかとあるかと思いますけれども、、、 m-uenoさんの動物的なカン(現場の目)で電源が怪しいと言っているわけですから、そこを尊重してまずは電源から♡