Darkside(リンクエラー修正しました)

2018年09月の記事

<< 前のページ

2018年9月30日(日) 21:00

6.73 vs 6.76

 ソースが公開されていない最新版の Ver 6.76 で、device6.ini だけ書き換えて PIC16F1827 に書き込んでみる。すると、2箇所のベリファイエラーが出てそれ以外は書き込み成功した。
 ただしそれ以外にも、恐らく CONFIG レジスターは書き込みできていない。

 もう少し良く見ると、ベリファイエラーが出た2箇所は、書き込もうとしている値がおかしい。というのも、プログラムエリアは14ビットなので、0x0000 〜 0x3FFF までの値しか存在し得ない。だが、7番地と8番地はそれを超える値になっている。そんな値は絶対に書き込みできない。下位14ビットは正常に書き込まれている。
 つまり、恐らく書き込みは CONFIG 以外成功していて、なぜかHEXファイルの読み込みで2箇所のデーター化けが生じている。
 不具合は書き込みではなく、HEX読み込みの方だ。

  MPLAB X IDE 上からオリジナルのプログラムコードを確認すると、7番地と8番地は全く異なる値である。そして、それ以外のプログラムコードは AKI-PIC 上でも正常に読み込まれているようだ。

 原因は、恐らく CONFIG レジスターである。AKI-PIC が7番地と8番地に読み込んだ値が、CONFIG1 と CONFIG2 の値と一致している。そして、CONFIG レジスターは、8007h 番地と 8008h 番地である。
 ちなみに、PIC16F88 の場合、CONFIG レジスターは 2007h 番地と 2008h 番地に存在する。

 AKI-PIC がHEXファイルを読み込んだとき、番地を14ビットマスクしてしまい、CONFIG レジスターの値を7番地と8番地に上書きしてしまったのだと思われる。そして CONFIG レジスターは 2007h 番地と 2008h 番地に存在すると思い込んでいて、だから値を読み込めずデフォルトの 0x3FFF が設定されたまま。

 何てこった。

 Ver 6.76 は、恐らく PIC16F1827 に書き込むことができる。HEXファイルの読み込みさえ修正すれば、恐らく使える。だが、Ver 6.76 はソースが公開されていないので修正できない。
 ソースが公開されている Ver 6.73 は、チップイレースでエラーが出て書き込みできない。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年9月29日(土) 20:17

VPP 9V化

 AKI-PIC のハードでは、VPPの12.5Vを生成するために、LM317が使用されている。
 これは出力電圧可変なので、抵抗を外付けして機械的に接続・遮断できるようにすれば容易に2電圧出力に改造できる。

 手持ちの4.7KΩを2並列し、元の1.1KΩと並列接続すると出力が9Vに低下した。
 うっかりスイッチ位置を間違えると、PICを壊すかもしれない。本来ならソフト制御で電圧を切り替え可能とし、書き込みソフトからVPP電圧を自動変更すべきである。
 そこまで対応させる余裕が無かったので、Ver 6.80 はお蔵入りになったのかもしれない。

 AKI-PIC は基盤の実装密度が低いので、単なる切り替えスイッチ方式なら改造は容易。

 増設抵抗が切断されている写真の状態では、VPPに元通り12.5Vが供給される。三端子レギュレーターなので、12.5Vを得るには15V電源が必要な次第。

 反対側にスイッチを切り替えると、9V出力になる。

 ある程度の電子工作経験があれば分かるが、ここをいじるだけでVPP供給電圧が切り替わるのは自明に近い。
 VPP以外に12.5Vを必要とする部分がないので、たぶんトランジスターで供給を制御している。そういう回路は、12.5Vが9Vに変わっても問題は生じない。VPPへ通じる電圧だけが変わる。

 AKI-PIC Programmer V4 の Ver 6.73(ソースリストが公開されているやつ)で PIC16F1827 に書き込んでみる。基板は9V化してあり、device6.ini は書き換え済みだ。

 いきなりチップイレースに失敗し、書き込みまで辿り着けなかった。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年9月28日(金) 21:25

F88 vs F1827

 自分の環境において拡張子 vbp はVB6と関連付けられているため、picpgm6.vbp をクリックするとVB6が立ち上がる。しかしこの方法で実行した場合、device6.ini が見つからないというエラーが出る。
 だから device6.ini を picpgm6.vbp と同じディレクトリにコピーしておくのだが、公開ソールファイルの bin サブディレクトリ内に exe だけでなく device6.ini も入っていることに気付いた。

 しかし、Ver 6.73 付属の device6.ini は、Ver 6.76 のものに比べるとかなり小さい。確かに新デバイス対応はあるが、Ver 6.73 から 6.76.でそこまで対応デバイスが増えたっけ?
 気になったので、両者を比較してみた。すると、Ver 6.76 の方には大量のコメントアウトが存在していた。何と、PIC16F1827 もコメントアウト中に存在している。

 Ver 6.76 は、時期的に PIC16F1827 に対応していてもおかしくない。公開ヒストリーには、開発中の Ver 6.80 ノコードが混在したなんて記載も見た。しかし、公開されたのは Ver 6.76 が最新であり Ver 6.80 は公開されないまま5年経っている。
 もしかすると、コメントアウトを外した上でハードを少し改造すれば、AKI-PIC で PIC16F1827 が書き込めるようになるかもしれない。仮にそれが駄目でも、コメントアウト中の PIC16F1827 に関する記述はソフト改造の大きなヒントになる。

 PIC16F88 と PIC16F1827 の書き込みプロトコルがどう違うのか。それを調査するのが面倒だと思っていた。その調査をほとんど省ける可能性がある。

 取り急ぎ、Ver 6.76 付属の device6.ini をチェック。CONFIG レジスターに関してはHEXファイルの内容がそのまま書き込まれると期待する。そのうえでデバイス定義の差異は、

PIC16F88 PIC16F1827
POWER_MODE VDD VPP
PGM_TYPE FLASH4.9 FLASH8
JP2 NON 2-3
FIRM 6 6.80
VDD_VPP_DELAY 1 10

 となっている。どうやら PIC16F1827 は Ver 6.80 で対応予定だったものが日の目を見なかったようだ。
 PIC16F1827 のコメントを外して AKI-PIC を実行すると、6.80 以降に対応とエラーが出る。これを 6.72 など小さなバージョンに書き換えるとエラーは出ない。

 POWER_MODE VPP は初期の AKI-PIC から対応している。
 PGM_TYPE FLASH8 は、少なくとも Ver 6.72 で対応している。
 VDD_VPP_DELAY は Ver 6.05 以降が対応している。

 つまり、問題は2つだけだ。
1)Ver 6.76 でも JP2 を 2-3 にセットすればそれで済むのか?
2)VPP に 9V を供給すること。

 実は、COMMENT に記述がある。
 PIC16F88 には、RB3 をプルダウンしてくれというお馴染みのやつ。これが PIC16F1827 だとご注意! PIC16F1827はライタボードの改造が必要です。詳細は同梱ファイルの「VPP9V改造.TXT」をご覧ください。になる。
 当然ながら VPP9V改造.TXT なんてものは無い。Ver 6.80 と同時に公開予定の資料だったのだろう。

 ただ、PICの書き込みにVPPを使用する場合、12.5V と 9V の2通りがあると分かっている。これは電圧を間違えると壊してしまう。
 よって、AKI-PIC Programmer V4 の書き込み基板は VPP=12.5V 固定であると推定できる。確認できれば、9V に切り替えできるよう改造すれば良い。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年9月27日(木) 21:02

コンパイル大変

 AKI-PIC Programmer のソースリストは、制御用PICのファームウェアとPC側ソフトの2系統。このうちファームウェアはメーカー純正の MPASMWIN だから無問題として、PC側はどう見てもVB6だ。
 自分はまだ Windows 7 使っているが、その64ビット環境でVB6を動かすのは相当に厄介である。当然の前提として、SP6は当てておく。

・Microsoftのサイトより、Microsoft Visual Basic 6.0 コモン コントロールを落としてインストールする。

・[すべてのプログラム]→[アクセサリ]→[コマンドプロンプト] を右クリックし、「管理者として実行」する。

・レジストリ再登録
regsvr32 /u C:\Windows\SysWOW64\mscomctl.OCX
regsvr32 C:\Windows\SysWOW64\MSCOMCTL.OCX

・タイプライブラリの再登録
C:\Windows\regtlib.exe C:\Windows\SysWOW64\msdatsrc.tlb

・Microsoft Visual Basic 6.0 を「管理者として実行」する。

・プロジェクトのロードで picpgm6.vbp を開く。
 エラーがボコボコ出るが、すべて無視。

・[プロジェクト]→[コンポーネント]からチェックマークを追加。
Micorsoft Rich Textbox Control 6.0(SP6)
Microsoft Windows Common Controls-2 6.0(SP6)

・VB6を終了させる。保存しない。

・AKI-PIC のインストールディレクトリから device6.ini をコピーしておく。

・VB6を再度実行し、 picpgm6.vbp を開く。

 これでようやくプロジェクトをロードできるが、なおも「プロパティXXXのファイル参照が不正です。」というエラーが山ほど出る。
 *.frm が *.frx を参照しているが、*.frx が存在しない。これは単純に、秋月がソース公開するときに *.frx を含めていないのだろう。あくまで参考用に公開とのことなので、枝葉末節のファイルは公開外のようだ。しかし、これで動作できないわけじゃない。
 AKI-PIC Programmer の exe は Windows 7 の64ビット環境でも正常に動作するのだから、コンパイルだって出来なければおかしい。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年9月26日(水) 21:37

AKI-PIC Programmer

 秋月の「Pickit対応ICSP書き込みアダプターキット」によれば、PIC16F88 書き込み用と PIC16F1827 書き込み用の結線は完全に同一である。すなわち、PIC16F88 に書き込めて PIC16F1827 には書き込めない場合、その原因はハードではなくソフトにある。
 まてよ、そういえば AKI-PIC Programmer V4 で PIC16F88 を使おうとすると、警告が表示された。

 RB3 をプルダウンする必要がある。ならば同一ハードが必要な PIC16F1827 に書き込む場合も、RB3 はプルダウンすべきだ。
 さっそく自作基板に抵抗を追加。PICkit 4 を接続し、PIC16F1827 に書き込み実行・・・だが、症状は変わらない。書き込めない。

 今度は、PICkit 4 ではなく AKI-PIC Programmer に PIC16F1827 をセット。デバイスは PIC16F88 を選択し、「ターゲットデバイスが違う」の警告を無視して強行書き込みしてやる。
 すると、ベリファイでエラーになった。すべて 0x3FFF が読み出される。すなわち、書き込みが全く行われていない。たぶん書き込みを許可するためのプロトコルが PIC16F88 と PIC16F1827 で異なるのだろう。

 だが、PICkit 4 より前進している。PICkit 4 に自作基板をセットして PIC16F1827 に書き込もうとすると、0x3FFF が読み出されるはずなのに 0x0000 が読み出されたというエラーが初期に出る。つまり、書き込み以前に読み出しすら成功していない。
 これに対し AKI-PIC Programmer では、少なくとも読み出しは出来ている感じだ。

 AKI-PIC Programmer は、Ver 6.73 ならばソースリストが公開されている。だったらこれを PIC16F1827 対応に改造した方が早いんじゃね?

 自分は多種類のPICを使い分けるようなことはしない。PIC16F84A をずっと使用し、コイルガン戦車のときに薦められて PIC16F88 に乗り換えた。その後は今回の PIC16F1827 までずっとそのままだ。PIC16F1827 にさえ書きこめれば、汎用性など必要ない。
 PICkit 4 の方は dsPIC に書き込むのに使えるので、別に無駄ではないし。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

<< 前のページ

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4