文書の過去の版を表示しています。
目次
ファームウェア更新方法 (jtag2updi)
このページでは、サークル「MT40」で頒布している、「Nゲージ向けDCCデコーダ (第二世代)」のファームウェアを更新する方法についてご案内しております。
これ以外の機種の場合は、該当の機種のページをご参照ください。
はじめに
Nゲージ向けDCCデコーダ (第二世代)では、マイコンにATtiny1606またはATtiny806を使用しております。
そのため、ファームウェアの書き換えを行うためにはUPDIインターフェースに対応したマイコンライターを用意する必要があります。
この手順書では、マイコンライターを用意するところから説明します。
更新に必要なもの
ファームウェア更新を行うために必要となるものは、下記となります。
Arduino
マイコンへの書き込み機として、Arduinoを使用します。
(jtag2updiを書き込んで使用します)
この手順でプログラムを書き換えますので、スケッチを消去してもよいものをご用意ください。
互換機等でも対応可能であると思われます。
デコーダ側のプログラムポートの確認
デコーダの各機種ごとに、プログラムポートの位置と配線の向きを確認してください。
どの機種も1.27mmピッチとなっておりますので、1.27mmピッチピンヘッダを使ったケーブルを作成すればより確実に書き込みを行うことができます。
Atmel ICEやPICKit4、各種評価基板など、UPDIに対応した純正の書き込み機をお持ちの場合は、この手順に従ってArduinoで書き込みを行う必要はなく、それらを使って書き込みを行うことができます。
配線手順に従って接続を行い、書き込みを行ってください。
配線方法
DCCデコーダ基板のPROG端子の「GND」を、Arduinoの「GND」端子にジャンプワイヤで接続します。
PROG端子の「UPDI」は、4.7kΩの抵抗器を介して、Arduinoの「#6」端子 (Digital #6) に接続します。
もっとも単純な接続事例を下記写真で示しますので、参考にしてください。
接続時の注意点
- PROG端子に接続するワイヤと、デコーダ上のPROG端子以外の接点と接触していないことをかならず確認してから通電を開始してください。
PROG端子と関係のない端子が電気的に接触している場合、高確率でデコーダが焼損します。
(特にRail+、Rail-、12Vに接触した場合はほぼ確実に焼損します) - PROG端子に接続するワイヤ2本 (GND、UPDI) 同士が接触している場合は、ファームウェアの書き込みはできませんが焼損はしません。 安心して配線を確認後、書き込み操作をやり直してください。
Arduinoをライターにする
用意したArduinoにjtag2updiを書き込み、UPDIライターとして機能するようにします。
jtag2updiのダウンロード
下記ページから、jtag2updiをダウンロードします。
https://github.com/ElTangas/jtag2updi
ダウンロードしたファイルを展開すると、下記の内容が表示されますので、「source」フォルダを「jtag2updi」に変更します。
名前を変更した「jtag2updi」フォルダを開き、「jtag2updi.ino」を開きます。
jtag2updiのビルド・Arduinoへの書き込み
書き込み機として用意したArduinoの種類に合わせ、ボードの種類を選択します。
今回の例ではArduino Unoの互換機を用意したため、「Arduino Uno」を選択します。
メニューから「スケッチ」「検証・コンパイル」を選び、ビルドします。
「マイコンボードに書き込む」を選び、Arduinoに書き込みます。
これで、ArduinoをUPDIに対応したマイコンライターとして使用する準備が整いました。
ファームウェアの準備
こちらのページから、使用しているデコーダに適合するファームウェアをダウンロードしてください。
現在の最新バージョン: Version 2021.06.28 (v1.0.1)
デコーダの型番 | 対応するファームウェア |
---|---|
K3066RA | MotorDecoder2.ATtiny1606.hex |
K3057RA | MotorDecoder2.ATtiny1606.hex |
K3057RA-S | MotorDecoder2.ATtiny1606.hex |
K3057-T | FuncDecoder2.ATtiny806.hex |
K3057-ST | FuncDecoder2.ATtiny806.hex |
書き込みを行うためのフォルダ準備
書き込みに用いるプログラム(avrdude.exe)、コンフィグファイル(avrdude.conf)、ファームウェアファイルそれぞれのパスをすべてコマンドに書けば動作するのですが、面倒ですので必要なファイルを一度すべて同じフォルダにコピー後、書き込みコマンドを実行します。
下記のファイルが必要となります。
ファイル名 | 存在しているパス |
---|---|
avrdude.exe | C:\Program Files (x86)\Arduino\hardware\tools\avr\bin |
avrdude.conf | jtag2updiを展開したフォルダ |
ファームウェアファイル | ダウンロードしたファイルをコピー |
各ファイルは、それぞれ下記の場所にあります。
すべてのファイルを集めてきて、下記の内容のフォルダを作ります。