SDRAMプロトタイプとプロダクションの問題


11

ISPCのSDRAMモジュール(IS42S32800D)とLPC1788を使用したデザインがあります。これは32ビットインターフェイスです。

このデザインをルーティングし、6層のプロトタイプを行うPCBメーカーでプロトタイプを作成しました。プロトタイプPCBは正常に動作します。次に、通常のPCBサプライヤーから少量のバッチ(100)でPCBを製造することを考えました。私のプロトタイプが問題がないことを確認するために使用した情報をまとめました。

しかしながら!制作ボードに大きな問題があります。最初は、プロトタイプボードで使用したのと同じコードで、SDRAMからの応答を上げることができませんでした。以前のボードは120Mhzで動作していたので、この新しいボードに問題があると確信しました。次に、SDRAMデータラインでリピーターモードの使用を提案した投稿を見つけました(以前は使用していませんでした)。これにより、SDRAMから応答がありましたが、安定していません。16個程度のアドレスに書き込むことができますが、その後の読み取りで返されるデータ(すべてのアドレスで)は、最後に書き込んだデータです(おそらくリピーターモードが原因です)。リピーターモードを無効にすると、返されるデータは0xFFFFFFFです。私は48Mhzで接続しようとしています。これは、タイミングの最も低い構成です。

両方のボードで22オームの同じ終端抵抗(データライン上)を使用していますが、データラインは平均3cmです。時計のラインは2.4cmです。住所行は平均3.8cmです。

これも仕様外ですか?クロックが大幅に短い場合、クロックを長く遅延させる必要がありますか?これらのボードのシームレスな製造を希望していた設計については何も変更していないので、私は本当にここで立ち往生しています。

Maximum Data Line Length: 59mm (Although this includes the branch to the NAND Flash)
Minimum Data Line Length (Ctrl to Res): 18mm
Maximum Address Line Length: 44mm
Minimum Address Line Length: 24mm
CLK: 24.5mm
CKE: 25mm
CAS: 28mm
RAS: 28.7mm

以下は、元の(動作する)プロトタイプのPCBスタック構成です。 ここに画像の説明を入力してください

これは、生産(機能しない)PCBのPCBスタック構成です。 ここに画像の説明を入力してください

SDRAMのルーティングは次のとおりです。 SDRAMルーティング


3
インピーダンス制御はプロトランと本番稼働で同じでしたか?
dext0rb

私はわかりません。ボードハウスのこれらのパラメーターを適切に定義するのに十分なシグナルインテグリティについては知りません。私が何をしているのかわからないパラメータを指定した場合、問題を修正するのではなく、問題を起こすと感じました。
ジェームズ

そして、あなたはインピーダンスを検証するためにそれらを払ったのですか?
ブライアンカールトン、2012年

重要なのは平均の長さではありません。グループ内の最小値と最大値です。
ブライアンカールトン

1
クロックトレースのシグナルインテグリティはどのようにSDRAMピンを調べますか?
ブライアンカールトン、2012年

回答:


10

それはひどいスタックアップです。コアは0.2 mmで、厚みのバランスは、レイヤー3と4の間のプリプレグ内にある必要があります(内部1と内部2)。

これは、トレース上のすべての信号について、その直下のプレーンにリターン電流パスが必要なためです。プレーンのリターン電流は、インダクタンス(ループ面積)を最小限に抑えようとします。つまり、信号トレースの下を追跡しようとします。信号トレースが平面から離れている場合、他のトレースを調べて戻りパスを見つけます。これはあなたが戦っている電磁気です。

さらに、内層を参照面から異なる距離に配置することで(すべての電源レールがACのグラウンドのように見えることを忘れないでください)、外層の距離と比較して、層を交換するたびにインピーダンスの変化を作成します(ただし、これはトレースの幅が変化しますが、問題が発生するのは1回だけです)、クロストークやその他の干渉の可能性が大幅に増加します。

チェックする必要があるもう1つのことは、使用されている材料です。たとえば、「FR-4」と呼ばれる20を超える異なる材料があります。私が通常使うものは370-HRと呼ばれています。100〜500 MHzの高速信号で非常によく動作します。

クロックラインについては、すべてのアドレスおよびデータラインが安定した後、エッジが最後に発生するように(最後のトレースが1 cm長くなるように)クロックをセットアップしていた最後のSDRAMデザインのIIRC。だから、はい、時計を遅らせることは試す価値があります。SDRAMラインのインピーダンス制御は必要ありませんでした。

終端抵抗は、ラインドライバーのできるだけ近くに配置する必要があります。それらが約0.5 cm以内にない場合、それら自体が反射を引き起こし、オーバーシュートとリンギングを引き起こす可能性があります。私見、3 cmのトレース長は、終端抵抗が必要なほどひどく短いです(私は6〜10 cmから始めています)。取り出してみましたか?

確認すべきもう1つのことは、プレーンです。プレーンカットと交差する信号トレースがありますか。これは、帰路電流がカットの周りに長いルートをとるよう強制するため、非常に大きな問題です。

最後に、これらの設計ではエッジレートが大きな問題です。多くのチップは、立ち上がり時間と立ち下がり時間が不必要に短いため、クロック周波数を下げても影響はありません。これらの高速エッジは、反射を作成するのに最適です。これは、22オームのターミネータ抵抗器が修正しようとしているものです。エッジが遅くなります。ただし、実際にプッシュする場合は、Mentor GraphicsのHyperLynxなどのツールを使用して、最適な終端設計を見つけることができます。

これらすべてをカバーする私があなたにお勧めできるいくつかの本、そして私たちは仕事でそれらを誓います:

これらの本は、EMI低減、シールド設計、PCBスタックアップ、インピーダンス制御、電源デカップリングなどをカバーしています。さらに、オット氏はこのトピックに関するセミナーを教えています(彼の本の無料コピーが付属しています)。


Henry Ottの本は1980年に私に聖書です。しかし、私がそれを読む前に、EMCテストが始まる前に、機械的/電気的設計におけるRF漏れを見ることにすでに熟練していました。スロット、ラジエーター、誘電体アンテナ、I / Oバスケーブルは、入出力に最適なアンテナでした。
Tony Stewart Sunnyskyguy EE75 2012年

ここでの良い情報、入力したシミュレーションデータに基づくHyperlynxシミュレーションによると、22オームの抵抗が必要です。それ以外の場合、SDRAMからのデータライン(1nsの立ち上がり時間で駆動)の波形はひどく歪んでおり、一部の反射が基準電圧と交差しています。
James

また、スタックアップの推奨事項は良好です。プロトタイプとメーカーのスタックアップには、わずかな違いがあります。あなたが見られるように質問に図を追加します。また-私は、Eric Bogatinによって簡略化されたシグナルインテグリティを読んでいます。ここでは良い情報ですが、彼の推奨事項で新しいボードレイアウトを開始するのに十分な時間をかけて消化します。
James

その価値については、OPは元々Altiumの写真のように見えました。Altiumには、IBISファイルを使用できるシグナルインテグリティツールの独自のセットがあります。クロストークを調べることもできます。ただし、これを行うには正確なスタックアップ情報が必要です。
ajs410

1
この時点で、私は抵抗器について最も心配しています。彼らは彼らが属しているドライバーではなく、痕跡の真ん中にいるようです。これらのアプリケーションでは、抵抗器パックを使用せ、代わりに小さな個別の抵抗器を使用するのが最善です。あなたが抵抗パックを使用する必要がある場合、あなたは何をする時間を取る必要があり、多くを経由して、狂気レスレイアウトを作るために抵抗を交換するより良い仕事を。これが、パッケージのアウトラインがなく、レイヤーの半分が見えにくいレイアウトからわかるすべてのことです。
Mike DeSimone、

4

このような頻度では、トラックの長さのタイプの問題は、確かに遅延の問題では、大きな問題になる可能性は低いと思います。新しいPCBで問題が始まったので、最初に行うことは、すべてのラインの導通をテストし(回路図にエラーがある場合は、回路図ではなくデータシートに対して)、すべてのピンを調べて波形があることを確認することです最も妥当性が低い-たとえスコープがタイミングの詳細をチェックしていなくても、オープンまたはショートしたピンがあるかどうかはかなり明白です。

適切なスコープなしでこの種のことを行うことは、潜在的な危険に満ちています-どのくらいのマージンがあるかをどのようにして知るのですか?それが機能しても、許容範囲、温度、または月の満ち欠けが原因で、フィールド/生産の障害に対して脆弱であるかどうかをどのようにして知ることができますか?


2

2番目の追加設計はマージンテスト済みであり、コードは質問に最適であると想定しました。(ではありません)以下を確認することをお勧めします。

  1. IOを構成して高速スルーを行い、入力フィルターを無効にする
  2. クロックで入力モードを有効にする
  3. SDRAMインターフェイスピンのスルーレートを上げるためにスルービット(9?)を設定します。
  4. リピーターモードは、双方向であり、CMOS入力にフローティングのままにしてはならないため、有効にします。
  5. 電源電圧を変更して、エラーに対する感度を決定します。
  6. データバスピンのデフォルトのリセットモードは、FUNC = 0X00、MODE = 0X02、HYSTERESIS = ENABLED、INVERT = DISABLED、およびSLEW = STANDARDです。
  7. 新しい関数値を使用してPINSEL_ConfigPin()を呼び出し、MODEをINACTIVE(プルダウン/プルアップ抵抗なし)にリセットし、HYSTERESISをオフにしますか?
  8. for / nextループまたは次のような離散コードを使用していますか。

    • LPC_IOCON-> P3_0 | = 1; // D0 @ P3.0
    • LPC_IOCON-> P3_1 | = 1; // D1 @ P3.1
    • LPC_IOCON-> P3_2 | = 1; // D2 @ P3.2など
  9. 必要なときに毎回、WEピンを再度有効にするようにアサートしますか?
  10. 使いますか?* pPIN&=〜(0x00000007); //機能ビットをクリア "

私は、地震学のポータブル記録、切り替え可能なタイマーロジックボードのために、物理学の大学院生の私の最初のCMOSデザインをデバッグしたことを覚えています。ファームウェアやuCはありませんでしたが、彼は最悪の場合の許容範囲の分析を行ったことはなく、自分で12枚以上のボードを作成してデバッグしたところ、ハードウェアはあらゆる場所で競合状態にありました。地震学教授が物理部長を引き継ぎ、ボードをデバッグできない理由を尋ねたところ、コンポーネントの変動により、準安定状態と使用されているクロックエッジに起因するタイミングレース状態と呼ばれる多くの設計上の欠陥が明らかになった。それでも彼はまだ理解していませんでした。それから、手を上げているときに開いた指の数を、腰が低い位置から高い位置に達する前に何本指を伸ばしたかを尋ねました。それから彼は言った、あなたはそれを行うことができず、正しい答えを期待することはできません。私は正確に言った。それは原始的な競合状態です。複雑さのレベルが高くなると、それらはわかりにくくなります。マニトバのU 1973。

1番目の追加:どのバス終端方式を使用しましたか? バス 方法(1)が推奨されますが、1.25Vdcはクリーンですか?


  1. これらのボードのICTの支払いはありましたか? ベアボードテストは必須です
  2. ガーバーレイアウトの指示でインピーダンスを指定しましたか?
  3. レイアウトで許容差のあるシミュレーションを実行しましたか?
  4. ボード上の誘電率とプリプレグの層数により、トレース幅とギャップとともにストリップラインとマイクロストリップのインピーダンスが制御されます。

    ストリップラインのための多くの無料のオンラインZ計算機があります。

    大きなトラックまたはグランドプレーンの静電容量を測定して、両方のベアボードを比較することができます。

    また、高速スコープで信号を確認し、オーバーシュートとクロック<>データのアイパターンを観察します。

エラーの簡単な説明が必要ですが、見つけるのは簡単ではありません。しかし、根本的な原因を見つけたら...間違いを犯すことはもうありません。

追加: 私が見つけたもう1つの間違いは、スタックの高さの図がCu層の厚さを示しておらず、間違っているか、Cuの厚さが0.039 mmでない限り、6層に収めるには不十分であることです(;ではありません)。


OPについてのコメント-OPはAltium Designerを使用しており、ソフトウェアにはインピーダンス計算機が組み込まれています。あまり使っていませんが、どこかにあることは知っています!
dext0rb

2
トレースを配線している間(PCBビューでWを押す)、Tabキーを押すと、推定インピーダンスが表示されます。
ajs410

一般的に低い複雑さのために数量100 PWBは、私はICT(テスト)のために払っていないだろうが、私は...何かが考える...とベアボードのV + <> GNDに静電容量を測定することになるので、これらは盲目のトラックを持っている
トニー・スチュワートSunnyskyguy EE75 2012年

私はこれらのボードのインピーダンス制御にお金を払いませんでした。Hyperlynx(MentorGraphics)でシミュレートされたラインは、ルーティングされた設計に基づいて、ほぼ完全な(または仕様内の)波形を示しました。これをモデル化するために、IBISモデルとともに各伝送ラインとビアを再作成しました。実際の信号を適切に調査するのに十分な帯域幅の範囲がありません=(
James

1
@TonyStewartこんにちは、あなたのサポートに感謝します。1)プロトタイプボードは高速スルーを必要としませんでした。有効のままで有効です。2)これが何を意味するのかわからない-クロックは出力ですか?3)ヒステリシスが有効なままにされた。無効のままで、効果は変わりません。4)プロトで有効になっていない増加したスルー。有効のままで有効です。5)テストされていません。7)ピン構成機能は他のビットを変更しません。8)制御ピンの離散コード、データ/アドレスのループ9)WEを有効にする必要があるのはいつですか?EMCコントローラーはこれを行う必要がありますか?10)ビットは設定される前に注記されます。別のプロトタイプを注文しています。来週ここに来てください。
James
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.