SRAM : RMWV6416Aで同時に複数アドレスに値が書き込まれてしまう

RN72Nにて
RMWV6416Aシリーズの(4M word * 16bit)のSRAMを使用してます。
SRAMを使用するのは初めてです。

以下の問題が発生しており、原因と解決方法が分からないため
この問題に心当たりがあれば、教えていただければ幸いです。

CS7にSRAMを接続して、アドレス出力はA0~A22に設定。
SRAMのアドレス0x0100 0000に0001を書き込み実行し、成功します。
ここからが問題で上記実行で、
アドレス0x0104 0000にも0001が書き込まれます。
さらにアドレス0x0108 0000にも0001が書き込まれます。
さらにアドレス0x01C0 0000にも0001が書き込まれ、
0x0100 0000から0x40000の倍数のアドレスに0001が書き込まれ、
この規則が続いて0x01FC 0000まで0001が書き込まれます。

アドレス0x0103 FFF0に1111を書き込み実行し成功します。
この実行においても、アドレス0x0107 FFF0に1111が書き込まれます。
以降、0x0103 FFFFから0x40000の倍数で同時に書き込まれてしまいます。

書き込む値は特に関係なく、
同時にSRAMの0x40000の倍数のアドレスに規則的に書かれてしまいます。

また、0x0104 0000に0001を書き込むと同様に
0x0100 0000から0x40000の倍数で0001が同時に書き込まれます。

書き込まれる値はe2studioでデバックし、メモリの画面で確認しています。

この現象を解決したく、原因と解決方法にもし心当たりがあれば教えてください。
よろしくお願いいたします。

Parents
  • メモリへの読み書きの失敗の原因として考えられるのは
    ・回路自体の間違え
    ・隣接のアドレス信号がショートしている(実装の問題)
    ・アドレス信号がオープンしている(実装の問題)
    ・ソフトウェアの間違え(外部バスコントローラの初期化間違え)

    ボードは自分たちで設計・制作したものですよね?まずはSRAMのアドレスピンの信号がソフトウェアでSRAMの指定した読み書き先パターンになっているかロジアナやオシロスコープで確認するのがいいと思います。SRAMパッケージがFBGAだった時、回路にミスがないならX線検査でボールがちゃんとパッドについているか確認するのが先かな。ボールがパッドに対して浮いてるような場合があったりします。なお問題が半田不良のため起こっている場合、テストパッドがあっても、それを用いての信号確認はあまり意味をなしません。


    内容的に一回の書き込みした後に0x40000の倍数の場所を確認した時に倍数のものが全て書き換わっているように見えているだけと思います。アドレス信号が正しく出力されてなくて0x40000の倍数で読み書きしている先は0x40000の倍数のどこかの一つで、アドレス信号が正しく伝わってないのかなと思います。

  • メッセージありがとうございます。

    ボードは自作です。ご指示のとおり確認してみようと思います。

    進展がありましたら、メッセージします。

Reply Children
  • 型式からするにFBGAですよね?回路に問題なく、X線検査装置にすぐにアクセスできないようでしたら例えば動作中に基板にSRAMを押さえ付けてやると症状が変わるならまずはんだ不良です。もし複数製造しているなら別個体でも起こるかを確認するといいかなと思います。全部が全部半田不良とは流石にないと思います。

  • ご質問にお答えしていませんでした。マイコンとSRAMともにPINがあるのものを使っております。