ホーム › フォーラム › Texas Instruments › マイコン › C2000 › CAN Bootについて
このトピックには7件の返信が含まれ、2人の参加者がいます。2 年、 3 ヶ月前に Ge さんが最後の更新を行いました。
-
投稿者投稿
-
guestCAN Bootについて
お世話になっております。
TMS320F28379Dにて、
JTAGを使用せずにファームウェアをアップデートする方法を検討しています。通常はフラッシュから起動する設定で、
ファームウェア更新時のみCAN Bootからフラッシュブートローダーを起動して
ファームウェアを更新するようにしたいと考えております。マニュアルを参照したところ、CAN Bootを使用するためには、
BOOTCTRLレジスタを以下の設定とすればよいと理解しました。
(GPIO72と84の設定はGetModeとなっております。)BMODE:0x5A
Key:0x07この場合、BOOTCTRLレジスタがOTP (One-Time-Programmable) となっているため、
CAN Bootに設定してしまうとフラッシュからの起動に戻すことができないという理解でよろしいでしょうか?
また、上記の場合に通常はフラッシュから起動しファームウェア更新時のみCAN Bootから起動するよい方法はないでしょうか?以上、宜しくお願い致します。
お問い合わせありがとうございます。
ご認識の通り、BOOTCTRLレジスタはOTP領域にございますので、一度変更してしまうと以後設定を戻すことができません。
通常はフラッシュから起動し、ファームウェア更新時のみCAN Bootから起動する方法としては以下の(1)と(2)の2つの方法が御座います。
(1) BMODE:0x5A、Key:0x07と設定し、CANブートで常に起動する設定にします。
CAN ブートは、SCIブートと同様のフローをたどりますので、以下のように起動します。上の黄色ラインのところでKeyを入力するのですが、ここで0x8AA以外のKeyを入力するとFlashブートで起動しますので、この方法でCANブートとFlashブートを選ぶことができます。
(2) Flashの特定のセクターにCANブート用のプログラムを作成し書き込みしておきます。その後、CANブートしたいときのみ、CANブート用のコードが実行されるようにプログラムを作成します。
プログラムのアップデートのサンプルプログラムがC2000wareの以下のフォルダに御座います。こちらはSCI用のサンプルですが、こちらをベースにカスタマイズすることでCANでの書き換えコードに変更できます。C:\ti\c2000\C2000Ware_4_01_00_00\device_support\f2837xd\examples\dual\F2837xD_sci_flash_kernels
以上、よろしくお願いいたします。
guestお世話になっております。
早速ご回答頂きありがとうございます。
(1) の方法についてですが、
受信したCANの信号が0x8AA以外の値であった場合に
フラッシュから起動するという理解をしました。このとき、CANの信号を受信しなかった場合はどういった挙動になるのでしょうか?
懸念点としては、外部からのCAN信号が必要だとすると基板が単独で動作できなくなるのではないかと思います。
そのため、フラッシュ起動時は外部からCAN信号は送信しないようにしたいと考えております。以上、宜しくお願い致します。
CAN信号を受信しない場合、以下の赤丸の箇所から抜けられずデバイスは起動できません。
そのため、ご所望の動作を実現する場合には(2)をご検討頂けますでしょうか。
以上、よろしくお願いいたします。
guestお世話になっております。
ご回答頂きありがとうございます。
赤丸のAutobaudについて調べると、
シリアル通信において通信速度などを自動設定する機能のようですが、
CANでも適用されるのでしょうか?確かにマニュアルには、CAN bootloaderはSCI bootloaderと同じシーケンスと記述されていますが…。
以上、宜しくお願い致します。
失礼いたしました。ご指摘いただいたようにAutobaudはCAN Bootにはございませんでした。
CAN BootではAutobaudはスキップされ、Key Value(0x8AA)の受信のところまで進みますが、CANでデータを受信するまでここでWhileループで待ちますので、Flashブートに入るには何かしらCANのデータを受信する必要がございます。
以下のファイルがCAN Bootのソースコードになりますので、コードの詳細はこちらでご確認いただけます。
C:\ti\c2000\C2000Ware_4_01_00_00\libraries\boot_rom\f2837xd\revB\rom_sources\F2837x_bootROM\cpu01-bootROM\source\DCAN_Boot.c
以上、よろしくお願いいたします。
guestお世話になっております。
承知致しました。
残念ながらCAN Boot設定時にフラッシュから起動するには
外部からCAN信号の入力が必要ということで理解致しました。
基板が単独で起動できなくなるのは問題があるため
(2)のやり方で検討しようと思います。
ご回答ありがとうございました。
ご返信いただきありがとうございます。また不明点が御座いましたらお問い合わせください。
-
投稿者投稿