stlと申します。
RA2E1マイコンへの書き込みをRFPを使って行っています。
SWD接続でMD端子をLOWにした場合(SCIモード)で、RFPのインターフェースの設定を「SWD」にすると接続できないのですが、これはなぜでしょうか?
「RA2E1 ユーザーズマニュアル」の3.2.2ではSCIブートモードでもプログラムの書き込みは出来るというふうに書いてあると思うのですが。
ちなみに、設定を「2wire UART」に変えると接続が出来ました。
>RFPのインターフェースの設定を「SWD」にすると接続できない
仕様だと思います。
2wire UART = SCIブートモード
ですね。
RA2E1の書き込み(ブートモード)の仕様は、
https://www.renesas.com/jp/ja/document/apn/system-specifications-standard-boot-firmware-ra2-application-note?r=1469021
にドキュメントがあります。
RFPでSWDインタフェースで書き込みが出来るマイコンは最近のRA6E2とかです。(RA2E1は「ブートモード」でのSWDインタフェースでの書き込みには対応していません…もちろん、SWDを使用した「デバッガ接続」でのROM領域への書き込みはできます)
ちょっと補足します。
ブートモード:外部からマイコン内蔵のフラッシュ(ROMやデータフラッシュ)に書き込みを行う動作モード
RAマイコンでは、ブートモードで使用される外部との通信手段が3種類あります。
(1)SCI
どのマイコンでもサポートされています。TXD9とRXD9の2本の通信線を使い、UARTのプロトコルで通信を行います。2 wire UARTはこの通信モードです。
(2)USB
USBのデータ線(D+/D-)を使って、通信を行います。USBのデータ線に加え、接続を検知するVBUSの信号線も接続する必要があります。PCから書き込みを行う場合は、別途マイコンと接続するためのハードウェアが不要ですので、ボード側でUSBブートモードに対応していれば、一番お手軽な接続方法です。当然USBインタフェースを持たないRAマイコンでは使用不可です。(※RFPで書き込む場合は、2 wire UARTを選択します。マイコン側がPC上でCOMポートとして認識されます。)
(3)SWD(シングルワイヤデバッグインタフェース)
SWCLK, SWDIOの信号線を使って通信を行う方法です。一般的には、E2LiteやE2、J-Linkで接続して使用します。現状RA6E2, RA4E2, RA6T3, RA4T1のみ対応しています。(実際にベンチマークを取ったことはありませんが、SWCLK=6MHzで通信可能なので、書き込む容量が大きい場合は、SCIに比べ速度的なメリットがあるかも知れません。)
RFPでの書き込みは、ブートモードを使用した書き込みです。
お答えいただきありがとうございました。
確認をしたいのですが、マイコンとエミュレータ間の接続と起動モードというのは、別の話ですよね。
RA2E1マイコンだとマイコンとエミュレータ間の接続は、SWD接続とSCI接続があり、それぞれの接続において、シングルチップモードとSCIブートモードがあるという理解で合っているでしょうか?
また、RFPのインターフェース設定の「SWD」、「2wire UART」はそれぞれが、SWD接続時のシングルチップモード(MD = 1)、SWD接続時のSCIブートモード(MD = 0)を意味するのでしょうか?
>マイコンとエミュレータ間の接続と起動モードというのは、別の話ですよね。
別な話です。
(1)シングルチップモード
(2)ブートモード
(3)デバッグモード
マイコンの動作(起動モード)は、ざっくりいうと上記のいずれかです。
シングルチップモードは、マイコン単体で動作するモードです。(外部に何かをつながなければ動かないということはない。)ブートモードと、デバッグモードは、外部に何か(ライターやデバッガ等)をつないで、外部と通信する必要があるモードです。
ブートモードの際の外部接続は先のリプライで示した通りです。デバッグモードの際の外部接続は
(1)SWD接続
SWCLKとSWDIOを使用した接続。RAマイコンですと、どのマイコンもこの接続が可能です。
(2)JTAG接続
TCK, TDO, TDI, TMSを使用した接続。安価なRAマイコンは、この接続をサポートしません。(RA2E1はJTAG接続が出来ません)また、E2はJTAG接続対応ですが、E2Liteは(RAマイコンでは)JTAG接続に対応していません。
の2通りとなります。(SCI接続ではデバッグモードで動かす事が出来ません。)上記が動作モードの話。
外部接続という観点では、
・SCi接続(2 wire UART)
→ブートモードのみ
・SWD接続
→ブートモード(最近のRAのみ)
→デバッガ接続
です。
>また、RFPのインターフェース設定の「SWD」、「2wire UART」はそれぞれが、SWD接続時のシン>グルチップモード(MD = 1)、SWD接続時のSCIブートモード(MD = 0)を意味するのでしょうか?
違います。
RFPは、ブートモードのみの対応ですので、「SWD」「2 wire UART」は接続方式の相違で、どちらも、ブートモードでの動作となります。
「SWD接続時のシングルチップモード」「SWD接続時のSCIブートモード」どちらも存在しないイメージです。
SWD接続時のMD=1の場合で、FSPの接続が出来たのですが、これはSWD接続のブートモードということになるのでしょうか?
RA2E1はブートモードでのSWD接続をサポートしていないので、RFP(RenesasFlashProgrammer)ではつながらないはず
→実際にやってみましたが、…つながりました
仕様上つながらないと言いましたが、ウソです。申し訳ありません。
考えられることですが、
(1)実はRA2E1はブートモード(SWD接続)をサポートしている
(2)RFPがデバッグモードで接続している
のどちらかじゃないかと思います。RA2E1とRA6E2(SWD接続のブートモードをサポートしているマイコン)で、RFPが表示するメッセージを見比べましたが、多分正解は(2)だと思います。
→「RFPはブートモードのみの対応」というのが誤りであると思われます
現行バージョンのRFPは、「ブートモードとデバッグモードでの接続(SWDインタフェース)をサポートしている」というのが正しいと思われます。(あくまで推測ですが)
申し訳ありません、訂正します。
デバッグモードでの接続は、MD=1が仕様(だと思われる)なので、デバッグモードでの接続であれば、MD=1でつながるはずです。
stlさんのリプライで、「FSPの接続」と書いてありますが、RFPの誤記でしょうか、それともFSP+e2studioでしょうか?
RA2E1は、仕様書上は、SWD接続のブートモードは無い様に読み取れます。RFPでの接続は、多分デバッグモードでの接続であると思われます。(確証はありません)e2studio(+FSP)での接続の場合は、デバッグモードでの接続で、MD=1でつながるのが仕様だと思います。
(なお、RA6E2でのSWDブートモード(こちらは仕様書上ブートモード対応)は、MD=1でつながります。なので、ブートモードは必ずMD=0という訳でもないのでしょう。)
>>(2)RFPがデバッグモードで接続している
tfさんのリプライから、上記の通りだと思いました。
>> stlさんのリプライで、「FSPの接続」と書いてありますが、RFPの誤記でしょうか、それともFSP+e2studioでしょうか?
RFPの誤記でした。失礼しました。
>>RA2E1は、仕様書上は、SWD接続のブートモードは無い様に読み取れます。
これはどちらを確認してそのように思われたのでしょうか?
「E2エミュレータ, E2エミュレータLiteユーザーズマニュアル別冊 (RA接続時の注意事項)」の図2.7にシングルチップモード、SCI/USBブートモードとあるので、SWDにもブートモードがあるのだと思っていました。
>これはどちらを確認してそのように思われたのでしょうか?
・RA2E1のハードウェアマニュアル
・RA2E1のブートファーム仕様書(本スレッドの先頭の方で示したドキュメント)
のどちらにも、SWD接続のブートモードの記載がありません。
なお、(SWDブートモードをサポートする)RA6E2は、ハードウェアマニュアルとブートファーム仕様書の両方に、SWDブートモードの事が書かれています。
RA2E1の資料しか見ていなかったのですが分からなかったのですが、RA6E2の資料ではSWDブートモードの記載があるのを見ると、RA2E1にはSWDブートモードはないということになりそうですね、