PIC16F1705をPICkit2で使う

先日、秋月で販売が開始されたPIC16F1705は、8kwもメモリを搭載し、いろいろなアナログ機能が盛り込まれているだけでなく、各I/Oポートの仕様を細かく設定できるなど、ある意味「何でもアリ」のマイコンなので注目してるのだが、新しいチップがゆえPICkit2での書き込みに対応していない。そこで、例のPK2DeviceFile.datを書き換えて何とか使えるようにしたいと思う。

I-08578

このチップ、何が問題かって、今までのF1チップたちと違う特性が1カ所ある。それは・・・

Device IDとRevision IDが違うワードに割り当てられている

ことである。今までのチップたちは同一ワードで両IDを表現していたので、例えばその辺の8kwのF1チップのデータをコピペしてDevice IDだけを変えるだけでは対応できないのである。前回、PIC16F1825やPIC16F1829のデータを作成したときは簡単にデータエントリを作成できたのだが、そういうわけにはいかないということである。

そこで、困ったときのフォーラム頼みということで、Microchip Forumを覗いてみることにする。

http://www.microchip.com/forums/m814654.aspx

ここではPIC12F1782を対応させようと奮闘しているのだが、ここの情報を基にPIC16F1705に対応させてみようと思う。

まず、先ほどのDevice IDに対応させる点については、このフォーラムに新しいスクリプト例が載っているのでそのまま使わせてもらった。あとは、PIC16F1705/9のチップのプログラム書き込み仕様書をMicrochipからダウンロードして、

http://ww1.microchip.com/downloads/en/DeviceDoc/40001683B.pdf (注:ドキュメントが改編されれば文書番号が変わってリンク切れになるかもしれません)

これに合わせてエントリを作成するだけだ。

今回はメモリ容量の同じチップ(8kw Flash,1kB RAM,No EEPROM)と言うことでPIC16F1455をコピーして作成した。
具体的に修正した箇所は以下の通り、

1.新しいFamilyを追加したのでそれに合わせてFamily番号を変更
2.DeviceID
3.ConfigMasks
4.VddMax
5.CalibrationWords

これを保存してPICkit2のインストールフォルダにコピーすればOK!

DevFile147

ちゃんと正しく認識したようだ。

ちなみに簡単なプログラムを書き込んでみた。

pgm

ちゃんと書き込んだプログラムは実行されているようだ。

未だにPICkit2を手放せない人でこのデバイス定義ファイルが欲しい方はご自由にどうぞ!

PK2DeviceFile_1_62_146plus1 (例によって拡張子がdocになっているが、ZIPに変更してダウンロードして解凍して使用ください)
解凍すると長々とした名前になっているが、PK2DeviceFile.datにしてからPICkit2のインストールフォルダにコピーしてください。なお、コピーにはマシンの管理者権限が必要です。また、定義内容は完璧ではない可能性がありますので、すべて自己責任でご利用ください。

    • Panda43
    • 2014年 11月 14日

    このページを見て私もほかのPICでチャレンジしてみました。
    が、16F1822-25,28-29のconfig2 word mask が違っているように
    思われるのですが、勘違いでしょうか????

    • 確認してみました。確かに1826/27(0x3713)とその他の182x(0x3703)でconfig2 word maskの値が異なるようです。データシートを確認したところ、この異なるbit4はReservedになっているので通常使用されることはない模様です。気にしなくても大丈夫だと思います。個々のチップのデータシートとプログラミング仕様書(DS41390D)では、Reservedのビットの部分の網掛けが違っていたので、設定した人がどちらを見たかでマスク値が異なったのだと推測します。とはいえ、このビットを設定することはないので、ある意味182xの0x3703の方がよいかも知れませんね。

    • koujikuu
    • 2014年 12月 4日

    はじめまして、
    PK2DeviceFile.dat 1.62.146plus1 へ入れ替えたところ PIC12F1822,PIC16F1938/9 が認識しなくなりました
    PIC2DeviceFile.dat 1.62.14 or 09 では認識できます
    とりあえず報告まで。

    • koujikuu
    • 2014年 12月 4日

    自己解決しました
    PK2DeviceFile.dat 1.62.146plus1 認識方法
    PIC16F1705 – PICKIT2 / DeviceFamily / Midrange / SparatedDevID
    PIC12F1822,PIC16F1938/9 – PICKIT2 / DeviceFamily / Midrange / 1.8v Min で認識できました
    PIC16C84,16F84 も NoDeviceid で選択できるようです
    お騒がせしました。

  1. そうですね。新しいファミリを追加したので自動認識にはファミリ指定がいるみたいですね。チップを認識するために必要なデバイスIDの読み出し方がこれまでと違うので仕方ないのかなと思います。

    • koujikuu
    • 2014年 12月 6日

    お世話になります
    PIC16F1705メモリーマップにSRAMが512バイト(80*6+16+16)しか割り当てがないので調べてみました
    結果PIC16F1938/9と同様 1024バイト(80*12+48+16)がメモリーダンプで確認できました

    今回PPS機能を使いTXをICSPDATに割り当て、PICKIT2のUART TOOLで確認しましたが、xxxPPSとRxyPPSが別バンクに割り当てられているので設定に注意が必要です

    またPIC16F1705を使用する為にMPLABXをインストールしましたが、MPLABと使い方が違い馴染めないので、
    “P16F1705.INC”をMPLABにコピーしprocessor 16F1829を指定してアセンブルを行いました

    PIC16F1705の参考になれば幸いです。

  1. 2015年 1月 29日

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。