2011年12月16日金曜日

RX62N 疑問点

RX62Nマイコン基板でいろいろやってみてますけど、いくつか分かってないところがあるので、ひとまず列挙。追加の疑問と、解決したらその内容も追記していきます。

[割込み取り逃しの件]
  • やりたいこと:DMAを使ったシリアル出力(RS232C) → WindowsXP TeraTerm
  • 環境:Interface付属のRX62N基板、HEW使用、SCI2版
  • 手順:リセット解除 → スタートアップ → main() → setpsw_i() → DMAC2初期化 → UART0初期化 → 文字列出力用に"SCI0 initialize done"をRAMに設定 → DMA起動設定 → SCI0.SCR.BYTE    = 0xF0; → しばらくしてブレーク(1)
  • DMAC2初期化詳細
    • 途中省略
    • ICU.DMRSR2 = 216; //  DMA起動要因をTXI0に設定
    • IEN( DMAC, DMAC2I ) = 1; // 割込み許可
    • IPR( DMAC, DMAC2I ) = 5; // 割込み優先レベル設定
  • UART0初期化詳細
    • 途中省略
    • IEN( SCI0, TXI0 ) = 1; // 割込み許可
    • IPR( SCI0, TXI0 ) = 1; // 割込み優先レベル設定
  •  DMA起動設定詳細
    • DMAC2.DMTMD.BIT.DCTG    = 1; // 転送要求選択(周辺モジュール)
    • DMAC2.DMTMD.BIT.SZ    = 0; // 8bit転送
    • DMAC2.DMTMD.BIT.MD    = 0; // 転送モード設定(ノーマル転送)
    • 途中省略
    • DMAC2.DMCSL.BIT.DISEL = 0; // 起動要因の割込みを発生させない
    • DMAC2.DMINT.BIT.DTIE    = 1; // 転送終了割込み許可
    • DMAC2.DMCNT.BIT.DTE    = 1; // DMAC起動許可
  • 割込み関数定義済み、割込み関数でブレーク(2)
  • しかし、割込み発生せず、 (1)のブレークでストップ
  • レジスタを見てみると、IR = 1、IEN = 1、PSW.I = 1 の状態


[その他]
  • CN2の38ピン、CN3の40ピンに5Vがきてるが、JP1が最初から繋がってないのはなぜか?
  • USB接続でHEWがよく固まる。。なぜか?
    • 1つ便利なやり方発見。リセットスイッチを押す時間が短いとうまくいかないが、長い時間押して離すと、USBの抜き差しと同じ効果あり。固まる現象がおさまるわけではないが、いちいち抜き差ししなくてよくなった。
    • 知人が素晴らしいアイディアを創出。スイッチで外部割込みを行い、デバッガを止める方法。シリアルでも可能だが、シリアルはコマンド受信で使用しているので、常に受け付けるようにしていないため、スイッチの外部割込みを採用。
  • ブレークの一覧表示はどうやってするの?
  • RX62Nに限らないが、配線するリードで絶縁できるもの(本ブログでは青いリードを使用)って、一般的に何が使われるの?秋月にもスズメッキ線は売られてるが、それ以外は見当たらない。今使ってる青いリードは少し太くて扱いにくい。 
  • これもRX62Nとは関係ないけど、シリアルでデータを表示する際、ASCIIも表示させてるが、制御コードの場合は表示が崩れる。そのため、ASCIIコード表を見て、0x1F以下、0x7Fは'.'に変換するようにしているが、CR(0x0D)、いわゆる'\n'はCR(0x0D)+LF(0x0A)に変換しており、データで0x0Dがきた場合と区別がつかない。まぁデータの場合とそれ以外とをフラグでも立てて分岐してやればいいのだけど、もっとスマートな方法はないものか。



    2 件のコメント:

    1. はじめまして。

      基板の配線はポリウレタン線を使っています。
      ぐぐれば価格や使い方が出てくると思います。

      価格も手ごろで、何よりかさばらないのが良いです。

      返信削除
      返信
      1. はじめまして、コメントありがとうございます!
        以前からRX62Nの内容で、何度かHPで参考にさせていただいてました!
        早速ポリウレタン線を検索したところ、共立電子にあったので、次の注文のときに購入して、使った感想もアップさせていただきます!
        また、アドバイスお願いします!

        削除