JYETECHのブートローダを用いたファームウェア更新の仕方                             DN000-02v01
 

 多くのJYE Tech製品(たとえばDSO062,DSO082,DSO096,BD081,DSO068など)には組み込みのブートローダが入っています。このブートローダを使えばプログラマを使わずにファームウェアの更新ができます。このブートローダを使うには指定のツールと次に示す手順が必要となります。この資料ではツールの説明と使い方を理解できるようにまとめました。

   まずはブートローダについて簡単に説明します。

 普通ブートローダはマイコンのROMメモリーに入っているちっちゃなソフトです。このソフトはPCと通信する機能があり、マイコン自身にプログラムを書き込みます。このプログラムが走りだすと、ホスト側に接続要求を出し指定のインターフェイス(多くはシリアルポートです)をチェックするように制御します。それは大体短い時間(およそ1~2秒)で行われます。もし接続要求に所定時間応答がないと制御をメインソフトに移してしまいシステムは通常に立ち上がります。もし、接続要求が受け入れられたら、ホスト側と接続状態を確立し、ホスト側からのコマンドを受け付けます。この時点でホストはデータ(プログラム)をブートローダに送り出し、マイコンのフラッシュROMに送ったデータをプログラムするように命令します。一度プログラムが行われるとブートローダはリセットしてもう一度システムを立ち上げなおします。

 ブートローダを使うためには明らかに次の3種の条件が無いといけません。
 1)プログラムを書くためのマイコンはプログラム用のブートローダを内蔵し、必要な時にはブートローダが動かないといけません。
 2)プログラムされる側のマイコンとホスト間はシリアル接続が必要です。
 3)ホスト上で走るアプリケーションソフトはブートローダと連携必要です。

ブートローダを動かす準備
  通常はブートローダは出荷時に組み込まれています。ユーザは触れる必要はありません。
しかしブートローダが壊れてしまったら、適当なプログラマを用いるなどして正式なプログラムを書き込むためのプログラム書き込みが必要になります。JYE Tech製品のブートローダHEXファイルはJYETechのWEBサイト www.jyetech.com に用意されています。そのさいユーザはAVRマイコンのFUSE設定がブートローダに影響あることを忘れないでください。もしプログラムをする際にはマイコンのデータシートを良く見ることを強くお勧めします。


シリアル接続

  マイコンにはホストをつなぐための大体1個か二個のシリアルポートが用意されています。インターフェイスの信号レベル規定の違いであるとか、接続方式の違いを補足するためにコンバータが必要となります。図1とか図2に典型的な2種類のコンバーターを示しました。

level

usb

  USBがかなり一般的になったのでUSBシリアルコンバーターは最近頻繁に使われるようになりました。市場にはUSB-UARTコンバータがたくさんの種類あります。JYE TechでもこうしたコンバータとしてPN08101とかPN07301を用意しています。
  これら製品についてはJYEのホームページでお確かめください。また多くのJYE製品、たとえばDSO082,DSO096,BD081,DSO068にはUSB-UART変換機能が内蔵されています。 またUSB-UART変換機を動かすには適当なドライバソフトをインストール必要です。
JYE Techはこうした変換機能にCP2102を使用しています。これに対応するドライバは次からダウンロードして使います。
http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx
ドライバをインストールしたときについてくる説明書を良く見て使ってください。

ホスト側のアプリケーションソフト

  ホスト側のプログラムとして”AVRUBD.exe"を使います。ウィンドウ用しかなく、開発したのはShaoZiyangさんhttp://blog.ednchina.com/shaoziyang/です。このソフトはJYE TechのWEBサイトからダウンロードできます。

http://www.jyetech.com/Products/LcdScope/avrubd.rar
  AVRUBDはインストール操作を必要としません。すぐに使えるので便利だと思います。

ファームウェアの更新手順
  まずはJYE TechのWEBから更新対象のファームウェアをダウンロードしてください。そして次のように進めます。
 1)MPU基板とホスト側をUSBあるいはシリアルポートでつなぎます。


 2)AVRUBD.EXEを開始して”Language"をクリックし”English"にします。


 3)メインメニューの”Options"をクリックして”AVR"のタブで図3のように設定します。
     ConnectKeyはHEX64とし、フラッシュサイズは64kにします。


 4)次に図4のように”System"タブで設定変更します。通信プロトコルは”Lite Xmodem"で”Maxmum connection count"を50か100にします。これで接続が簡単になります。

option avr   sys

                     図3                                 図4

 

 5)”Com Port"のタブで図5のように設定を変えます。Com Portの番号は実際に使用している番号にしてください。これは重要です。 通信フォーマットは9600bps、8N1、パリティなし、フォルー制御なしです。


 6)必要なHEXファイルをAVRUBDに読み込むため”File-Load"をクリックしファイル(フラッシュに書き込むファームウェア)を選択します。


 7)次に”Dn"アイコンをクリックし(図6を参考にするか、メインメニューで”Operate-Download"をクリックしてすぐにマイコン側をブートローダモードにします。それぞれの機種でブートローダにする仕方が違います。関連のマニュアルを見てください。普通には電源再立ち上げするか、ソフト/ハードリセットします。他にも色々方法があります。手短にはブートローダモードに入り(電源立ち上げがリセットで)その後”Dn"アイコンを正しくクリックしてください。そうするとAVRUBDはブートローダと通信を始めようとします。もし通信開始に失敗したら、画面は図7のようになります。


 8)そうでない場合は更新は開始し、成功したら図8のようになるでしょう。

  更新書き換えに成功したら、マイコンの再ブートは旨く行ったということです。

こmdn

              図5                         図6

 

ng  ok

                         図7                                図8

 

バージョン   日時    解説
01 2012.01.02 最初の原稿
 

inserted by FC2 system