Yahoo!ジオシティーズ ゲストブック  

  2005/11/10 (Thu) 01:44:09
[名前] :   FENG3
[URL] :   
[コメント] :   PIC16F627への読み書きですが、Writer509ではひとつの点だけのぞいてOKでした。
ひとつの点とは、バッファに読み込まれたコンフィグワー
ドは正しいのですが、マスクされて表示されるコンフィグ
ワードは、ビット9が「0」として処理されるために、た
とえば0x3F02hが0x3D02となって表示されてしまいます。
このビットは実装されていませんが、読み出しでは「1」となるはずで、バッファの内容もそうなっています。
 
 
  2005/11/10 (Thu) 18:10:18
[名前] :   管理人
[URL] :   
[コメント] :   PIC16F627への書込み確認と不具合のご指摘ありがとうございます。
未実装ビットに対する処理に関してはあまり注意深く考えていませんでした。
ちょっと見たところ、DataSheetとProgrammingSpecificationで記述が異なっているものがあったりするようなので、今一度データシートや手持ちのデバイスなどを一通り調べ直してみたいと思います。
 
 
  2005/11/11 (Fri) 19:41:19
[名前] :   管理人
[URL] :   
[コメント] :   ConfigurationWordの未実装ビットに関して調べた内容と、Writer509の処理変更内容は次の通りです。
http://www.geocities.jp/orange_denshi/image/PICConfigUnimplemented-bit.pdf
新しいバージョンは近日中にアップします。
 
 
  2005/11/12 (Sat) 04:23:17
[名前] :   FENG3
[URL] :   
[コメント] :   ご苦労様です。
PIC16F627/628のデータシートは「Preliminary」(暫定)の段階で更新がとまっていますから、その後はおそらくAタイプへとデータシート作成者も作業の重点を移したのでしょうね。
MPLAB-IDEの各デバイスごとの「xxxx.dev」ファイルに未実装ビットのマスクが記述されていて参考になりますが、たまにデータシートやプログラミング仕様書の記述に?のコメントをつけていたりするデバイス定義ファイルもあったりして、おもしろいですよ。データシートやプログラミング仕様書にもとづいてMPLABを更新している技術者が「なんだこりゃ?」と思ったのでしょうね。
PIC16F506のプログラミング仕様書なんか、図中のコンフィグビットの数が、どう数えても11個しかありませんよ! 
 
 
  2005/11/12 (Sat) 20:39:10
[名前] :   管理人
[URL] :   
[コメント] :   Ver.1.37をアップしました。

「ゲストブック」の容量制限の通知が来たので、過去の内容はアーカイブした後削除します。
過去の内容は別のリンクから参照できます。
  2005/11/2 (Wed) 18:44:04
[名前] :   (わたしのたわし改) たわし
[URL] :   
[コメント] :   すごーーーく遅くなりましたが、ようやくWriter509を作成したので、対応をお願いしたPIC16F917の書き込み検証を以下のように行いました。

・Microchip PM3で書き込み済みのPIC16F917を読み込み
・Writer509(以下W509)で同PICを読み込み
・W509でERASEし、PM3でVerifyがFailになるのを確認
・W509で書き込みしVERIFYして一致を確認
・PM3で読み込んでVerify Passedを確認

このように全く問題ありませんでした。

あと、PIC12F629の検証が△になっていたので同じように検証し
問題なく出来ることを確認しました。
(Writer509のコントローラも12F629で作成しました)

ライタを作りながら、多分いけるんじゃないかなーと思いながら
ICSPのコネクタを付けてみたのですが、それを使ってTQFPなPICが
実装された状態での読み書きも問題ありませんでした。

16F917以外の16F91xがなく検証できないのが残念ですが、恐らく12F675と629の関係のように、問題ないと思います。

これからWriter509を使いまくりたいと思います。
ありがとうございました。
 
 
  2005/11/3 (Thu) 10:49:32
[名前] :   管理人
[URL] :   
[コメント] :   たわしさん、PIC16F917の検証ありがとうございます。
デバイス対応表を書き換えておきます。

ICSPに関しては特に考慮した回路ではないと思いますので、場合によっては問題が出るかもしれませんので注意しながら使用してください。
(デバイスの種類やターゲットの回路によっては問題が出るかもしれません。)
  2005/10/30 (Sun) 10:29:58
[名前] :   管理人
[URL] :   
[コメント] :   Writer509のPC側プログラムVer.1.35をUPしました。
変更内容は
・「書込み」や「読み出し」などの時間のかかる処理中に「処理経過表示バー」などの表示が止まってしまう不具合の修正。
・プログラムの二重起動を防止する処理の追加。
・PIC12F508/509などのキャリブレーションデータ読み出し時に、最下位ビットをマスクして処理していたものをマスクしないで処理するようにする変更。
です。

今回も、WindowsXP SP1 のみで確認していますので、他のWindowsで不具合が出る様なら再度調査/修正します。
 
 
  2005/10/30 (Sun) 10:31:05
[名前] :   管理人
[URL] :   
[コメント] :   Ver.1.36の誤りです。
 
 
  2005/10/30 (Sun) 11:11:28
[名前] :   FENG3
[URL] :   
[コメント] :   Windows2000での動作を確認しました。
また、PIC12F508への書き込みテストはOKでした。
お疲れ様でした。
----ログ-----
COM6をオープンしました。
プログラマーの接続を確認しました。
デバイスからバッファに読み込みました。
バッファの内容をデバイスに書き込みました。
一致しました。
 
 
  2005/10/30 (Sun) 12:13:10
[名前] :   りんりん
[URL] :   
[コメント] :   WindowsXP SP1にて確認しました。
・書き込み時に固まって「応答無し」になる問題
・二重起動の問題
上記2点、解決されていました。

早速の対応、どうも有難うございました。
  2005/10/29 (Sat) 01:19:23
[名前] :   FENG3
[URL] :   
[コメント] :   PIC12F508についてですが、キャリブレーション値のビット0が、たとえば、0xCFFが0xCFEのように誤って読み取られています。バックアップキャリブレーション値も同様です。PIC12F509ではキャリブレーション値は正常に読み取られています。
 
 
  2005/10/29 (Sat) 12:57:25
[名前] :   管理人
[URL] :   
[コメント] :   OSCCALレジスタ(05h)のbit0が無効(常に0)なため、3FFhから読み出したキャリブレーションデータのbit0にマスクをかけて処理をしていました。
実際にテストしてもbit0は0を書き込んでも1を書き込んでも同じ周波数に校正されます。
ただし、キャリブレーション値として書き込まれているデータはbit0が1書き込まれているものもあることを確認しました。
12F629/675でもOSCCALのbit0,1が無効にもかかわらず、キャリブレーション値はLSBまで書き込まれています。

無効ビットもマスクしないような処理に変更します。
  2005/10/26 (Wed) 00:54:02
[名前] :   りんりん
[URL] :   
[コメント] :   プロトコルとテストプログラムの公開有難うございます。
まさに私が欲していた物です。
COMMXコンポーネントを入手しDELPHI6にて動作確認しました。
後は自分なりに色々といじってWriter509を勉強させて頂きたく思います。
  2005/10/25 (Tue) 00:40:26
[名前] :   管理人
[URL] :   
[コメント] :   Writer509のPC側プログラムVer.1.35をUPしました。
変更内容は
・メッセージ欄の背景色がおかしくなる不具合を修正。
・マウスホイール多用時の誤操作軽減のための変更。
・PIC16F83/84の追加。
・[Buffer Clear]ボタンの追加。
です。
 
 
  2005/10/25 (Tue) 06:16:18
[名前] :   FENG3
[URL] :   
[コメント] :   1行メッセージ、Windows2000でも正常に表示されるようになりました。お疲れ様でした。
 
 
  2005/10/26 (Wed) 00:12:47
[名前] :   りんりん
[URL] :   
[コメント] :   16F84動作OKでした。
WIN2000での表示も解決されていました。
Buffer Clearも欲しい機能でしたが、実現して頂き感謝します。
どうも有難うございました。

些細な事ですが、ついでで構いませんので以下の点も改善していただければと思います。
・2重起動防止
 起動しているのを忘れてつい2重起動をする事がありますが、通信ポートが既に使われている為開けない状態で起動してしまいます。
・Writerアクセス時の他の動作の無効化
 プログラム中に、ついスクロールバー等をクリックしてしまう事がありますが、その場合固まってしまいます。

 
 
 
  2005/10/27 (Thu) 05:40:53
[名前] :   管理人
[URL] :   
[コメント] :   二重起動防止は機会があったらやってみたいと思います。

書き込み中にマウスポインタが砂時計になってしまう現象はこちらでも確認しています。
ただ、経過表示バーが進まなくなるだけでそのまま待てば書込みが完了します。
ベリファイを行っても正常に書き込まれています。
何度か経験しましたが全て書き込みは正常でした。
引き続き調査はしますが、ちょっと難しそうです。
 
 
  2005/10/27 (Thu) 23:42:44
[名前] :   りんりん
[URL] :   
[コメント] :   ・Writerアクセス時の他の動作の無効化
WindowsXP2台の別PCにて同じ現象を確認しました。
プログレスバーが固まっている状態でそっとしていけば無事書き込みが完了しますが、その時にスクロールバー等をクリックすると「応答なし」となってしまいます。
ちなみにWindows2000の別PCではフォームをあちこちクリックしてもその時には反応は無く無事書き込みを完了し、その後フォームクリックに反応する動作でした。
些細な事なので特に困りません。

・2重起動防止
FindWindow APIを使えば実現できますが、開発時にも効いてしまうので一旦無効にする必要があります。
こちらも些細な事ですのでお任せします。
  2005/10/24 (Mon) 01:46:49
[名前] :   りんりん
[URL] :   
[コメント] :   40Pinのゼロプレッシャーソケットを使って作ってみました。
(ソケット周りは「こっそり未検証+αのページ」の配線です)
今回もCP2102、MAX662Aを使用しました。ソケットに合わせプリント基板も50X100とし、CP2012、MAX662Aも直にマウントしたので部品面は大変すっきりしています。
これで4台もWriter509の亜種?が机の上にありますが、こんどこそハードはおしまいにする予定です。
手持ちのPICが少なくて少ししかテスト出来ていませんが、いまの所良好ですので動作レポートします。

・16F877A(検証のため今回購入)
・16F876
・16F84A
・12F509
・12F675

16F84はデバイスIDが異なり使用できませんが、対応予定はないのでしょうか?
 
 
  2005/10/24 (Mon) 07:13:39
[名前] :   管理人
[URL] :   
[コメント] :   40Pinゼロプレッシャーソケットを使った回路は、自分でも作ってみようと思っていたのですが、回路を書いたっきりほったらかしになっていました。
28PinのPICも一つくらい書き込んでみようと思っていましたがそれもできずにいたところです。
合わせて検証していただいてありがとうございます。

PIC16F84については追加する方向でデータを調べてみます。

テストプログラムについてもCommXを使ったものが動いたので、プロトコルとともに近日公開予定です。
 
 
  2005/10/24 (Mon) 23:31:54
[名前] :   りんりん
[URL] :   
[コメント] :   テストプログラムとプロトコルの公開、大変有難い事です。
心待ちにしています。
よろしくお願いします。
  2005/10/21 (Fri) 00:28:12
[名前] :   OSAKA
[URL] :   
[コメント] :   Witer用PIC 12F629で、
ファームは675iです。
ハードはFT232BM直結のUSB接続、VPはTL499Aで13V仕様、OSはWindowsXP- Home Edition(SP2)です

USBのFT232BMを調べてみますありがとうございました。
 
 
  2005/10/21 (Fri) 01:54:19
[名前] :   管理人
[URL] :   
[コメント] :   不具合の内容がキャリブレーションデータの異常だけならばソフトウェアのような気もしますが、下にも書いたとおり再度テストしても異常はなく、ソースにも特におかしなところは見つかりませんでした。

他の操作(ERASE以外)でもおかしな状態が出るようなら、そこから原因箇所がわかるかもしれません。
 
 
  2005/10/23 (Sun) 21:51:26
[名前] :   FENG3
[URL] :   
[コメント] :   こんばんわ

OSAKAさんのWriter509のログを拝見しますと、
COM6をオープンしました。
ソフトウェアバージョン PIC Writer 509 Ver.1.34
コントローラバージョン W509 Ver.1.21
アドレス 03FF からCD 0F83 を読み出しました。
            ~~~~~
これはキャリブレーション値ではなくて、デバイスID
です。

アドレス 03FF からCD 03A4 を読み出しました。
            ~~~~~
0x3FFh番地にはRETLW+k、つまり34+kkが入るはずなので、この値はおかしいですね。

コンフィグワードとBG値は正しく読み込まれているようです。
ようするに、データが化けているのではないでしょうか。

わたしもFT232BM直結ですが、GP2とGP3に直列に入っている抵抗をとりはずし、両方とも10kオームでプルアップしています。

「オレンジ電子工作」さんへ
話はかわりますが、Windows2000では1行メッセージ用のテキストボックスの背景色が黒、文字色が濃紺になってしまって判読できません。背景色の指定を変えてもらえませんか(現状ではマウスで範囲選択すると文字が反転して読めますので実用上は問題ありませんが…)。
 
 
  2005/10/24 (Mon) 00:07:32
[名前] :   管理人
[URL] :   
[コメント] :   メッセージ部分の背景色については少し原因が見えてきました。
もうしばらくお待ちください。
 
 
  2005/10/24 (Mon) 10:59:15
[名前] :   OSAKA
[URL] :   
[コメント] :   かんちがいさせてすみません
FENG3 さん 管理人 さん

テストに使用したPIC12F629はキャリブレーション値が
間違って書かれた物を使用しました。


アドレス 03FF からCD 03A4 を読み出しました。
            ~~~~~
0x3FFh番地にはRETLW+k、つまり34+kkが入るはずなので、この値はおかしいですね。

コンフィグワードとBG値は正しく読み込まれているようです。
ようするに、データが化けているのではないでしょうか。
 
 
  2005/10/26 (Wed) 10:56:54
[名前] :   OSAKA
[URL] :   
[コメント] :   ご迷惑お掛けしました。
USB Serial Port プロパティのAdvanced Settings
BM Options設定とMiscellaneous Options設定を
Default設定から変更したら正常になりました。

ありがとうございました。
 
 
  2005/10/27 (Thu) 05:34:54
[名前] :   管理人
[URL] :   
[コメント] :   それはよかったです。
PICをつかった面白い作品ができたらどこかで披露してください。
  2005/10/20 (Thu) 19:01:25
[名前] :   OSAKA
[URL] :   
[コメント] :   Witer509改良型を作成して
動作チェック中でERASEを数回するとキャブレーションデーターが変化します。

COM6をオープンしました。
ソフトウェアバージョン PIC Writer 509 Ver.1.34
コントローラバージョン W509 Ver.1.21
アドレス 03FF からCD 0F83 を読み出しました。
アドレス 2007 からCD 0000 を読み出しました。
デバイスを消去しました。
アドレス 03FF へCD 0F83 を書き込みました。
アドレス 2007 へCD 0000 を書き込みました。
アドレス 03FF からCD 03A4 を読み出しました。
アドレス 2007 からCD 0000 を読み出しました。
デバイスを消去しました。
アドレス 03FF へCD 03A4 を書き込みました。
アドレス 2007 へCD 0000 を書き込みました。
デバイスからバッファに読み込みました。
プログラムメモリー
03F8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 03A4 ・?・?・?・?・?・?・?・・
コンフィグメモリー
2000: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 0F83 01FF ・?・?・?・?・?・?・・・・
 
 
  2005/10/20 (Thu) 22:22:39
[名前] :   管理人
[URL] :   
[コメント] :   使用したデバイスは12F629でしょうか?
こちらでは12F629がないので12F675で[ERASE]を繰り返してみました。
10数回行ってみてもキャリブレーションデータは特に変化する様子はありませんでした。

ただ、検証中に一つWriter509の欠点を発見しました。

デバイスを選択した後、不用意にマウスのホイールを回すとデバイスが変化してしまうことです。
ほとんどのデバイスはDEVICE-IDをチェックしていますが、12F508/509はDEVICE-IDがないのでチェックできません。
気が付かないうちに12F508/509などに変わってしまっていると今回のような現象が起こることがあります。
できるだけ早いうちに改良するつもりですが、それまでは確認しながら操作していただくようお願いします。
 
 
  2005/10/20 (Thu) 22:28:49
[名前] :   管理人
[URL] :   
[コメント] :   追加として、

Writer509を起動中に他のアプリケーションや、他のウインドウを表示した後、Writer509に戻ってくるとデバイス選択のメニューにフォーカスが移動していますので特に注意が必要です。
 
 
  2005/10/20 (Thu) 22:55:46
[名前] :   OSAKA
[URL] :   
[コメント] :   使用したデバイス12F629と12F675です。
とちらも同じ現象がでます

憶測ですが 2007番地のDATAがキャブレーションデーターに変わるのでわ ?
PIC12F675でも同じです。

アドレス 03FF からCD 0FCF を読み出しました。
アドレス 2007 からCD 0000 を読み出しました。
デバイスを消去しました。
アドレス 03FF へCD 34DC を書き込みました。
アドレス 2007 へCD 0000 を書き込みました。
!キャリブレーションデータは入力値に置き換わりました。
デバイスからバッファに読み込みました。
プログラムデーター
03F8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 34DC ・?・?・?・?・?・?・?・4
コンフィグデーター
2000: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 0FCF 01FF ・?・?・?・?・?・?・・・・
 
 
  2005/10/21 (Fri) 00:07:06
[名前] :   りんりん
[URL] :   
[コメント] :   Witer用PICを12F509、12F675で、ファームはそれぞれ509i、675iにてチェックしました。
そのPIC自身も複数にて、ターゲットも12F675複数で100回位ERASEを行いましたが、全く異常は認められませんでした。
ハードはCP2102直結のUSB接続、VPはMAX662Aで12V仕様、OSはWindowsXP-PROです。
基本ハードウェア及びソフトウェア的な不具合では無いと思われますが...
 
 
  2005/10/21 (Fri) 01:47:45
[名前] :   管理人
[URL] :   
[コメント] :   りんりんさんわざわざテストしていただいてありがとうございます。
こちらでも再度テストしましたが異常ありませんでした。

念のためソースのトレースもしてみましたがこちらでもおかしなところは見つかりませんでした。
 
 
  2005/10/26 (Wed) 10:58:02
[名前] :   OSAKA
[URL] :   
[コメント] :   ご迷惑お掛けしました。
USB Serial Port プロパティのAdvanced Settings
BM Options設定とMiscellaneous Options設定を
Default設定から変更したら正常になりました。

ありがとうございました。
  2005/10/17 (Mon) 23:09:09
[名前] :   りんりん
[URL] :   
[コメント] :   Witer509(改)ハード完成しました。
・USB変換にCP2102を使用、5mm角の28pin足無しチップですが、外付け部品も少なくGoodです。
プリント基板を起こし、USBコネクタ真下に収まりました。
・12V昇圧はMAX662A(SOP)を使用、DIP変換基板にチャージポンプ用0.22uFチップ2個をマウントし、本体への接続はDIPの片側4PINのみで、パターン引き回しが楽になりました。変換基板を用いる事で思った以上にコンパクトに実装できます。
VP電圧が12Vですが今の所全く問題ありません。もし不具合があった場合はダイオードで上げ底して13V動確認しています。

これでハード製作は終わりとし、後は手探りでソフトを作り上げて行こうと思います。(苦手な通信に挑戦!)
その後EEP-ROMの読み書きにもチャレンジする予定です。
きっかけを与えて頂いた管理人様に感謝します。
色々とアドバイスを頂きまして有難うございました。
  2005/10/16 (Sun) 14:52:00
[名前] :   名無し
[URL] :   
[コメント] :   いつもWriter509を愛用しています。
すばらしいライタをありがとうございます。
このライタでEEPROMを書き込むソフトを作ろうと思っているのですが、シリアル通信のプロトコルを教えていただけませんか?
ここで公表するのが無理な場合、メールで個人的に教えていただけるとありがたく思います。
sa89_a@yahoo.co.jp
 
 
  2005/10/16 (Sun) 21:00:12
[名前] :   管理人
[URL] :   
[コメント] :   多くの人にWriter509を作製/評価していただいて、うれしく思います。

EEPROMへの書込みは当初考えてはいましたが、PICへの書込みコマンドと多少異なるところがあるため予定からはずしてしまいました。

ご自分で作製されるつもりでしたら、是非完成させられることを願っています。
ただ、プログラマー側のプログラムはある程度PIC12F/PIC16Fの書き込みコマンド(信号形式)に特化した作りになっているため、PC側のプログラム作成だけでは無理で、両方のプログラムと新たなプロトコルの追加が必要になるでしょう。
 
 
  2005/10/16 (Sun) 21:04:15
[名前] :   管理人
[URL] :   
[コメント] :   プロトコルや動作原理、ソースなどの公開に関しては、あまり恥ずかしくないようにある程度修正してちゃんとした形になったら公開していくつもりです。
  2005/10/12 (Wed) 19:35:22
[名前] :   管理人
[URL] :   
[コメント] :   ただ、APIを直接コールするよりも「Delphi」「シリアル通信」などで検索すると、Delphiで使えるシリアル通信用のコンポーネントがあるようですので、そちらの方が簡単だと思います。
 
 
  2005/10/12 (Wed) 19:45:50
[名前] :   
[URL] :   
[コメント] :   返信場所を間違えました。
  2005/10/12 (Wed) 17:43:59
[名前] :   名無し
[URL] :   
[コメント] :   PICWriter509を12F675で使っています。
安価に作れたので大変気に入っております。
PIC16F819について、リード・ライト共にできるのですが、イレースできません。
最初の3〜4回はイレースできた気がします。
ソフトウェアは最新版を使用しており、他のPICはイレースできています。
 
 
  2005/10/12 (Wed) 19:43:31
[名前] :   管理人
[URL] :   
[コメント] :   こちらでPIC16F819に書込み/消去を5回ほど繰り返して行ってみましたが、特に問題はないようです。
コードプロテクトをかけての書込み/消去もしてみましたがこちらも問題なく消去できました。

念のためVppやVddの電圧をチェックしてみた方がいいかもしれません。
また、書き込んだエリアやサイズ、Configurationの内容などの状況はどんな感じでしょう。
 
 
  2005/10/13 (Thu) 17:17:48
[名前] :   名無し
[URL] :   
[コメント] :   返信ありがとうございます。
プログラムメモリは51%ほど使用しております。
コンフィグワードは2F62です。
vddは5.04V、vppは12.90Vでした。
秋月のライタを借りて使ってみましたが、コンフィグワードだけイレースできませんでした。もしかすると、PICが不良なのかもしれません。
writer509だと、プログラムメモリすら消去できませんでした。
 
 
  2005/10/13 (Thu) 18:57:58
[名前] :   管理人
[URL] :   
[コメント] :   似たようなサイズのダミーファイルを用意して、ConfigurationWordを2F62にして書込み/消去を数回行ってみましたが、やはりこちらでは正常に消去されます。

原因がはっきりとわかりませんが、PICが壊れている可能性もあるでしょう。

関係ないとは思いますが、アドレスの2006番地を確認してもらえないでしょうか。
[Configuration Memory]タブをクリックすると2006番地が読めます。
内容は、DEVICE-IDとRev.ですが、こちらでテストしたものは[04E5]です。
上3桁の[04E]はPIC16F819を表し、下1桁はリビジョンを表します。リビジョンは製造時期などによって異なり、場合によってはバグなどがある場合もあります。
 
 
  2005/10/14 (Fri) 16:46:31
[名前] :   名無し
[URL] :   
[コメント] :   お返事ありがとうございます。
こちらで2006番地を確認してみたところ、同じく[04E5]でした。
初期不良の可能性が高いので、購入した秋月電子に聞いてみることにします。
別の16F819があったので試してみましたが、問題なくイレースできましたので、ライタの問題ではないことがわかりました。
お手数をおかけいたしました。
  2005/10/11 (Tue) 22:58:13
[名前] :   りんりん
[URL] :   
[コメント] :   Writer509用のテストプログラム公開して頂けませんか?
Delphiを愛用していますが通信は弱く手がかりを求めています。
こっそり未検証+αのページでテストプログラムのフォームを見て興味が沸きました。
ドキュメントは無くてもいいですので、可能でしたらお願いしたいです。
おねだりで申し訳ないと思いますがよろしくお願い致します。
 
 
  2005/10/12 (Wed) 19:34:18
[名前] :   管理人
[URL] :   
[コメント] :   Delphi6にはそのままではシリアル通信のコンポーネントなどがないため、シリアル通信を行うプログラムを書くのには工夫が要ります。
Writer509ではWindowsAPIをコールすることでこの機能を実現していますが、別の問い合わせにもあるようにWindowsのバージョンによっては誤動作をしたり、また、エラー処理も面倒だったりソースも非常に見づらいものになります。
そのためこの辺を公開する気にはなれませんのでご了承ください。
 
 
  2005/10/12 (Wed) 19:34:54
[名前] :   管理人
[URL] :   
[コメント] :   もし、WindowsAPIを使うのであればDelphiのHELPファイルの中に
Win32Developers References
というのがあり、その中の
Microsoft Win32 Programmers Reference の中に Communications という項目があるので、多少参考になると思います。
また、Microsoftのサイトにも日本語の解説があります。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpfileio/html/Toppage_Communication.asp
 
 
  2005/10/12 (Wed) 19:44:35
[名前] :   管理人
[URL] :   
[コメント] :   ただ、APIを直接コールするよりも「Delphi」「シリアル通信」などで検索すると、Delphiで使えるシリアル通信用のコンポーネントがあるようですので、そちらの方が簡単だと思います。
 
 
  2005/10/12 (Wed) 23:17:02
[名前] :   りんりん
[URL] :   
[コメント] :   Delphi用232Cコンポーネントを見つけました。
自分なりに色々と実験しながら実現を目指してみます。
ご丁寧に有難うございました。
  2005/10/10 (Mon) 21:20:06
[名前] :   りんりん
[URL] :   
[コメント] :   12V昇圧回路について、
秋月電子でMAX662AESA(SOP)を取り寄せました。
SOP⇒DIP変換基板付きで\300でした。
チャージポンプ用コンデンサ2個(0.22uF)はチップ部品として変換基板(1x1cm)に取りつけたので結構コンパクトに収まりました。
GND端子にダイオードを挿入し13V動作も確認しましたが、12Vでも問題がない為に外して12V動作に戻しました。
12V無負荷時の消費電流は200uA程度でした。
これで30mA取れますので結構お勧めです。
 
 
  2005/10/10 (Mon) 23:00:40
[名前] :   管理人
[URL] :   
[コメント] :   MAX662は部品点数も少ないし、実装面積も小さくていいですね。

あれから少し考えてみましたが、MAX662の立ち上がりの遅延にばらつきがなくほぼ一定ならば、その点を考慮したファームを作ることによってSHUTDOWN端子の利用も可能になるかもしれません。
多少、試行錯誤も必要かもしれませんがいろいろやってみてください。
 
 
  2005/10/10 (Mon) 23:04:23
[名前] :   管理人
[URL] :   
[コメント] :   あれ、MAX662はSHUTDOWN時にも5Vが出るんでしたね。
忘れてました。やっぱり無理かな…。
  2005/10/4 (Tue) 01:12:08
[名前] :   りんりん
[URL] :   
[コメント] :   CP2101はUSBバス・パワーから内部で3.3Vを作成してVDDとしており、TXD端子はオープンドレインではなくトーテムポール型で3.3Vドライブでした。
この接続においてはプルアップ抵抗は必要ありません。
今後のサポートデバイスを考えVppスイッチは省略せず、MAX662AのSHDN端子をGND接続(常時12V起動)としても消費電流は数mAである事を確認した上であまり省電流には走らず電源LEDも付けました。
回路が固まったので専用基板を起こしハード完成に至りました。
後はソフトをボチボチといじって行きます。
アドバイス有難うございました。
  2005/9/28 (Wed) 00:33:37
[名前] :   りんりん
[URL] :   
[コメント] :   Writer509作成し、USB変換ケーブルにて無事動いています。
コンセプトに共感し、是非自分でも作ってみたいと思いチャレンジ中です。
まずはUSB化でコンパクトにまとめてみます。
USB変換:CP210x使用。5mm角チップの手ハンダにチャレンジ。
12V昇圧:MAX662AESAにて単純かつ安定を目指します。
(30mA供給を外付けはセラコン4個のみで実現)
上記部品を本日通販で発注しました。
8PinのPICにて実現している所がすばらしいと思い、ハードが出来上がったらファーム?とPC側ソフトを自分なりに作成したく勉強中です。(ソフト完成はいつになるやら...?)
12F675i、完成を心待ちにしています。
よろしくお願いします。
 
 
  2005/9/28 (Wed) 08:27:24
[名前] :   管理人
[URL] :   
[コメント] :   何人もの人がWriter509を活用していただいてうれしく思います。
509Iや675Iはあまり使う人がいないと思って後回しにしていましたが、USB変換チップを内蔵して作成する人も結構いるようなので早めにUPします。
 
 
  2005/9/28 (Wed) 21:52:24
[名前] :   管理人
[URL] :   
[コメント] :   Writer675I.HEX(ZIP圧縮)のファイルをUPしました。

自分で作るのは大変な部分もありますが、完成すると結構充実感が味わえます。
ただ、一気に全て作ってしまうとトラブったときに原因がわかりにくくなることがあるので、のんびりやった方がいいでしょう。
Writer509も(このページを見ればわかると思いますが)最初から完成形を目標に作ったわけではなく、ソフト、ハードともにパーツごとにテストしながらそれらを組み合わせてこのような形になっています。
ソフトウェアやハードウェアのツールも探せばいろんなものがあります。
楽しみながらがんばってください。
 
 
  2005/9/28 (Wed) 23:53:49
[名前] :   りんりん
[URL] :   
[コメント] :   Writer675I、無事動作しています。
(こんなに早く対応して頂けるとは...!)
私の為にUPしてくれたのかなア、と勝手に思い込み感激しています。
改造型ハードが動いたら報告させて頂きます。
ソフト制作は焦らず、一つ一つハードルを越えながら完成にこぎつける様に頑張ってみます。
どうも有難うございました!
 
 
  2005/10/2 (Sun) 11:13:32
[名前] :   りんりん
[URL] :   
[コメント] :   12V昇圧をMAX662Aで実現しました。良好なのでレポートします。
USB変換CP2101は今のところ別基板で接続しています。
以下の部品は削除しました。
TR2,R5,R6,D3,D2,D1,R1,R2,R9,LED2,R8
LED1は高輝度タイプを使用、R7を2Kに変更しました。
MAX662Aの8Pin,SHDNを12F675の6Pin,GP1に接続しています。
消費電流を測ったところ(USB変換部は除く)、
待機時:1.00mA、16F84Aプログラム時:4.10mA
でした。(LEDの1.7mA含む)
動作は良好ですが、下記については問題ありませんか?
・MAX662Aで12Vの切り替えを行っていますが立ち上がりが実測400uS(MAX)でした。
・MAX662Aの12V出力は、OFF時に1Kで5Vにプルアップされています。
・CP2101に直結している関係でR9も外しました。
 
 
  2005/10/2 (Sun) 12:50:27
[名前] :   管理人
[URL] :   
[コメント] :   ・Tr2の省略についてはちょっとまずいような気がします。
 こちらで調べた範囲内での話になりますが、デバイスがプログラミングモードになるシーケンスは、デバイスによっていろいろなパターンがあります。
 主に、VddとVppのどちらが先にONになるかということと、その時間差(最大値と最小値)です。
 必ずしもデータシートどおりでなくても動作するデバイスもありますが、動作しないデバイスもあります。
 Vppが先にONにならないといけないデバイスや、時間差については数10μs程度で規定されているものもありますので、書込みのできないデバイスも出てくるかもしれません。
 VppがOFF時に5Vにプルアップされていることも、同様に問題になることが考えられます。
 やはりTrによってスイッチすることを勧めます。

 ちなみにWriter509では
  VddON - 10μs - VppON
  VppON - 10μs - VddON
をデバイスによって使い分けており、対応表にあるデバイスの書込みを確認しています。
 
 
  2005/10/2 (Sun) 12:51:34
[名前] :   管理人
[URL] :   
[コメント] :   ・シリアルライン周りですが、CP2101直結ということなのでこの辺のRやDはなくても問題ないでしょう。
 ただ、もしもCP2101とWriterの電源が同時にONになればいいのですが、そうでない場合にはシリアルラインがフローティングになったりしてノイズをデータと誤認識する場合があるかもしれません(F629/675はGP3の内部プルアップがない)。
 問題がある場合は、R9をプルアップとして接続することを勧めます。
 
 
  2005/10/2 (Sun) 13:20:22
[名前] :   りんりん
[URL] :   
[コメント] :   管理人さんへ、
早速明確なアドバイスを頂き、有難うございます。
VppとVddのタイミングは結構シビアなのですね。
標準ライターとして多くのPICに対応するにはVppスイッチは省略しない方が良いと思います。
私は結構いい加減で、「自分が使うデバイスで動けばいいか」的な所がありますので、データシートも良く見てさらにタイミングを実測しながら理解を深めたいと思います。
ライターの電源はUSBから取っておりCP2101と直結しているので12F675のGP3外部プルアップの必要はないと思いますが、さらに詳しく検証してみます。
  2005/9/20 (Tue) 13:32:49
[名前] :   管理人
[URL] :   
[コメント] :   PIC16F627A/628A/648Aの消去時に、UserID(H2000〜H2003)が消去されない不具合が発見されました。
早急に対処します。
 
 
  2005/9/28 (Wed) 08:15:20
[名前] :   管理人
[URL] :   
[コメント] :   パソコン側プログラム バージョン1.34で対処しました。
  2005/9/20 (Tue) 04:51:56
[名前] :   管理人
[URL] :   
[コメント] :   14PinのPIC16F676が手に入ったので追加してみました。
  2005/9/17 (Sat) 12:25:13
[名前] :   管理人
[URL] :   
[コメント] :   使用しているAPIはXPでも98SEでも同じだと思っていましたが、もしかするとXPと98SEで仕様の異なるAPIをCALLしているのかもしれません。
調査してみます。
 
 
  2005/9/18 (Sun) 19:44:12
[名前] :   管理人
[URL] :   
[コメント] :   やはりAPIの一部に仕様の異なるものがあるようです。
仕様の不明なものを使わないように変更しました。
ただし、テスト環境が無いので確認はできていません。
 
 
  2005/9/18 (Sun) 21:24:15
[名前] :   FENG3
[URL] :   
[コメント] :   さきほどWindows98SEで確認しました。問題は解消されました。ご苦労様でした。
※下記ページにて Writer 509 を紹介しています。
http://feng3.cool.ne.jp/usbpgm/index.html
 
 
  2005/9/18 (Sun) 23:35:55
[名前] :   管理人
[URL] :   
[コメント] :   Windows98SEでの確認ありがとうございます。
また、ホームページでの紹介ありがとうございます。
相変わらずきれいな基板に仕上がっていますね。Writer509Iの方は、開発時に秋月のPIC-ProgrammerVer.3のPIC16C57の代わりに無理やりPIC12C509A/JW(窓付き)を乗せて行っていたのでこのように論理反転のものを作りましたのであまり使い道が無いと思っていましたが、こういう使い方もありますね。
そのうち12F629/675用の反転タイプも作る予定です。
  2005/9/16 (Fri) 21:07:59
[名前] :   FENG3
[URL] :   http://feng3.cool.ne.jp/
[コメント] :   Writer509+DC・DCコンバータ+USBシリアル変換を一体化したライタをつくってみました。
OSがWindows98SEですと、下記のようなメッセージが表示されますが、デバイスには正常に書きこまれています(ちなみに、ライタが使用しているポートはCOM2です)。Windows2000/XPでも試してみたいと思います。

使用できるポートがありません。
COM1がオープンできません!
COM2がオープンできません!
COM3がオープンできません!
COM4がオープンできません!
COM2がオープンできません!
デバイスからバッファに読み込みました。
アドレス 03FF からキャリブレーションデータ 34A4 を読み出しました。
アドレス 2007 からキャリブレーションデータ 3000 を読み出しました。
デバイスを消去しました。
アドレス 03FF へキャリブレーションデータ 34A4 を書き込みました。
アドレス 2007 へキャリブレーションデータ 3000 を書き込みました。
デバイスはブランクです。
ファイル12f675~1.hexをロードしました。
バッファの内容をデバイスに書き込みました。
一致しました。
 
 
  2005/9/17 (Sat) 03:15:22
[名前] :   管理人
[URL] :   http://www.geocities.jp/orange_denshi/
[コメント] :   こんなにメッセージが出ましたか。
こちらではWindows98SEで動作させていませんのでよくわかりませんが、Writerとの通信はWindowsのシリアル用APIを使用しているのでWindowsの種類にはあまり依存しないものと思っていました。
といっても、WindowsXPでしか動作させていないので、他のWindowsについてはなんとも言える状況ではありません。
もし、Windows98SEでテストできるような環境を見つけたらこちらでも動作させて見ます。
よろしければUSB-シリアル変換にどんなものを使ったかなど、お聞かせください。
 
 
  2005/9/17 (Sat) 08:05:04
[名前] :   管理人
[URL] :   
[コメント] :   ちなみに、こちらで使用しているUSB-シリアル変換ケーブルは秋月電子で購入したものです。
内部のチップを調べてみると、Prolific社のPL-2303というチップが使われているようです。
機会があればFTDIのチップなども使ってみたいと思っています。
ただ、前述の通り、Win側のソフトからはシリアル用APIをCallしているだけでUSBという認識は一切無いため、
Windows - ドライバー - USB-シリアル変換IC
間の関係によって安定して動作するかどうか決まるのではないでしょうか。
 
 
  2005/9/17 (Sat) 11:15:44
[名前] :   FENG3
[URL] :   
[コメント] :   USBシリアル変換ICには、FTDIのFT232BMを使用しています。仮想COMポートの有無にかかわらず、Windows98SEではWriter509起動時に「使用できるポートがありません。」と表示されます。Windows2000では「COM1をオープンしました。」と起動時にちゃんとデフォルトのポートが表示されます。
どちらにしても、Win98ではCOMポートの状態取得に問題があるだけで、Writer509は指定したCOMポート番号がただしければ正常に通信しており、問題なくPICに書き込めます。
 
 
  2005/9/18 (Sun) 19:18:52
[名前] :   管理人
[URL] :   
[コメント] :   返信場所を間違えました。
上を見てください。
  2005/8/26 (Fri) 22:51:43
[名前] :   管理人
[URL] :   http://www.geocities.jp/orange_denshi/writer509.ht
[コメント] :   Writer509のパソコン側ソフトをUPしました(Ver.1.31)。
デバイスの追加PIC16F913/914/916/917です。
一部デバイスのEEDataMemoryの書込みパルスタイミングを見直しました。
前のバージョンでも問題は出ていませんでしたが、若干データシートと異なる値を設定したので修正しました。
 
 
  2005/8/28 (Sun) 19:22:51
[名前] :   わたしのたわし
[URL] :   
[コメント] :   16F917への対応ありがとうございます!
ただ、時間に余裕がなくてまだ製作できていません・・・

必ず結果報告しますのでもうしばらくお待ちください。
  2005/8/24 (Wed) 21:52:47
[名前] :   473
[URL] :   
[コメント] :   いつもご苦労様です。
「PIC専用のスレ」で発表されて以来Writer509の大ファンになってしまった者です。
LMC555を使ってVppを生成していらっしゃるようですが、発振周波数はどのくらいなのでしょうか?
計算式を見つけたのですが、回路が違っているため、計算できませんでした。
パーツ代が貯まり次第、40pinZIFソケット搭載、USB-シリアル変換チップ内臓ライタを作ろうと思っています。
 
 
  2005/8/24 (Wed) 23:22:12
[名前] :   管理人
[URL] :   http://www.geocities.jp/orange_denshi/
[コメント] :   実測で約150kHzです。
R2とD3の直列を入れない場合は1/(1.4x470px10k)=152kHzですから、R2とD3をいれると実測でもう少し高くないといけないのですがコンデンサの誤差でしょうか。

1mHに対して結構高い周波数のようですが、出力を5mA取り出すのにこれくらいの周波数の方が消費電流が少なかったのでこの値にしました。場合によってはもっと効率のいい周波数があるのかもしれません。

ちなみに、R2とD3が無いとDutyは50%ですが40〜30%くらいにしたいと思って入れてみました。
 
 
  2005/8/24 (Wed) 23:35:40
[名前] :   管理人
[URL] :   
[コメント] :   間違えました。1mHでなくて470uHです。
最初1mHでやってみたけれど、2mAくらいしか取れなかったのでもう少しと思って470uHになりました。
これで5mA位取れるようになりました。
 
 
  2005/8/27 (Sat) 23:38:10
[名前] :   473
[URL] :   
[コメント] :   お返事ありがとうございます。
コイルのインダクタンスはあまり大きくても駄目なのですね。手元には100μHと思われるマイクロインダクタがありますが、問題ありませんかね?
質問ばかりで申し訳ありません。
ソフトウェアの更新お疲れ様です。
 
 
  2005/8/28 (Sun) 18:25:29
[名前] :   管理人
[URL] :   
[コメント] :   実はDC-DCコンバータ回路についてはあまり詳しい方ではありません。
100uHでも使えないことはないですが、消費電流が2〜2.5倍に増えてしまうと思います。
特にあのページに載せてある回路ではPICへのVppの供給が無くても常にツェナーで消費している回路になっているからです。
あのページの一番下に、消費電流を減らせるもう一つ昇圧回路を載せておきますので参考にしてください。
ただし、実際に組み立てていないので、使う前に出力電流を流した時の電圧変動や、消費電流の変化など調べてからの方がいいと思います。
  2005/8/24 (Wed) 10:57:22
[名前] :   わたしのたわし
[URL] :   
[コメント] :   次の休みにでもWriter509を作ってみようと思っている者です。

ライタの制御ソフトの対応デバイスを見るたびに思うのですが、デバイス毎の書き込みタイミングなどの情報をテキストで記述して外部ファイルにするようなことは不可能なのでしょうか?

可能なら、書き込みソフトの製作者自身が自分でチェックしなくても情報さえ書けば誰でもデバイスを追加できて楽しいなーと思うのですが。

例えばいま手元に16F917の40P DIPがあるのですが、これには書けないのかなと考えています。
 
 
  2005/8/24 (Wed) 18:53:01
[名前] :   管理人
[URL] :   http://www.geocities.jp/orange_denshi/
[コメント] :   デバイスごとの違いをファイルにすることは、当初から考えにありました。
ただ、実際はかなり厳しい状況です。
理由はいくつかありますが、最大の理由は「デバイス消去のためのアルゴリズム」が思いの外バラバラだったためです。
デバイスごとにサブルーチンを組んであるといってもいいくらいです。
これが、3〜4種類に分類できればファイル化もできたかもしれません。

お手持ちのPIC16F617ですが、どうやらPIC12F683と同じ系統のようですので、何とかなると思います。

ただ、今対応しているデバイスもテスト用のプログラムで多くのコマンドを送ってみて、その都度どんな反応をするかを見ながらプログラムを書いていった部分もありますので、トラブる可能性もあります。
 
 
  2005/8/25 (Thu) 04:26:36
[名前] :   わたしのたわし
[URL] :   
[コメント] :   (こんな時間にw)
なるほど。
JDM用のソフトである程度以前からあるものも、なぜそこを外部ファイル化しないんだろうと思っていたのですが、こういう理由だったのですね・・・

ちなみに私が書きたいのは16F617ではなく、打ち間違いでもなく16F917(きゅーいちなな)です。
これがPIC12F683と同じ系統ならいいのですが。
 
 
  2005/8/25 (Thu) 19:55:13
[名前] :   管理人
[URL] :   
[コメント] :   失礼しました。
16F917ですね。たぶん大丈夫だと思います。
  2005/8/16 (Tue) 19:57:24
[名前] :   名無し
[URL] :   
[コメント] :   Writer 509 の開発のほうお疲れ様です。
Writer 509 を12F675に移植してみました。
すばらしいライタですね。
信号線だけを使っていて、内臓クロック4MHzでここまで速く書き込みができるんですね。
もう秋月のライタなんて買いませんよ。
 
 
  2005/8/16 (Tue) 22:08:50
[名前] :   管理人
[URL] :   
[コメント] :   もう移植終わったんですか。早い!
こちらは今からやっとはじめようとしていたところです。
ソースも無いのに難しかったんじゃないですか?
12F509はいろいろ制限があるのでGOTOの山になってますから…。
書き込み速度はこれでもまだ遅い方だと思いますよ。
PICの方の処理をとにかく最低限にしようと考えたから通信の量が少し多いかも。
PICでの処理をもっと増やせば通信量がもう少し減るけど、一応安定しているようだし、変更する気力もないし・・・。
 
 
  2005/8/16 (Tue) 23:23:05
[名前] :   名無し
[URL] :   
[コメント] :   お疲れさまです。
汎用レジスタのアドレスが異なるのでシフトして、TRISやOPTION命令を、MOVWFに書き換えて、FSRレジスタに指定するアドレスも変更しただけです。
しかし、これだけのことをやるのに2日費やしてしまいました。
TRIS命令やOPTION命令を使うPICを初めて扱ったので最初はさっぱり理解できませんでした。ちなみに、TRISIOレジスタやOPTION_REGレジスタはバンク1ですが、バンク切り換えが入って2サイクルずつ増えてしまいましたが、問題はないようです。
あと、間接アドレスも使ったことがなかったので一筋縄には移植できませんでした。
  2005/3/5 (Sat) 03:08:09
[名前] :   管理人
[URL] :   orange_denshi@hotmail.co.jp
[コメント] :   新ジオシティーズに移行したため、変更になった部分もありました。
ついでにメールアドレスが変更になりました。
  
▲このページのトップ  

Yahoo!ジオシティーズ