R8C/32GでUART0とE8aは同時に使用可能でしょうか?

お世話になります。

現在、R8C/32GでUART2を使用しています。

エミュレータはE8a、開発環境はHEWで、問題なくデバッグできております。

今回、新たにUART0を追加で使用してみることになりました。

この場合、E8aでのデバッグは可能なのでしょうか?

よろしくお願い致します。

  • チョコさんありがとうございます。

    NAKAです。

    どうも、ある程度レジスタの内容を理解しておかないと、何かあった時にお手上げになるような気がして落ち着かないのでついついハードマニュアルを見てゴリゴリやっちゃう性分です。ツールに助けてもらうとツールに使われているような気がして。考え方が古いんですね!

    愚痴を聞いてください!

    低消費電力なアプリで、せっかくRL78の環境整備したのに、上の方針転換(当初はRL78から上位のPCにデータを渡し、PCで解析する方針でしたが、マイコン側で解析することになった)のため、RL78⇒RX111になってしまいました。

    なので、RL78は1週間触っただけの、ど素人のままです............涙!

    同じような考えみなさんの参考になれば、下記にNAKAの初期設定を載せてみました。取りあえず通信できました。

                          記

    /*************************************************************************

    //関数名:   fn_Init_SCI1(void)

    //動作 :   シリアル通信の初期化

    //引数 :

    //作成 :   NAKA     15.01.22

    //備考  : SCI1   ユニットm=0 チャンネルn=2TX n=3RX

    // ***********************************************************************/

    void fn_Init_SCI1(void)

    {

      SAU0EN = 1;             //入力ククロックの供給 ※これをしないと制御レジスタの書き込み無視される P675

      SPS0 = 0x0022;          // 動作クロックをfCLK=20MHz/4 = 5MHzに分周

      //送信側設定(TXD1 Unit:0,ch:2)

      SMR02 = 0x0022;         //UARTモード クロックck00を選択 送信

      SCR02 = 0x8097;         //送信のみ NONパリ 1stop 8bit ERR割り込みマスク

      SDR02 = 0x8000;         //ボーレート設定 BRR = (((fCLK/4)/(BR×2))-1)×2

                              //例)BR=38400bps ((5MHz/(38400×2))-1)×2≒0x80 ⇒ 0x8000

                              //  BR=115200bps:0x2900

      //SOL0 = 0x00;          //シリアル出力レベル(0:反転しない)

      //SO0 = 0x0F0F;        //クロック"1" データ"1"

      SOE0L.2 = 1;            //チャンネル2は送信なので出力許可を行う

      //PMC = 0xFC;           //ポートモードコントロール デジタル設定 P697 必要なのか? マニュアルには無さそう?

      PM0.0 = 0;              //P00(TXD1)を出力に設定

      P0.0 = 1;               //TXD1端子有効化

      //受信側設定(RXD1 Unit:0,ch:3)

      SMR03 = 0x0122;         //UARTモード クロックck00を選択 受信

      SCR03 = 0x4097;         //受信のみ NONパリ 1stop 8bit ERR割り込みマスク

      SDR03 = 0x8000;         //ボーレート設定 BRR = (((fCLK/4)/(BR×2))-1)×2

                              //例)BR=38400bps ((5MHz/(38400×2))-1)×2 = 0x80 ⇒ 0x8000

                              //  BR=115200bps:0x2900

      NFEN0.2 = 1;            //ノイズフィルタON_RXD1の時はSNFEN10ビットを"1" P696

      PM0.1 = 1;              //P01(RXD1)を入力に設定

      //割り込み設定するぞ!

      STPR01 = 1;             //プライオリティ設定   00:MAX(レベル0)~11:MIN(レベル3)

      STPR11 = 0;             //01:レベル1

      STMK1 = 0;              //送信_割り込みマスクレジスタ 0:割り込み処理許可

      SRPR01 = 1;             //プライオリティ設定   00:MAX(レベル0)~11:MIN(レベル3)

      SRPR11 = 0;             //01:レベル1

      SRMK1 = 0;              //受信_割り込みマスクレジスタ 0:割り込み処理許可

      //送受信の許可

      SS0 = 0x000C;           //SS02(送信)、SS03(受信)を許可

      //SS0L =0x0C;           //上段のバイト指示例

    }

  • チョコです。

    それは,それは....

    RL78では,UARTなど使用したい機能に対応して,レジスタ設定の

    説明がハードウェア マニュアルに記載されています。基本的には

    そこに記載された順に設定すれば動作させることが可能です。

    たとえば,RL78/G13では,「12. 6 UART(UART0-UART3)通信

    の動作」の部分に使用するレジスタの設定の意味やフローチャートが

    記載されているので,ほかのデバイスよりは理解の助けになるかと

    思います。

    ぜひ,次はRL78で遊んでください。

    サンプルプログラム等に,次は通信関係のプログラムを掲載して

    いきたいと思いますので,よろしく。