[][mobile][Homepage][BBS][Blog][YouTube][asablo]

PICkit3もEEPROMが書ける(要改造)追記あり2016/06/12 23:15:55



2年以上も前にPICkit2はEEPROMが書けて便利 PICkit3では?」の記事を書いたのだが、その後、書き込める事のコメントを頂いていた。
最近になってEEPROMを読み書きする事がでてきたので、ここに書き留めておくとしよう。

Microchipフォーラムにも同様な質問が寄せられており、PICkit3の部品を2つ外す事が説明されている。この説明書は、PICkit(TM) 3 Programmer Application with scripting supportのテキストファイルに記載されているのだが、気が付きにくいファイルでもある。




改造は、まず以前にも紹介した3か所の抵抗100オームを0オーム(もしくはショート)する改造が必要になる。




PICkit3でもEEPROMはかける(要改造)

次に、TR3(5Vツェナーダイオード)とR50(4.7kΩ)の2つの部品を外す。はんだごてが2本あると簡単に外せるが、そうでない場合は、以前行った銅線などではちまきを作る方法が使える。


さて、これを外した後の影響とすれば、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ビット目の位置が違うため、正常に読み書きができないのである。



そこでPK2DeviceFile.datを書き換えることになるが、この意味が良くわならないで右往左往していると、Microchipフォーラムに有益な情報があった
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が使用できるようになる。
(なお、ご使用は自己責任でお願いします。)


Atmel AT24C1024 Datasheet 秋月
Microchip 24LC1025 Datasheet  秋月なぜかFCの方が安い LCはこちら



※類似品に注意


コメント

_ dil ― 2017/03/26 21:45:18

>Windowsの保護機能で、エラーとなり、毎回終了時に上記のエラーに遭遇する

これなんですが、ファイルへのアクセス権がないだけではないかと思います。iniファイルのプロパティでUsersの権限をフルコントロールにしてはいかがでしょう。

_ dil ― 2017/03/26 21:53:42

やってみました。iniファイルはフォルダに無く、作成ができなかった、ということのようです。
PICkit 3 v3のフォルダのUsersの権限をフルコントロールにすることで対策できます。

_ airvariable ― 2017/04/08 22:34:59

dilさん、情報を頂きましてありがとうございます。

私の場合は結局VMware上にXPで動作させて使っています。
尤も、最近EEPROM触っていないので、今度試してみたいと思います。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
全角で「あ」をタイプしてください。Japanese language only.

コメント:

トラックバック





[][admin][mobile][Homepage][BBS][Blog][YouTube][asablo]