RL78/G1D 仮想UARTアプリケーション 文字化け

RL78/G1D 評価キットに仮想UARTアプリケーションを書き込みしてテストをしたところ受信文字が化けてしまう現象が起きています。

サンプルプログラムには一切手をつけていません。

同じような現象や解決方法を見つけた方がいらしたらアドバイス頂けないでしょうか

  • チョコです。
    どの様に化けているか分かりませんが,RL78/G1Dの評価キットに関しては,以下のスレッドが
    参考になるかもしれません。

    UART通信のPCへの送信について
    japan.renesasrulz.com/.../uart-pc
  • わわいです
    漢字とかひらがな、いわゆる全角文字が化ける、というなら、ターミナルソフトの文字コードを設定してみてください
  • 言葉足らずでした。

    送信側のターミナルから半角英数字の'a'を連続で送信すると受信側で文字化けがおきます。

    その他の文字も途中で文字化けがおきることがあります。

  • チョコです。

    前回のスレッドの議論から,FT232RLのRXD端子の(できれば,TXD端子も)波形を確認してみることをお勧めします。「図 4-1 スルーホール RL78/G1D 搭載モジュール・拡張インタフェース」で示されたところが簡単にチェックできるようです(FT232RLのRXDが図ではP12/SO00/TXD0,TXDが図ではP11/SI00/RXD0/SDA00になります)。

    RXD信号が中間レベル付近なら「UART通信のPCへの送信について」と同じ状態だと考えられます。

  • ご教授ありがとうございます。
    RXD端子とTXD端子を確認しました。信号レベルは0V-3Vで動いていました。
  • > 送信側のターミナルから半角英数字の'a'を連続で送信すると受信側で文字化けがおきます。

    エコーバックで文字化けを確認されているのであれば、送信と受信のどちらで化けてるかは判断できないのでは?
  • チョコです。
    そうなると,波形のハイとロウの時間を計って,ボーレートの誤差がどの程度かを確認する。
    及び,RL78/G1Dから’a’を連続して送信するようなプログラムを作成して,PC側でデータを確認する。
    こんなところを一つずつチェックすると言ったところですかね。
  • はい。どちらで化けているかわかりません。
  • 波形を確認すると周波数に大きな誤差はなさそうです。

    オシロで波形を上書きするモード(パーシスタンス)で受信側のRL78のTX端子の波形を確認すると化けている信号が確認できました。( 当たり前ですが(汗

    ハードウェアではなくサンプルプログラム内で起きていると思われるのでコードを確認しながらデバッグを進めます。

    色々とありがとうございました。

     

  • ハード側ソフト側と調査しましたが問題が解決されません(;;)。

    ・開発環境
    OS:Win10
    開発環境:CS+ for CC V6.01.00
    評価ボード:RTK0EN0001D01001BZ
    動作確認(RL78/G1Dとの通信) TeraTerm を使用しています。

    ・サンプルプロジェクト
    an-r01an3319jj0120-embsmp-apl
    an-r01an3130jj0112-vuartapp-apl
    2つを試しており、両方で文字化けが発生することを確認しています。

    ・ハード側の確認
    RL78/G1D 評価キット(BLE送信側)のCPUのRX端子とUSBシリアル変換ICのTX端子をオシロスコープで当たり
    BLE受信側で文字化けするまで信号を確認しても信号の乱れは一切無い。
    CPUとUSBシリアル変換ICのチップ間で文字化けは発生していないと考えます。

    ・アプリ側の確認
    1.サンプルプロジェクト内のBLE通信を無効化し、シリアルでの入力値をそのままシリアルで出力するように処理を変更。
    2.uart.cのdma割り込み時の処理内(dma0_isr(void))でrxコールバック(UART_CALLBACK_VOID(uart_callback.rx_callback))を
      呼ぶ際に受信データをバッファに貯めていく処理を追加。
    3.PCからRL78/G1DへTeraTermを使いシリアルで接続。
    4.PCから文字列を入力していき、文字化けが発生するまで継続する。
    5.文字化けが発生したらバッファの中身をシリアルで出力しバッファの中身を確認したところ、
      バッファ内のデータが化けていることを確認。
    6.よって、dma割り込み時の処理(dma0_isr(void))で受信データを引き取る時点ですでに文字が化けていることがわかりました。
    ※バッファへはserial_read(uint8_t *bufptr, const uint16_t size)の引数bufptrで渡している変数の中身を貯めています。

    上記の調査からUSBシリアル変換ICからCPUへ送られた時点では文字化けは発生しておらず、
    アプリ側で受信データを引き取った時点では文字化けが発生しているところまで判明しています。

    以上のことから原因、改善方法はわかりますでしょうか?
    また、調査が必要な場合はどのような調査を行えばよろしいでしょうか?