いつもお世話になっております。KATA_KANと申します。
RX72Mを搭載した自社製ボードにおいて、ISSI製SDRAM(IS42S16320F-7TLI)を実装し、Read/Writeの試験を行っていたのですが、不可解なデータ化けが発生しており困っております。
発生手順は以下の通りです。
1. 以下の8Byteを連続させたデータを、memset()を使用してSDRAM領域(0x08000000)に書き込む
[0x02,0x02,0x02,0x00,0x0A,0x0C,0x0D,0x00]
2. 256Byteまでは、問題なし
3. 257Byte以上書き込むと、[0x02,0x02,0x02,0x00,0x0A,0x0C,0x0F,0x00] のように、0x0D→0x0Fに化けてしまう。★事象発生
※256Byteずつアドレスを進めながら書き込む分には問題なし、例えば、512Byteずつアドレスを進めながら書き込んだ場合、257Byte目以降で化けが発生する
※他のバイトが化けることはなく、必ず7Byte目の0x0Dが0x0Fに化ける
バス設定やピン設定は、スマートコンフィグレータを使用して行っております。
参考までに現在のSDRAMバス設定を添付します。
バスタイミングが間違っているのかと思い、いろいろ変更してみたのですが、現象が改善することはありませんでした。
ご助言を頂けますと幸いです。
>Muraさん
返信が遅くなり申し訳ございません。
ひとまず、状況が解決しましたので一報を
SDカードバスに入るクロック(SDCLK)を80MHzから60MHzに落とし、バスタイミングもクロック低下に合わせて変更したところ、現象が発生しなくなりました。
クロックを戻すと再発することから、クロックが原因であると判断し、Closeといたします。
ISSI製SDRAM(IS42S16320F-7TLI…
KATA_KANさん こんにちはMuraと申します。
私も現在RX72Mのカスタムボードを使用してe2studio、FIT/CGを利用してソフト開発に携わっております。
RX72MのSDRAMの制御に関し、以下のサイトの資料はご覧になられましたでしょうか?
にこれら踏まえた上での問題でありましたらすみません。ご参考まで..
r01an5441xx0100-rx-sdram
(ルネサスのサイトで上記のキーワードで検索頂くと説明書とサンプルソフトが入手できるかと思います)
※当方は、コンポーネントのConfig_BSCのSDCS設定に加えて、サンプルソフトに習いmain関数の初期化部分で、R_Config_BSC_InitializeSDRAM();関数を実行させています。以後のSDRAMの使用は通常通りで特にルネサスのAPIを使用するということなく正常に動作しております。
上記の資料や初期化等は既にご確認済みとも思われましたので....
関係ないかもわかりませんが、コンポーネントのConfig_BSCの一般設定の各CSリカバリサイクル挿入設定の設定内容も確認済みでしたでしょうか?
Muraさんこんにちは!情報ありがとうございます。
>r01an5441xx0100-rx-sdram
こちらの資料は確認しましたが、使用しているSDRAMとメーカーが異なっていた為、参考に出来るところは参考にしつつ、SDRAMのデータシートとにらめっこしながら、なんとかかんとかバスタイミングを設定しているという現状です。
ただ、バスタイミングで致命的な間違いをしている可能性も0ではなく…
R_Config_BSC_InitializeSDRAM()に関しては、main関数の中で実行している為、初期化漏れということはないと思っています。
>各CSリカバリサイクル挿入設定
現在の設定は以下となってます。
試しに、未チェック部を全てオンにして再生成&リビルドしてみましたが、現象は変わらずでした。