お世話になっております。GAです。現在、RX660を使用した基板に対して、E2 Liteを経由したRenesas flash Programerでの書き込みを行おうとしております。その際に、以下のようなエラーログが出て、上手く書き込みが出来ません。
[ログ本文]接続デバイス : RX Groupツールに接続します。使用ツール : E2 emulator Lite (2FS045144B), インタフェース : 2 wire UARTツール電圧 : OFFエミュレータのファームウェアバージョン(更新前) : 3.03.00.005エミュレータのファームウェアバージョン(更新後) : 3.04.00.000ターゲットデバイスに接続します。メインクロック : 16.000000MHzターゲットデバイスを設定します。ターゲットデバイスを設定します。通信速度 : 1,000,000 bpsSignature: Device: RX Group Device Code: (省略)選択されたブロックを消去します。 [User Boot Area 1] 0xFF7F8000 - 0xFF7FFFFF サイズ : 32 Kツールから切断します。エラー(E100000E): デバイスでプロテクションエラーが発生しました。 (Command: 50, Response: DA)操作は失敗しました。[ログ終了]
同じE2Liteを使用して、CS+上でのデバッグを行った際には、問題なくデバッグが出来ております。デバイス側の設定として、特別プロテクションに関わる設定を行っていないのですが、初期設定として、プロテクションをかけるような設定となっているのでしょうか。(それか、回路的にプロテクションかける方法があるのでしょうか)拙い質問で申し訳ございませんが、何卒お知恵をお借り出来ますと幸いです。
[追記]申し訳ございません、1点記載忘れていたことがございました。Renesas flash Programerを用いて、以下のことは出来ました。・ブロック情報を読み出す・フラッシュオプションを読み出す・ブランクチェック
動きを見ている限り、書き込みやイレースのコマンドが上手く出来ていないようです。何かご存じのことがあれば、お教えいただけますと幸いです。以上です。宜しくお願い致します。
Flash Programmerの設定とCS+の設定がどうなっているかわかりませんが、電源供給のオプション、どちらかが有効でどちらかが無効なんじゃないかな?
Shoji Yamamoto様
ご確認ありがとうございます。電源供給オプション、確認させていただきましたが、どちらも供給しない設定で統一されておりました。RFPとCS+のそれぞれの設定をスクリーンショットで撮影しましたので、送付させていただきます。ご確認いただけますと幸いです。CS+RFP
以上です。宜しくお願い致します。
チップ出荷時はプロテクションは掛かっていません。プロテクションを掛ける方法はあります。
ターゲットデバイス-メモリ情報の読み出し
(適当に保存するファイル名を指定)
エリアの選択→Config Area1
上記で読み出すと、
S0110000437265617465642062792052465033S31500120040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8S31500120050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98S31500120060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88S31500120070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78S70500000000FA
4行ぐらいのmotファイルになりますが、全て0xFFになっていますでしょうか。
IDE=1で、WRPRやSEPRが0になっていれば、消去時にプロテクションエラーになるはずですが、CS+でダウンロードができるのであれば、プロテクションの問題じゃない気がします。
問題の切り分け方法ですが、
(1)コードフラッシュ、ユーザブート、データフラッシュのどの領域の消去が出来るかどうかを確認する
ブロック設定でユーザブート領域のチェックを外して、コードフラッシュやデータフラッシュのみにチェックを入れて消去を行いエラーになるかを見る。(消去のみにチェック、消去オプションも、ブロック消去とチップ消去等を変えて挙動を確認する)
(2)ロックビットの確認
ブロック情報の読み出しで、Lockbitにチェックが入っているかを見る(ユーザブートの消去でエラーになっているのであれば、Lockbitは関係無いはずですが)。
消去エラーが出ているのは、ユーザブート領域の様ですので、CS+でのダウンロードに問題がなければ、コードフラッシュ領域に対しての消去、書き込みは問題無いのかもしれません。
(ユーザブート領域のチェックを外して消去・書き込みを行う事でとりあえず使用する事はできるかも?)
tf様
ご回答ありがとうございます。また、順を追った説明、とても助かります。
>4行ぐらいのmotファイルになりますが、全て0xFFになっていますでしょうか。→こちらに関しては、読み出すことが出来ませんでした。エラー内容は書き込みの際と同じ、 「デバイスでプロテクションエラーが発生しました。 」でした。 後ほど、CS+上でレジスタを確認してみます。
>(1)コードフラッシュ、ユーザブート、データフラッシュのどの領域の消去が出来るかどうかを確認する→こちら、確認したところ、全ての領域のブロック選択消去、全ブロック消去の両方にて、 「デバイスでプロテクションエラーが発生しました。」というエラーとなりました。
>(2)ロックビットの確認→こちら結果を撮影致しましたので、貼付致します。 確認したところ、Lockbitの設定はされていないようです。
また、1点お伝えし忘れていたのですが、現在、基板単体の確認ではなく、装置に組み込んだ状態になります。(装置自体が他社製品で、詳しい情報がお伝え出来ない、というか私も知らなかったりしますが…)今後並行して、基板単体にしたときに書き込みが出来るかは試してみようと考えております。
>現在、基板単体の確認ではなく、装置に組み込んだ状態になります。
ブートモード接続ができていますので、装置に組み込まれている事は関係ありませんし、基板単体にしても(チップを別なボードに張り替えても)挙動は変わらないでしょう。
コードフラッシュやデータフラッシュ単体でも消去出来ないのであれば、SEPR=0に設定されているのではないかと思うのですが。(実際に試してみたい所ではありますが、SEPRは(IDE=1で)一度0に設定すると元には戻せないので…)OCDEは未設定(1)なので、デバッガによる接続やコードフラッシュの書き換えは行えるのだと思います。
(装置に組み込んだ人が、書き換え出来ない様にプロテクト設定を行ったのでしょうかね?ユーザに出荷時のデータを読み取らせないためだったらデバッガ接続禁止も、もしくはID設定を行うと思いますので、デバッガ接続は許すけどシリアルプログラマは使わせない微妙な設定ですね。)
(デバッガでオプション設定メモリは覗けると思いますので、答え合わせは簡単です。)