RL78マイコン基板(RL78/G10)|秋月のRL78/G10 10pin DIP基板に自作回路でフラッシュ書き込み

はじめまして。

ブログ「なんとかなるさね」の記事

http://mon80.blog.fc2.com/blog-entry-543.html 

を参考にRL78/G10 10pinDIP基板にFT232RL USBシリアル変換モジュール+3ステートバッファ74HC125N経由でPCからプログラムを書き込もうとしましたが、接続なりません。

Applilet EZ PL for RL78から直接書き込めると考えたのですが、

コンパイルが終了し、「コンパイルが完了しました。プログラムをフラッシュに書き込みます。」でOKを押した後は応答がなくなります。USBの端子を抜いてエラーを出さないと復帰できないようです。

RenesasFlashProgrammerを試してみたところ、「デバイスから応答がありません。」と表示されエラーとなります。

オシロで波形を見たところ、TOOL0がH→L→HのLの間に_RESETがL→Hとなり、その後TOOL0がバタバタして何かシンボルは転送されているようです。その後はTOOL0=H,_RESET=Hのままとなります。

フラッシュ・メモリ・プログラミング・モード引き込みのモード引き込みバイト・データは転送されているようですが、

そのあとのマイコンチップからの応答がないという事でしょうか。(プロトコルがわかっていません。)

TOOL0の波形はDIP変換基盤だけでなく、マイコンチップのリード上で確認しました。

FT232RLからのUSB経由での電流供給が十分でないのかとも考え、RL78/G10 10pinDIP端子のVDD,GNDに直接5V供給もしましたが改善しません。

ご教授の程よろしくお願い申し上げます。

COMデバイスドライバ設定のパリティは「なし」でよろしいでしょうか。「奇数」にするとRenesasFlashProgrammerではパリティエラーとなります。Applilet EZ PL for RL78では応答が途絶えたままでパリティ設定による違いがありません。

Parents
  • RL78/G10 の書き込みプロトコルについては下記の投稿が参考になると思います。

    RL78/G10の外部UARTによる書き込み

    japan.renesasrulz.com/.../2163.aspx

    タイミング等にも言及されているので通信内容を確認されてはいかがでしょうか。

  • ご教示ありがとうございます。

    ●消去後書き込み

     モード引き込み

    TX:3AH

    RX:06H

    マイコンチップ側からの06Hが返っていないと思うのですが、その対処方法が分かりません。

    信号のタイミングに関しては私にどうこう出来る話ではないと思うのですが、_RESET

    立ち上がり前後のTOOL0に関するtSU,tHD,tSUINITは満たしています。

    RL78/G10のPIN1,2,4,5(TOOL0,_RESET,VDD,GND)以外は接続なしで問題ないのですよね?

    RL78/G10が応答するにはどうしたらよいのでしょうか。

  • はじめまして。

    私も試してみましたが、RenesasFlashProgrammer V3.01は相性が良くないようです。

    COMポートの詳細設定のBMオプションの待ち時間を 10msec にしないと安定しませんでした。

    私の環境では、9msecや11msecでは半数程度はパリティエラーのメッセージが表示され、

    更に、8msecや12msecでは全く駄目(いつもパリティエラーのメッセージが表示される)でした。

    他方、RenesasFlashProgrammer V2.05(V2.05.03)ではブログの設定の 1msec でも元々の

    既定値の 16msec でも問題無く繋がりました。

  • ご回答ありがとうございます。

    (無償版)V2.05.03をインストールしてみましたが、使用ツールにE1あるいはE20しか選択できず、USB-シリアル通信経由での書き込みはできないのでしょうか・・・。

    (無償版)V3.01では9ms以下ではパリティエラー、10msではパリティエラーと「デバイスから応答がありません」が交互、数値を大きくしても正常動作は見られません。

    マイコンから応答がないのはチップの不良ということもあり得るのでしょうか?

    エミュレータ使わなければ書き込みできないという事になるのでしょうか・・・。

    Applilet EZ PL for RL78では試用ツールにE1かCOMxしかないようです。

  • こんにちは。

    悲観的になるのは、まだ少し早いような気がします。(参照されているブログのタイトルは

    楽観主義を表す言葉ですし、、、) 無償版 V2.05.03で使用ツールにE1あるいはE20しか

    選択できないとのことですが、パソコンとUSBシリアル変換モジュールを未接続の状態で

    V2.05.03を起動するとそのようになるようです。もし、未接続で試されているのであれば、

    接続した状態で試してみて下さい。(ちなみに、Applilet EZ PL  for RL78 V1.01Jですが、

    製品内にV2.03.00が含まれていて、それをこっそり起動して書き込んでいるようです。)

  • わわいです

    やりとりをみてると、どーもマイコンがまともに動いてないようにみえますね

    マイコンに電源がちゃんと供給されているかどうか、クロックがちゃんと発振して供給されているかどうか、

    回路が間違いなくちゃんと配線されているか、をまずしっかり確認するほうがいいような気がします。

  • コメントありがとうございます。

    USBに接続した状態でRFP V2.05.03(無償版)を立上げてCOM(4)を認識できました。

    (先の確認は違うPCで見ていました)

    ブランクチェックを実行すると、「進捗 書き込みツールに接続処理中です。」が表示されたままになります。

    オシロで波形をみると、1シンボルは転送されていますが、その後のマイコンチップからがないようです。

    DIP変換基板上のマイコンチップのリード端子のところでTOOL0,_RESET,GND,VDDは信号、電圧を確認しました。

    1ピンのTOOL0がIOですが、他に出力となるものが無く、マイコンチップが応答していないとしか分かりません。

    デバイスドライバのUSB Serial Port (COM4)の設定しかいじれるものがないと考えるのですが、どなたか設定を教えて頂けないでしょうか。

    「規定値」からところどころ動かしてみましたが効果ありません。よろしくお願いします。

Reply
  • コメントありがとうございます。

    USBに接続した状態でRFP V2.05.03(無償版)を立上げてCOM(4)を認識できました。

    (先の確認は違うPCで見ていました)

    ブランクチェックを実行すると、「進捗 書き込みツールに接続処理中です。」が表示されたままになります。

    オシロで波形をみると、1シンボルは転送されていますが、その後のマイコンチップからがないようです。

    DIP変換基板上のマイコンチップのリード端子のところでTOOL0,_RESET,GND,VDDは信号、電圧を確認しました。

    1ピンのTOOL0がIOですが、他に出力となるものが無く、マイコンチップが応答していないとしか分かりません。

    デバイスドライバのUSB Serial Port (COM4)の設定しかいじれるものがないと考えるのですが、どなたか設定を教えて頂けないでしょうか。

    「規定値」からところどころ動かしてみましたが効果ありません。よろしくお願いします。

Children
  • 以前 RL78/G10 で遊んでたときの工作を引っ張り出してきてみました。

    Renesas Flash Programmer V2.05 と V3.01 の二つで確認してみましたがどちらも問題なく書き込みできました。

    使用した機材は Windows 10 home 64bit を搭載した PC に FTDI 製ドライバ 2.12.18.0、USB シリアル変換はFTDI USB・シリアル変換ケーブル(5V)(http://akizukidenshi.com/catalog/g/gM-05841/)、74HC125 を使用してhttp://mon80.blog.fc2.com/blog-entry-543.htmlとたぶん同等の回路、マイコン基板は秋月のhttp://akizukidenshi.com/catalog/g/gK-08780/ではありませんが同じマイコンを使用しています。

    書き込みに際してドライバの設定を変えたり等はしていません。

  • こんにちは。

    TOOL0へ1シンボル転送(0x3Aの筈)されている箇所の拡大は取れますか? あと、どなたか

    正常な時は0x3Aをマイコンに送った後、何msecぐらいでマイコンから応答(0x06(品種依存))が

    返るのか分かるようなオシロの波形画像を持っていらっしゃるひとはいませんでしょうか?

    E1の場合で構いませんので。(バグを探すのに、暗中模索するより、この点でもう少し確信が

    持てると良さそうな気がしましたので。デバッガやオシロは、その為の道具ですし。) [追記]

    すみません。私はオシロを持っていなくて、また、身近に借りられる環境もないものですから。

  • NoMaYさん

    たぶん大丈夫だと思いますけども
    もし、オプションバイトC1h番地のビット4(PORTSELB)が0になっていると、
    電源投入後一度でもリセットが解除されるとリセットマスクが有効になって、再度リセットが掛けられなくなってモード引き込みができなくなります。

    その場合はE1エミュレーターでチップ消去する必要があります。

  • Kirinさん

    おはようございます。今のところ、私も、その可能性は低いように思います。悲観的になる

    のは少し早いですよ、とは書いたのですが、マイコンを壊してしまったとか、FT232RLを壊して

    しまったとか、あくまで可能性としての大小なら、そちらの方がありそうな気がしています。

    (一番ありそうなのは配線ミスですが、正しいと思って作った物のミスはなかなか気付かない。

    ソフトとOSの相性問題の可能性も捨て切れないですし。)

    でも、まだ買い直すことを勧めるには根拠が不十分な状況ですかね。(あと、もし買い直す

    ことを勧めることになったら、10pin版(ROM 2K)ではなくて16pin版(ROM 4K)を勧めようかとも

    思っています。昨夜Applilet EZ PL for RL78で遊ぼうとしていて、簡単なゲート回路でも

    1.5K程のROMを消費するので、ROM 2Kでは余裕が無いという感触がひしひしとしましたので。)

    ykさん

    もし、職場やサークルなど身近にE1を持っているひとがいらっしゃったら、ブランクチェック

    出来るかどうかだけでも確認させてもらうと良いかもしれません。(ついでに、正常動作時の

    オシロの波形画像を撮らせて貰って、、、)

  • わわいです

    動かない動かない、と時間を消費するより、あっさりCPU買ってきて交換して動かしてみる、ほうが手っ取り早いと思われます。

    交換して動かなければ、CPUが壊れてる、という可能性は排除できるのでそれはそれでいいんではないでしょうか

  • 新しいチップで書き込みできました。皆さんありがとうございました。

    新しいチップでRFP V2.05.03(無償版)でブランクチェックが成功し、そのチップでApplilet EZ PL for RL78で書き込みしようとしたら書き込み処理のまま応答しなくなり、、初めのチップと同じ状態になりました。

    Applilet EZ PL for RL78で生成したコードをRFP V2.05.03(無償版)で別のチップに書き込みに成功しました。

    書き込んだ後にチェック・サムを実行したら応答しなくなり1,2番目のチップと同じ症状に・・・というのもあります。

    (FlashProgrammerの使い方わかってません)

    余計なことはせず書き込みまでで終わりにして、4個めにして所望のものが手に入りました。

    (6ピンに信号出力しているのですが、6ピンの出力信号がなまった波形が10ピンに観測されるのがちょっと気になりますが・・・。今回は6ピンの出力のみあればいいので気にしません。)

    3個の書き込みできなくなったチップはエミュレータであれば復活できるのでしょうか?

    以下蛇足です。

    ブログの回路と同じです。トライステートバッファの1番目と2番目が入れ替わってます。

    はじめの転送シンボルのオシロ画像です。

  • こんにちは。

    それは良かったですね。試された手順を読む限りでは、物理的に壊れた訳では無さそうです

    ので、Kirinさんの直感が当たっているのでしょうね。(でも、どういうカラクリで?というのは

    私的には気になりますが、それは私の方の好奇心の話だけにして。) 何かすごいと思いました。

    あと、拡大画像ありがとうございました。(解決後にも関わらず貼り付けて頂いて申し訳ないです。)

  • すみません。先程は私の方の好奇心の話だけにしようと思ったのですが、1点だけ教えて下さい。

    Applilet EZ PL for RL78で生成したソースのopt_byte.asmのOPTIONのデータがどうなっているか

    知りたいです。例えば、私の設定で生成したソースでは以下のようになっていました。

    OPTION:     DB  11101110B

                DB  11110011B ← ここのb4がKirinさんが指摘されていたPORTSELBビットです

                DB  11111001B

                DB  00000101B

    以下は私がソースを生成したときのApplilet EZ PL for RL78の設定画面です。

    試しにApplilet EZ PL for RL78を再インストールしたところ初期設定は以下でした。

  • Kirinさん、ykさん
    こんにちは。
    >もし、オプションバイトC1h番地のビット4(PORTSELB)が0になっていると、・・・
    >その場合はE1エミュレーターでチップ消去する必要があります。・・・
    この件ですが、E1エミュレータ無しでも復旧できました。以下のツールを使いました。
    https://github.com/msalau/rl78flash/releases/ の rl78flash-0.5.2-win32.zip
    (1)ダウンロードして解凍した後、以下の1行だけの内容でrecover.hexを作成します。
    S2080000C0FFFFFFFF3B
    (2)FT232RLのRTSとG10のRESETを直結します。(RxD/TxD/TOOL0側はそのまま74HC125を使用。)
    (3)パソコンとUSBシリアル変換モジュールを接続します。
    (4)コマンドプロンプトを開き、解凍したフォルダへ移動し、以下のコマンドを入力します。
    rl78g10flash -m 2 -wdv com4 recover.hex 2k
    (5)以下のメッセージが表示されたらG10のVDDのジャンパワイヤーを抜き差しして何かキーを押します。
    Turn MCU's power on and press any key...
    抜き差しする意味はG10の電源をOn→Off→Onするということです。(この時、RESETはLowです。TOOL0も。)
    (6)エラーメッセージが表示されることなくコマンドが終了すれば復旧完了です。
    (7)パソコンとUSBシリアル変換モジュールを切り離します。
    (8)FT232RLのRTSとG10のRESETの結線を元の74HC125を使用するものに戻します。

  • NoMaYさん

    ツールならびに詳しいご教示ありがとうございます。

    3個のうち1個は壊れているのかもしれませんが、2個はhexファイルのリードでエラーになります。

    バイナリディタでテキスト入力してセーブしましがファイルの作成方法に条件などありますでしょうか。

    テキスト入力時の文字エンコードタイプが指定できますが、今回に関しては違いがでないですよね。

    (Shift-JIS,ASCII,EUCと試してみましたが結果同じでした。)