RL78/G1D 評価キットに仮想UARTアプリケーションを書き込みしてテストをしたところ受信文字が化けてしまう現象が起きています。
サンプルプログラムには一切手をつけていません。
同じような現象や解決方法を見つけた方がいらしたらアドバイス頂けないでしょうか
言葉足らずでした。
送信側のターミナルから半角英数字の'a'を連続で送信すると受信側で文字化けがおきます。
その他の文字も途中で文字化けがおきることがあります。
チョコです。
前回のスレッドの議論から,FT232RLのRXD端子の(できれば,TXD端子も)波形を確認してみることをお勧めします。「図 4-1 スルーホール RL78/G1D 搭載モジュール・拡張インタフェース」で示されたところが簡単にチェックできるようです(FT232RLのRXDが図ではP12/SO00/TXD0,TXDが図ではP11/SI00/RXD0/SDA00になります)。
RXD信号が中間レベル付近なら「UART通信のPCへの送信について」と同じ状態だと考えられます。
波形を確認すると周波数に大きな誤差はなさそうです。
オシロで波形を上書きするモード(パーシスタンス)で受信側のRL78のTX端子の波形を確認すると化けている信号が確認できました。( 当たり前ですが(汗
ハードウェアではなくサンプルプログラム内で起きていると思われるのでコードを確認しながらデバッグを進めます。
色々とありがとうございました。
ハード側ソフト側と調査しましたが問題が解決されません(;;)。・開発環境OS:Win10開発環境:CS+ for CC V6.01.00評価ボード:RTK0EN0001D01001BZ動作確認(RL78/G1Dとの通信) TeraTerm を使用しています。・サンプルプロジェクトan-r01an3319jj0120-embsmp-aplan-r01an3130jj0112-vuartapp-apl2つを試しており、両方で文字化けが発生することを確認しています。・ハード側の確認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へ送られた時点では文字化けは発生しておらず、アプリ側で受信データを引き取った時点では文字化けが発生しているところまで判明しています。以上のことから原因、改善方法はわかりますでしょうか?また、調査が必要な場合はどのような調査を行えばよろしいでしょうか?