DMAによる外部バス占有対策

お世話になっております。

 

カイロスです。

 

DMAを使用時の外部バスの占有対策についてお聞きしたくご質問させていただきました。

 

DMAの外部バスの占有対策として以下を実施しました。

・リカバリサイクルのサイクル数を増やす。

 →5サイクル

 

・CSのウエイトと、CS、RD、WRのアサートウエイトのサイクル数を増やす。

 →CSウエイト:2サイクル。CS、RD、WRのアサートウエイト:1サイクル。

 

上記で、ある程度不安定な動作が収まったのですが、

他に対策できることとか、上記設定の際に気を付けることなどありましたら、お教えいただきたいです。

※DMA転送は、1µS間隔で計10000万回行います。

 

以上、よろしくお願い致します。

Parents
  • カイロスさん、こんにちは。NoMaYです。

    その後、どうでしょうか?外部バスクロックを落としたりなどして、状況に変化はありましたでしょうか?

Reply
  • カイロスさん、こんにちは。NoMaYです。

    その後、どうでしょうか?外部バスクロックを落としたりなどして、状況に変化はありましたでしょうか?

Children
  • NoMayさん
    返信が遅れて申し訳ありません。

    外部バスのクロックを落としたところ、ふらつきが解消されました。
    しかし、DMACを動作させると、今度はクロックが遅すぎて、LEDなどの点灯がふらつくようになってしまいました(リカバリサイクルなどを6以上にしたところ同様の現象でした)。

    したがって、ハード的な問題が原因の一つだと考えられます。

    しかし現状、分周比が1/8→1/16に変更して上記となったため、ちょうど良いクロック数がなさそうです、、、
    ですので、現状はリカバリサイクルや、各種ウエイトを設けて、ふらつかないよう調整をして動作させています。

    設定値は以下です。
    リカバリサイクル = 5
    CSウエイトサイクル = 5
    リード時CS延長サイクル = 1
    ライト時CS延長サイクル = 1
    CS アサートウエイト = 2
    RDアサートウエイト = 3
    WRアサートウエイト = 3
    WDアサートウエイト = 3

    上記設定で、今のところ正常動作となっています。
    何かご指摘などありましたら、ご教授ください。
  • みなさん。

    ご返答が遅れて申し訳ありません。

    上記原因が判明いたしましたので、ご報告します。

    値がふらつく原因は、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



     

  • 確かに、そうですね、、、。

    レジスタの設定値とずれることで、よくない動作をするのか?と勝手に予想をしていました。