こんにちは
RL78/G13の64pinを使用しています。(秋月電子に売っている物です)
つい昨日までは数10回プログラムの書き込みができていたのですが今日、突然プログラムが書き込めなくなってしまいました。
プログラムの書き込み方式はUSB-シリアル変換器を使用した単線UARTです。書き込み 回路はTC74AC125スリーステートバッファを使ったものです。RESET端子は変換器からのRTS端子を論理反転させて入力しています。検索するとすぐにヒットする回路だと思います。
書き込みスタート時、オシロスコープでTOOL0端子とRESET端子の書き込み波形を確認したところ、TOOL0端子に”3A”(0111010)が入力された後RL78側からの応答がない感じです。
また、直前までに書き込めていたプログラムは動作しているのでマイコンが壊れてはいない様子です。
電源電圧も問題ある無さそうです。
(なにか書き込みマスクのような物がかかっている??)
当方始めて数日の素人で初歩的な質問で申し訳ありませんがどなたか原因が分かる方がいらっしゃいましたらご教授いただけると幸いです。
kokoaさん、こんにちは。NoMaYと申します。RFPでエラーが表示されているかと思いますが、その時のRFPの画面コピーを見せて頂けませんでしょうか?
NoMaYさん、こんにちは。
kokoaです。
RFP画面のコピーです。
タイムアウトエラーで異常終了します。
kokoaさん、こんにちは。NoMaYです。タイムアウトエラーでしたか。自分の印象ですと、何か普通のエラー事例と違うような、という気がしました。(よくあるエラー事例は、デバイスから応答がありません、というのだと記憶しています。) [追記]すみません、デバイスから応答がありません、というのは、デバッグの時の記憶だったかも知れません。以下のドキュメントを見てみたのですけれども、RFPで例えば通信速度を250Kbpsに設定した場合でも、TOOL0端子に”3A”(0111010)が入力された後RL78側からの応答がない感じ、でしょうか?RFP側(USBシリアル変換器側)からは”3A”に続いて少なくともBaud Rate Setコマンドまで送信されている筈(以下のドキュメントによると2つの間にRL78側からの応答を待つシーケンスは無いのだから)、と思われるのですけれども、そこはどうでしょうか?出来れば、オシロの画面コピーも添付して見せて頂けるよう、その点を確認して頂けませんでしょうか?RL78 マイクロコントローラ(RL78 プロトコルA)プログラマ編R01AN0815JJ0100 Rev.1.00 Pages 90 2011.09.28www.renesas.com/jp/ja/document/apn/rl78-microcontrollers-rl78-protocol-programmer-edition-application-note-rev1006P「ボー・レート設定コマンド処理のBaud Rate Setコマンドの送信までは115200bpsで通信を行います。そして,ボー・レート・コマンド処理のResetコマンドの送信からBaud Rate Setコマンドで設定したボー・レートに通信レートが変更になります。」10P「まず,リセット解除時にTOOL0端子がロウ・レベルになっている場合,プリモードに遷移します。その後,通信方式設定データの送信,Baud Rate Setコマンドの送信完了後に,シリアル・プログラミング・モードの動作モードに遷移します。」[関連リンク]Renesas Flash Programmer PCのシリアルポートを使用した書き込み回路例www.renesas.com/jp/ja/document/mat/renesas-flash-programmer-sample-circuit-programming-using-pcs-serial-port
リプライありがとうございます。
添付の画像が波形のデータです。通信速度を250kbps(250000bps)にしても同じでした。
(ちゃんと測定できているか少し不安です...)
赤:RESET
黄:TOOL0
全体の波形から
RSTがHになった時、TOOLがLなのでプリモードに遷移して
その後通信方式の"3Ah"(0111010)が送信されているようです。
その後のBaud Rate Setコマンドが送信されていない感じです。
<全体の波形>
<赤まるの部分の拡大>
kokoaさん、こんにちは。NoMaYです。画像どうもありがとうございました。ちなみに、TC74AC125の回路部分ですが、プリント基板を作成されているのでしょうか?それとも、ユニバーサル基板でしょうか?あるいは、ブレッドボードでしょうかね?あと、念の為、USBシリアル変換器のRXピンの波形も見て頂けないでしょうか?断線とか接触不良とか無ければ、(TXピン→TC74AC125→)TOOL0→RXピンと伝わって、同じ波形が見える筈ですけれども?(更に言うとUSBシリアル変換器の変換IC(FT232等)のRXピンのところで見たいのではありますけれども、、、)そして、その後、確認して欲しいのが、USBシリアル変換器を取り外して、USBシリアル変換器のTXピンとRXピンを接続して、TeraTermなどを使って、エコーバックが出来るかどうか、確認してみて欲しいです。それも問題無いとなった場合は、ちょっと手詰まりな感じになってしまいますけれども、私自身であれば、その先の作業として、rl78flashというオープンソースのRL78書き込みソフトウェアを、自分でコンパイルして、その動作をWindowsアプリケーション向けデバッガでステップ実行するなどして動作を追ってみる、ということを試してみると思うのです。(もっともコンパイルする前にrl78flashで書けるかどうか(というよりも同じく書けないのかどうか)を試してからですけれども。) kokoaさんがWindowsアプリケーションを作ったことが無ければ、かなりハードルが上がってしまいますけれども、、、今のところ、Baud Rate Setコマンドが送られていないとなると、こういったことが思い付いたことです。
いただいた回答からずいぶん間が空てしまい申し訳ございません。
いろいろ実験したところ、USBシリアル変換器内部ICのRxピン端子に信号が返ってきていないのが原因だったようです。
つまりUSBシリアル変換器の故障が原因でした。
USBシリアル変換器 単品でTx-Rxをショートさせた時エコーバックは出来るようです。
TeraTermで確認しました。
TC74AC125の回路はユニバーサル基板で実験基板を作ったのですが
うまく動作しているよう?ですが少し怪しいかもしれません。
・実験基板の書き込みコネクタピンのRx(USBシリアル変換器への出力)の時点でTxと同じ波形が出ていることを確認。
・実験基板からケーブルを経由してUSBシリアル変換器の入力端子の時点でTxと同じ波形が出ていることを確認。
・USBシリアル変換器の外箱を分解して変換ICのRx端子を測定してみると波形が確認できませんでした。
これが原因だったようです。
急遽新しいSBシリアル変換器を購入して試しに書き込みしたところ、すんなりと書き込みできてしまいました。
いろいろご教授いただきありがとうございました。
kokoaさん、こんにちは。NoMaYです。> USBシリアル変換器 単品でTx-Rxをショートさせた時エコーバックは出来るようです。> TeraTermで確認しました。すみません、今になってひとこと書き忘れたような気がしてきましたが、ひょっとしたらTeraTerm自身でのTeraTerm内で閉じたソフトウェア的なエコーバックが表示されているのかも知れません。その機能を無効にして下さいね、と、お願いするのを書き忘れていましたね。(話の流れで考えると、ここはその可能性が高いような気がしてきたりしています。)