78K付録基板で作る
「78KマイコンUSBプログラマ」

平成20年7月26日

このツールの存在意義

    このツールは、トラ技付録基板を2枚用意して、片方を書き込み機にするものです。

    78K付録基板はトラ技BIOSが書き込まれているので、プログラムのダウンロードとフラッシュROMへの書き込みはUSB経由でできます。また、トラ技BIOSの上からは自分自身のフラッシュROMは書き換えられないので、操作を誤っても消してしまうこともありません。

    そのため、通常の使用範囲ではこの書き込み機を作る必要は全くありません。

    しかし、大きなアプリケーションを作りたい場合や、トラ技BIOSを外して16kバイトの全フラッシュROMを自由いという方もいるでしょう。ただし、RS232Cなどのレガシーインタフェースを用意するのは面倒です。

    そのような場合にお使いください。

    ※ このプログラムは無理に使う必要はりません。このプログラムはトラ技BIOSを外してオリジナルな起動プログラムを作りたい場合や、自作したUSBファームウェアを書き込んでみたい場合に使ってください。
    ※ このプログラムは一切無保証です。プログラムが書き込めなくても、ターゲット基板に回復不能なダメージを与えても一切責任を負いません。各自の責任でご利用ください

作り方

    RS232Cを使った書き込み機ではレベル変換とか面倒なことが必要でしたが、このツールは同じマイコン同士をつなぐのでレベル変換もいりません。ただ、線でつなぐだけです。

    2台の78K基板は、CSIというシリアル通信のプロトコルの信号で通信します。スレーブ側のNRESET、FLMD、SCI、SI、SOの5本の線を、マスターのP00、P01、P10、P11、P12にそれぞれつなぎます。

    csiwr_small.png

    クリックで拡大

     

    作った装置は次のような感じになります。

    プログラマ側のほうのUSBコネクタをつなぐと、ターゲット側にも電源が供給されます。

    おそらく、同時にLEDが点灯するはずです。

    csiwr_photo.jpg

     

プログラムのダウンロード

    このプログラムを実行すると、書き換えの前に、 ターゲットのフラッシュROMは全消去されます。
  プログラマ側のフラッシュROMは消去されません。

HEXファイルの整形について

    PM+が生成するHEXファイルは、下の図のように1行の長さが揃っていなくて、デコボコしています。また、必要のない領域はスキップされてしまっています。

    img1.png

    このようなHEXファイルを読み込んで書き込むのは思いのほか難しかったです。

    ROMに書き込むためには、1回の書き込みデータが16バイトや32バイトの境界にくるよう、データを整形しないと具合が悪いようなのです。そこで、78Kマイコンのプログラムの中で一度バッファしたりしてそのような整形をしようとも試みたのですが、RAM上で動くサイズ(2kバイト)よりも大きくなってしまいました。そういうわけで、78Kマイコンが直接HEXファイルを読むことはあきらめることにして、パソコン上でHEXファイルを一旦整形することにしました。

    整形済みのHEXファイルは下の図のようになります。

    img1.png

    このように整形するツールが、「HEXファイル整形ツール」です。

 

使い方

    @ HEXファイルの整形

    PM+が生成したHEXファイルを整形します。
    MS-DOSプロンプトから 付属のツール"hexfmt.exe"を実行します。

          hexfmt aaa.hex

    のように引数にHEXファイル名を指定して実行すると、 「整形済みHEXファイル」が生成されます。 作られるファイルの拡張子は.fhxです。

    A パソコンとの接続

    プログラマ側の78Kマイコン基板をパソコンに接続します。

    B 書き込みプログラムの転送

    付録マイコン基板(プログラマ側)に、csiwr.hexをロードしください。

    >load csiwr.hex

    C 書き込みプログラムの実行

    ロードしたcsriwr.hexを、F000H番地から実行してください。

    プログラマとターゲットが通信し、78KマイコンのIDコードを確認します。
    確認に成功すると、ターゲット上のフラッシュROMを消去します。 

    D ターゲットファイルの転送

    ステップ@で生成した「整形済みHEXファイル」を送信してください。

    書き込みには約30秒かかります。

csiwr_1.png

    E 完了

    転送が完了し、finと出たら成功です。

     

※書き込みに時間がかかる場合

    書き込みには少々時間がかかりますが、その原因はUSBでデータを送るのが速すぎて、USBが詰まってしまうことにあります。私の環境では詰まるもののちゃんと書き込めましたが、他のパソコンでもうまくいくかどうかは分かりません。
    うまくいかない場合はTeraTermのメインメニューで、[Setup] -> [Serial Port]を行い、1行送信ごとに1msの送信ディレイを入れるように設定してみてください。

動作のしくみについて

    下記のURLに「78K0/Kx2マイコン用 簡易書き込み回路,簡易プログラミング・ソフト(自作ライタ)」という情報があります。

    http://www.necel.com/micro/ja/promotion/kx2/flashprog.html

    この資料は78K0/Kx2用ですが、そのまま78F0730にも適用できるようです。
    本ツールは上記の資料を参考にして作られています。

    ソースコードも公開していますので、もっと使いやすいライタを作りたいという方はぜひとも挑戦してみてください。

 

注意事項

    @ このプログラムは無保証です。ご利用の結果いかなる事態が起ころうとも弊社はその責を負いません。お客様の責任においてご利用ください。

    A このプログラムによって書き込まれたターゲットマイコン上のプログラムが、長期間正しく保持されることは保証いたしません。

    B プログラムの仕様、基板の接続方法については予告無しに変更する場合があります。

     

chickens_back.gif 戻る

 Copyright(C) 2008 NAITOU Ryuji. All rights reserved. 無断転載を禁ず