はじめまして。
ブログ「なんとかなるさね」の記事
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では応答が途絶えたままでパリティ設定による違いがありません。
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が応答するにはどうしたらよいのでしょうか。
わわいです
やりとりをみてると、どーもマイコンがまともに動いてないようにみえますね
マイコンに電源がちゃんと供給されているかどうか、クロックがちゃんと発振して供給されているかどうか、
回路が間違いなくちゃんと配線されているか、をまずしっかり確認するほうがいいような気がします。
コメントありがとうございます。
USBに接続した状態でRFP V2.05.03(無償版)を立上げてCOM(4)を認識できました。
(先の確認は違うPCで見ていました)
ブランクチェックを実行すると、「進捗 書き込みツールに接続処理中です。」が表示されたままになります。
オシロで波形をみると、1シンボルは転送されていますが、その後のマイコンチップからがないようです。
DIP変換基板上のマイコンチップのリード端子のところでTOOL0,_RESET,GND,VDDは信号、電圧を確認しました。
1ピンのTOOL0がIOですが、他に出力となるものが無く、マイコンチップが応答していないとしか分かりません。
デバイスドライバのUSB Serial Port (COM4)の設定しかいじれるものがないと考えるのですが、どなたか設定を教えて頂けないでしょうか。
「規定値」からところどころ動かしてみましたが効果ありません。よろしくお願いします。
以前 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を使用するものに戻します。
ツールならびに詳しいご教示ありがとうございます。
3個のうち1個は壊れているのかもしれませんが、2個はhexファイルのリードでエラーになります。
バイナリディタでテキスト入力してセーブしましがファイルの作成方法に条件などありますでしょうか。
テキスト入力時の文字エンコードタイプが指定できますが、今回に関しては違いがでないですよね。
(Shift-JIS,ASCII,EUCと試してみましたが結果同じでした。)
hexファイルのリードでエラーになるとのことですが、もしやと思い、行末に改行が無い
ファイルを新規に作成して試したところ、私の手元でも同じエラーになりました。ですので、
行末に改行(バイナリでは CR,LF(0D,0A) または LF(0A) のみ)を入れて試して頂けますか?
あと、復旧手順を読み返していて気付いたのですが、G10のVDD/GND/TOOL0/RESET以外の
端子には何も繋がないようにしておく(VDDのジャンパワイヤを抜いたときにHighが印加
されていないようにする為)というのを書き忘れていました。ですので、繋がないように
お願いします。すみません。
ご回答ありがとうございます。
バイナリエディタでなくテキストエディタによる作成でよかったのですね。
3個のうち1個は前回と変わりありませんが、2個はエラーメッセージが表示されることなくコマンド終了を確認し、
RFP V2.05.03(無償版)でブランクチェックの正常終了を確認しました。
私がダメにしたという可能性もありますが、ダメな一個が一番初めのチップだった可能性もあります。
(目印などつけておらず定かでありません。)
大変お世話になりありがとうございました。
みなさん、ありがとうございました。
1個めのチップで書き込みできなかったときにすぐに2個目で確認しなかった事に関して言い訳させてください。
3個のチップを犠牲(?)にして4個目にして書き込みが上手く行きましたが、実際に使用するのは5個目になります。
5個目はDIP基板にジャンパーピンをはんだ付けせず、ブレッドボードに挿したジャンパーピンにDIP基板を押し付けて書き込みを行いました。
ジャンパーピンをはんだ付けしてしまっては本来使いたいところに使えず無駄になってしまうと考えたのと、書き込みに失敗してもアプリ上で何度でもリトライできるものと軽く考えていたために2個目を試すのが遅れてしまいました。
いきなり動作不良(の可能性あり)とも考えられませんでした。
なぜ、DIP基板のままジャンパーピンをはんだ付けしたくないかと言うと、ICを実装した裏側に実装したいためです。→自作ボード部分図添付
ジャンパーピン→IC→DIP基板
の順ではんだ付けしたいと考えました。
LCDドライバLSIのためのクロック(50Hz)生成において、小さく,安くクロック生成できる手段として活用させていただきました。
(マイコンの機能をほとんど使っていなくて申し訳ありません。使い込むスキルもありません。)
みなさん大変お世話になりありがとうございました。
G10を50Hz生成部品として使う手もあったのですね。(画像は真似して作ってみた時の画面です。)
やりたかったことが出来るようになったとのことで、もうRulzを見ていないかも知れませんが、
もしまだ見ていたら、私の2016/7/16 21:20の投稿の中で知りたいと思っていた、Applilet EZ PL
for RL78が生成したソースのopt_byte.asmのOPTIONのデータがどうなっているか教えて頂けると
うれしいです。(すみません。オシロの波形の件とは違って、こちらの方は私の中のモヤモヤとした
感覚が今もまだ落ち着いてくれなくて、、、) あるいは、書き込んだHEXファイルの以下の部分を
教えて頂けるだけでも構いませんので。
ソースなら:
OPTIONデータの部分
一例を挙げるなら
DB 11110011B
HEXファイルなら:
行頭 :0400C000 に続く部分
:0400C000 ここから→ EEF3F9055D
とかです。
以下は真似した時のApplilet EZ PL for RL78の画面です。コンパイラはCubeSuite+/IAR/GNUを
選択出来るのですが、製品に含まれているCA78K0R V1.70でビルドしたものです。(あっ。しまった。
投稿後に気付いたのですが、周期はパルス幅の2倍になるとの説明文がヘルプにありました、、、)
:0400C000EEE3FB056B
でよろしいでしょうか。
マイコンはユーザー経験がほとんどないのでなにがどこにあるのかわかってません。
どこにあるどのファイルのどの部分か指定していただければ開示いたします。
(opt_byte.asmとは?)
クロックは0.01秒パルスで生成しました。
コンパイラはCubeSuite+を選択してます。
Applilet EZ PL for RL78による書き込みの再挑戦はやっていません。
返信ありがとうございました。以前よりも状況が理解出来てきました。実は、外部リセット端子を
「使用しない」(「P125/KR1として使用する」)にしてしまうと、今回の件は知っている人からすると、
且つ分かってしまえば、「G10のあるあるネタですね」みたいな感じ(ちょっと良く無い表現をすると
「そりゃ当たり前でしょ」という言い方をする人もいるかも?)なトラブルでした。推測ですが、多分、
Applilet EZ PL for RL78を試した最初の1回目で書けていたのだと思います。ただ、そちらは書けた
のに対し、(私の手元でも)RenesasFlashProgrammer V3.01が変な動きをしたので、(私の方も含めて)
混乱が深まって行ってしまったような気がします。すみません。
Applilet EZ PL for RL78はマイコンを知らない人でもG10を使える(or 楽しめる?)ようにする為の製品
だと思うのですが、このマイクロコントローラ設定ダイアログはマイコン(というよりG10そのもの)を
それなりに知っている人でないと意味が分からない上(ここはルネサスさんの気が利かなかった?)、
USBシリアル変換モジュールによる自作書き込み回路(ここは自己責任になるかな?)では面倒なことを
起こしてしまう外部リセット端子機能の選択を設定出来てしまうようになっていました。(少ない
ピン数でなるべく多くの機能を持たせようとした結果、ちょっと厄介な仕様になっている部分です。)
色々どうもすみませんでした。私からの問い合わせはもう無いです。情報ありがとうございました。
リセット端子の制御にRTSなどを使っていると、USBがコネクションしないと操作できないため電源投入時にマイコンが走ってしまうことがあるので FTDIが動き出すまで、リセットをLOWに固定できる仕組みがあるとオプションバイトを気にせずプログラムを書き込むことができるんですよねー。
返信ありがとうございます。
「あるあるネタ」の内容が理解できていません。
ろくにマニュアルも読んでいなくて気軽に質問をして申し訳ないのですが教えてください。
「リセット端子動作:リセット端子の選択 使用しない」にしてコード書き込みを実施した場合、
USBシリアル変換モジュールによる自作書き込み回路(ここは自己責任になるかな?)と
RenesasFlashProgrammerの組み合わせでは一度書き込みを行った後はマイコンにアクセスできなくなるという事でしょうか。
今回に関していえば、2個目以降はブランクチェックを確認できていますのではじめの1個目が運悪く不良動作のチップだったと考えますが、早くに2個目以降にチャレンジしていれば騒ぐ必要もなかったのかもしれませんがワンチャンスと言う認識はなかったのでやはりはまっていたのでしょうね。
一応web検索したつもりですが詳しい情報がみつからず、親切に教えて頂き助かりました。
私のような人がこのスレを見つけて問題解決に役立つ事を祈ります。