2011年7月8日金曜日

Writer509の制御ソフト

前に紹介させていただいたPICマイコンの書き込み器Writer509CDCのPC側の制御ソフトを、最近、今更ながら、開発しています。Write509CDCはオレンジ電子さんのWriter509と互換性があるので、制御ソフトはオリジナルのWrtier509用のものがそのまま使えるので、これまでは、ずっとそれを使わせていただいていたのですが、ちょっとした動機があって、改めて自分で開発を始めました。その動機とは、次の2つです。
①拡張PIC16に書き込みたい。
②Linux(Ubuntu)でも使いたい。

拡張PIC16(エンハンスドコア)とは、PIC16F1xxxという品番のシリーズで、従来のPIC16シリーズの機能を大幅に拡張した上、価格も従来のPIC16シリーズより安いという魅力的なマイコンです。今年になってから、秋月電子でも取り扱いを開始し、非常に安く入手できるようになりました。これまでは、PIC16シリーズを、必要な機能と価格と相談しながら、いくつかの品番を使い分けていたのですが、この拡張PIC16だと、必要なピン数ごとに、1品番だけ用意しておけば良いような感じです。
このように魅力的な拡張PIC16ですが、私の愛用のWriter509CDCでは、PC側の制御ソフトが、最近更新されていない関係で、この新しい拡張PIC16シリーズには対応していませんでした。オレンジ電子さんオリジナルの制御ソフトW509以外にも、Writer509に対応した制御ソフトはいくつか存在するのですが、私が探した範囲では、今のところ、拡張PIC16に対応しているものはないようです。

それと、2番目の動機の、Linux対応ですが、テキスト・ターミナルで使用できるものはあるのですが、GUIのものは発見できませんでした。

そういうわけで、今更ながら、自分で制御ソフトを作り始めました。名付けて「W509Cs」です。開発コンセプトは次のとおりです。

①拡張PIC16対応
②Linux、Windowsなどマルチプラットフォーム対応
③GUI操作
④シンプル、使いやすいもの(あまり高機能化はしない)

操作画面はこんな感じです。
 
開発言語はC#でコードを書いています。「W509Cs」の「Cs」は「C sharp」の意味です。基本はWindows版で、開発環境はMicrosoftのVisual Studio 2010 Expressです。Linux版は、Windows版のC#のコードをベースにして、Monoを使って移植します。開発環境はMonoDevelopです。GUI部分はGTK#を使います。
このよなVisual Studio⇒MonoDevelop(+GTK#)の移植性を考慮して、基本動作部分をGUIと切り離したクラスモジュール化した構造にしています。

開発に際しては、以下の方々のサイト、および公開されているソースコードを参考にさせて頂きました。ありがとうございます。

オレンジ電子さんのオリジナルのWriter 509
PIC Writer 509 for Linux
picburn

そして、ようやく、Windows版が、なんとか動作する状態にまでになったので、公開させて頂きます。ただし、動作確認はまだまだ不十分ですので、α版という位置づけです。
そんなものですが、もしご興味がおありでしたら、下のリンクからダウンロードください。ただし、ご使用は、あくまで自己責任でお願いします。また、本ソフトの使用、およびソースコードの転用等は個人での非営利目的の使用に限り自由とさせて頂きます。

W509Cs Ver.0.2.0のダウンロード
Ver.0.2.0に更新しました。(2011/8/1)
※上記のダウンロードファイルの中の「deviceconfig.dat」 に誤りがありました。
↓こちらから修正版をダウンロードして差し替えてください。(2012/04/05)
deviceconfig.dat修正版



◆動作環境:
Windows XPです。Windows 7も、多分動くのではないかと思いますが、持ってないのでわかりません。
あと、.Net Framework 3.5が必要です。client profileでも大丈夫です。ない場合はこちらからインストールしてください。
<Microsoft .Net Framework 3.5 Client Profile>

◆インストール:
上記環境が揃っていれば、W509Csはインストール操作は不要です。exeファイルの入ったフォルダ「bin」をローカルにコピーして下さい。その中の「W509Cs.exe」ファイルをダブルクリックすると起動します。デバイス定義ファイル「DeviceConfig.dat」は必ずexeファイルと同じフォルダ内に置いておいて下さい。

◆起動方法
「W509Cs.exe」をダブルクリックして起動してください。
起動時にコマンドライン引数で起動オプションを指定できます。
-c: デバイス定義ファイル指定 例) -c MyDeviceConfig.dat
-s: 通信速度指定(デフォルトは38400) 例) -s 9600

◆使用方法:
使い方は、特に説明しなくても、適当に使っていただけるのではないかと思います。


◆対応ライタ:
Writer509CDC
オリジナルのWriter509は持っていないので動作確認はできていません。
※注意:
拡張PIC16の高電圧書き込み用Vppは上限が9Vです。
私のWriter509CDC全機能版では、駆動電源を3.3Vレギュレーターの方(PIC18F14K50に書き込む場合の設定)に切り替えて下さい。
Writer509CDC簡易版の場合は006P角型電池の電圧9Vを使いますので、ほぼ大丈夫だと思いますが、新しい電池の場合は9.5V以上あるので、若干オーバーです。心配な方は、少し使って9V以下になった電池を使うか、または汎用のダイオード1つかまして接続するなどして下さい。

◆対応デバイス:
対応デバイスとしては、picburnのデバイス定義ファイルの中から、PIC12/16のミッドレンジのものをそのまま流用させていただきました。それプラス、秋月電子で扱っている拡張PIC16のうち、PIC16F182x系(PIC12F1822含む)のものを加えています。ただし、私が実際に動作確認したものは次のデバイスのみです。

動作確認デバイス:
PIC12F629, PIC12F615, PIC12F683, PIC16F630, PIC16F627A, PIC16F88,
PIC12F1822,PIC16F1823

これらについても、完全に動作確認しているわけではございませんので、ご了承ください。
 先に書きましたとおり、まだまだ開発途上で、バグ盛りだくさんのα版ですので、くれぐれもご注意ください。特に、チップ・イレース時にcaliblation値が消えてしまうデバイスは、念のため、手動でCal値を控えておくなどして下さい。もちろん、自動でバックアップするアルゴリズムにはしていますが、念のため。

勇気ある、人柱となって下さったありがたい方々は、バグレポートなど、どしどし書き込んでください。のんびり治していきます。

Monoで移植したLinux版も、もうすぐα版レベルができる予定です。

今後の予定
MonoでLinux版移植(対応済み⇒こちら
動作状態をもう少し詳しく表示するようにする。(Ver..0.1.1で対応済み)
・拡張PIC16対応デバイス拡充(PIC16F193x等)
・できればPIC18くらいまで対応(せめてPIC18F14K50だけでも)

(2011/7/18追記)
Ver.0.1.1に更新しました。

(2011/8/1追記)
Ver.0.2.0に更新しました。


にほんブログ村 その他趣味ブログ 電子工作へ
↑最後まで読んでいただいた方はこちらのリンクをクリックしてランキングにご協力下さい。
↓ついでに、下のリアクションもチェックお願いします。

2 件のコメント:

  1. jj1oxsと申します。

    Writer509で確認してみましたが、どうさしませんでした。
    残念です。PIC16F1938への書き込みを実験してみたかったんですが・・・。

    また、update版のconfigファイルは、#Beginとなってる行があり、たぶん、エラーが出ます。

    返信削除
  2. jj1oxs様
    コメントありがとうございます。
    PIC16F193*系は1つも持っていないので試せていませんが、それっぽく定義して見ました。
    ↓からダウンロードして試してみて下さい。

    https://dl.dropboxusercontent.com/u/16067653/W509/DeviceConfig.dat

    返信削除