お世話になっております。
カイロスです。
DMAを使用時の外部バスの占有対策についてお聞きしたくご質問させていただきました。
DMAの外部バスの占有対策として以下を実施しました。
・リカバリサイクルのサイクル数を増やす。
→5サイクル
・CSのウエイトと、CS、RD、WRのアサートウエイトのサイクル数を増やす。
→CSウエイト:2サイクル。CS、RD、WRのアサートウエイト:1サイクル。
上記で、ある程度不安定な動作が収まったのですが、
他に対策できることとか、上記設定の際に気を付けることなどありましたら、お教えいただきたいです。
※DMA転送は、1µS間隔で計10000万回行います。
以上、よろしくお願い致します。
カイロスさん、こんにちは。NoMaYです。その後、どうでしょうか?外部バスクロックを落としたりなどして、状況に変化はありましたでしょうか?
みなさん。
ご返答が遅れて申し訳ありません。
上記原因が判明いたしましたので、ご報告します。
値がふらつく原因は、CS+のデバックツール設定のメモリ・マッピングの外部領域のアクセス幅の設定が問題の一つだったようです。こちらが、16bitでアクセスしないといけないところを8bitアクセスとなっていたため、FRAMの値がふらついていたようでした。
皆様、いろいろとご教授頂きありがとうございます。
カイロスさん、こんにちは。NoMaYです。FRAM MB85R4M2Tのデータシート(画面コピー)を見ますと、バイトリードもバイトライトも可能なメモリですので、以下の原因は、ちょっと腑に落ちないような、という気もします、、、(もう、これ以上調査している時間も無いのでしょうけど、、、)> 値がふらつく原因は、CS+のデバックツール設定のメモリ・マッピングの外部領域のアクセス幅の設定が問題の一つだったようです。こちらが、16bitでアクセスしないといけないところを8bitアクセスとなっていたため、FRAMの値がふらついていたようでした。データシートの画面コピーwww.fujitsu.com/jp/group/fsm/documents/products/fram/lineup/MB85R4M2T-DS501-00024-5v0-J.pdf
確かに、そうですね、、、。
レジスタの設定値とずれることで、よくない動作をするのか?と勝手に予想をしていました。