78K0R/KE3-AのファームをRL78/G13に移植してみて、RESET周りの動きが異なっていて困っています。
1, RL78の方の電源を入れた時、RESFレジスターのTRAPビットが1になっている。他のビットは0。
ハードリセットを掛けた時やVddのみの入り切りでは、RESFレジスターは全て0。
GNDとVddの両方を入り切りしたときに(同時ではなく、GNDとVddの入り切りに時間差があっても)、TRAPビットが1になります。
78K0R/KE3-Aの場合はファームを書き換えた直後に電源を入れた時にTRAPビットが1になりますが、その後電源を入り切りしてもTRAPビットが1になる事はありませんでした。
上記の78K0R/KE3-AとRL78/G13の動作は再現性があります。
RESFレジスターの読み込み場所は、各機能の初期設定を行う前のファームの先頭で読み込んでおり、メインループの外側です。
RL78のこの動作を回避する方法はありませんか? 78K0R/KE3-Aと同じ動きで良いのですが
2, 以下の現象は常に起きるのではなく、起きたり起きなかったりします。
RL78/G13の-RESET端子をLowにしたまま,電源の入り切りを行うと、RL78/G13が動かなくなる。再度動かすにはファームを書き換えなければならない。
78K0R/KE3-Aではこの現象が見られませんでした。
他のCPUから動作を制御することがありますので、不安が残ります。
IKUZOさん、返信ありがとうございます。 >フラッシュ・メモリが消えているもしくは書き換わっているのではと疑います はい、こちらを疑っていました。 どうしてそうなるのか疑問でしたが、 E1とか無しで実機で確認したのですが、フラッシュ・メモリ・プログラミング・モードに遷移してたら、 辻妻が会います。
ただ、どうしてRL78では起きたのか? 78K0Rと同じ回路なのですので、そこらへんが疑問です。
ハルヒさん、こんにちは。NoMaYと申します。以下の部分ですが、VDDを先に繋いでGNDをその後で繋ぐのですか?私の場合は(というか一般的には?)、その手順は何かマイコンを壊してしまう危険性が気になってやらないと思うのです。(マイコン側の回路全体が他とはアイソレートされていれば大丈夫なのでしょうけれども、、、)GNDを先に繋いでVDDをその後で繋ぐ、というのでは何か都合が悪いことがあるのですか?(この順番が一般的だと思うのです。) 動きが異なるという話以前の話ですが気になりましたので、、、> ハードリセットを掛けた時やVddのみの入り切りでは、RESFレジスターは全て0。> GNDとVddの両方を入り切りしたときに(同時ではなく、GNDとVddの入り切りに時間差があっても)、TRAPビットが1になります。
ハルヒさん、こんにちは。NoMaYです。そういうことですと、以下の違いというのは、こういうことですか? ちなみに、プログラムが意図せず書き換わっているかどうかは、期待されるプログラムイメージと同等のHEXファイルを作成して、RFPでベリファイしてみれば確認出来ると思います。試してみてはどうでしょうか?それから、そもそも、78K0R/KE3-Aの場合にファームを書き換えた直後に電源を入れた時にTRAPビットが1になることからして、何かおかしいですよね、、、> ハードリセットを掛けた時やVddのみの入り切りでは、RESFレジスターは全て0。> GNDとVddの両方を入り切りしたときに(同時ではなく、GNDとVddの入り切りに時間差があっても)、TRAPビットが1になります。前者:(1) 電源側とGNDは繋いだまま、電源側とVDDのみ接続を切った後で再度接続する後者:(1) 電源側とVDDの接続を切る(2) 電源側とGNDの接続を切る(3) 電源側とGNDを接続する(4) 電源側とVDDを接続する
ハルヒさん、こんにちは。NoMaYです。ところで、タイトルにあるWDTEに関しては何があるのでしょうか?(もしタイトルの書き間違いならば、タイトルも後からでも修正出来ますよ。)
NoMaY様 「RESFレジスターのTRAPビットが1」の件についてでしたら、CPU内部のレジスターの振る舞いですのでベリファイは意味がないと思いますし、 「-RESET端子をLowにしたまま,電源の入り切り」の件でしたら、IKUZO さんの仮説がしっくりします。 前者、後者はその通りです。
題名の間違い指摘有難うございます。