最近になってEEPROMを読み書きする事がでてきたので、ここに書き留めておくとしよう。
Microchipフォーラムにも同様な質問が寄せられており、PICkit3の部品を2つ外す事が説明されている。この説明書は、PICkit(TM) 3 Programmer Application with scripting supportのテキストファイルに記載されているのだが、気が付きにくいファイルでもある。
改造は、まず以前にも紹介した3か所の抵抗100オームを0オーム(もしくはショート)する改造が必要になる。
さて、これを外した後の影響とすれば、6番ピンがフローティングになることだが、PICの通常書き込みでは使われない所である。PICkit3の未使用ビンの状態がどうなっているのかは、シーケンスが不明なので何とも言えないが、ハイインピーダンスになって心配というのであれば、R50を100kΩ以上に交換するのもいいだろう。(でも、最近のデバイスはESDに強くなった)
ツェナーは外部から電源が5V以上電圧がかかったらバイパスする役目があるが、電流制限がないから保護もあまり意味がないので、取っても問題ないだろう。
改造は以上で終わり。
あとはI2Cに接続するだけである。Vdd部分はIPEの設定でPICkit3から供給出来るかもしれないが、未検証なの不明。
以下、マイクロチップのReadmeより抜粋
> 24LC I2C bus devices:
Bus Speed-
400kHz with Tools -> Fast Programming checked
100kHz with Tools -> Fast Programming unchecked
NOTE: Bus pullups are required for all
programming operations. 400kHz requires
2k Ohm pullups. ←400kHzで動かすなら2kΩで外部プルアップしてね
NOTE: The I2C (24LC) Serial EEPROM devices require the following PICkit 3
hardware changes to work properly:
Remove TR3 from the PICkit 3.←対策した部分
Remove R50 from the PICkit 3.←対策した部分
Connections for 24LC devices
---------------------------------------
PICkit 3 Pin 24LC Device Pin (DIP) 接続方法
(2) Vdd 8 Vcc
(3) GND 4 Vss (GND)
(5) PGC 6 SCL (driven as push-pull) プルアップ不要
(6) PGM(LVP) 5 SDA (requires pullup) プルアップ必要
7 WP - disabled (GND)
1, 2, 3 Ax pins
Connect to Vdd or GND per
datasheet and to set address
> 25LC SPI bus devices: SPIの場合
Bus Speed-
~925kHz with Tools -> Fast Programming checked
~245kHz with Tools -> Fast Programming unchecked
Connections for 25LC devices
---------------------------------------
PICkit 3 Pin 25LC Device Pin (DIP) 配線方法
(1) VPP 1 nCS
(2) Vdd 8 Vcc
(3) GND 4 Vss
(4) PGD 2 SO
(5) PGC 6 SCK
(6) PGM(LVP) 5 SI
7 nHOLD - disabled (Vdd)
3 nWP - disabled (Vdd)
Connections for 93LC devices 93LCデバイスの配線方法
---------------------------------------
PICkit 3 Pin 93LC Device Pin (DIP)
(1) VPP 1 CS
(2) Vdd 8 Vcc
(3) GND 5 Vss
(4) PGD 4 DO
(5) PGC 2 CLK
(6) PGM(LVP) 3 DI
7 PE - enabled (Vdd)
6 'C' Device ORG
Set to select word size
11LC UNI/Oというデバイスは、ほとんど馴染みがないので割愛。
というわけで、PICkit3でMicrochip MPLABX IPE(後日調べてできない事が判明。追記参照)でも、スクリプティングツールでも書き込みができる。
2016/6/12追記
MPLABX IPEは、MPLABX IDEをインストールすればインストールされる。
スクリプティングツール同リンク先のDownloadArchivesか、ここ(zip)をクリック
残念ながら、MPLAB IPEではPICkit3でのEEPROMをサポートしていない。なので、スクリプティングツールを使って書くことになる。
スクリプティングツールのありかは、昔は単一のアドレスにあったのが、わかりにくい所に移動した。
まずはここのリンクへ行き、Download Archiveをクリック。ずっと最後の方に、ようやくPICkit3 ScriptingTool Ver3.10が出てくるので、これをダウンロードする。もちろん、このページ内にはPICKit2のツールや、旧ファイルがある。
インストールするとき、Windows7やWindows10の場合、インストーラー起動後にインストール先を指定する所で、C:\Program Files以外の所を指定する。これをしないと、Windowsの保護機能で、エラーとなり、毎回終了時に上記のエラーに遭遇する。
私はC:\tools\Microchip\PICkit 3 v3を指定した。なお、Pickit2の場合はエラーにならない。
起動して、まずやることは、PICkitのファームを書き換える作業。これを行って初めて、ScriptingToolが使える様になる。指定するファイルはおそらく一つ見えるのがあるので、それを選択。一見数十秒以上止まった感じになるが、1分位待っていればOKだ。
なお、PIckit3(2も同様)をMPLABに使うことを想定して、Revert MPLAB Modeを選択すれば、もとに戻る。これをしなくても、MPLAB側でケアしてくれるはず。
--------------------------------------------------------------------------
実際のデバイスの追加
さて、今度はデバイスの追加をやってみる。
アトメルの24C1024が手持ちにあるので使いたいのだが、このままでは利用ができない。
マイクロチップの24LC1025ととても似ているのだが、実際はアドレスの17ビット目の位置が違うため、正常に読み書きができないのである。
PICkit2 Device File Editor.exeを使えば、内容を変更できるようだ。
といっても、新規でデバイスを追加はできない様で、似たデバイスをDuplicate機能でコピーし、パーツ名を変更して使う。
最初にPK2DeviceFile.datをコピーしてオリジナルを保存しておく。そして、このエディター起動後にFileからPK2DeviceFile.dat読み込む。
流用したのは24LC1025
Part Nameを24C1024(Admel)とし、Configの[3]を0にした。その後FileからSaveでおしまい。ツールを終了してPICkit3を立ち上げる。
たった1つの違いではあるが、ここまで調べるのにいろいろと時間がかかった。
これで、128KByteのテストデータを使用してWriteやVerify、Eraseなどの動作を一通り行って問題が無いことが確認できた。
但し、A1,2,0のアドレス指定はできず、チップ側ですべてGNDに固定する必要がある。この部分は更にデータの修正が必要と思われるが、いろいろ複雑であり、今後の研究としようと思う。
もちろん、PICkit2でも使える様になる。
また、この内容を理解するために、PICkit2SourceGuidePCv2-61FWv2-32.pdfなどを参考にした。
更に、PICkit2 Device File Editoでは意味不明なAA何とかとかいう記号も理解できた。
このツールをうまく使いこなせられたら、今後発表されるPICやEEPROMに対応できるだろう。
なお、私が修正したファイルや128KByteのテストファイルなどはこちらからダウンロード(ZIP)できるようにしてある。既にインストールされているPK2DeviceFile.da.datの名前を変更してバックアップとし、ダウンロードしたファイルに差し替えるだけでAtmel24C1024が使用できるようになる。
(なお、ご使用は自己責任でお願いします。)
※類似品に注意
これなんですが、ファイルへのアクセス権がないだけではないかと思います。iniファイルのプロパティでUsersの権限をフルコントロールにしてはいかがでしょう。