2023-05-19 PICkit5
- 2024-04-14 UPDI HVA対応しました。これに伴い「書き込み方式」の選択を追加しました。
- 大規模な変更のためバグがあるかもしれません。Ver 7もしばらく残します。
- 2023-03-13 デバイスの対応状況を確認しました。実はこの作業に多くの時間と手間がかかります。
- 対応していないデバイスの発見は大変な作業です。「ある」を探すのは簡単ですが、「ない」を探すのは大変です。
- 一般的に労力は準備8割、本番2割といわれています。物事がうまくいくかは事前準備の8割で決まります。
- ※PIC16F152xx, tinyAVR-2に対応, AVRのFUSE整理
- AVRのUPDIに対応するため、大規模改修しました。従来と全く書き込み方法が異なります。
- ※ATmega4808, ATmega4809に対応
- PIC16F188xx, PIC16F153xxに対応するため、大規模改修しました。
- ※PIC16F188xx, PIC16F153xxは新たなNVM(Non-Volatile Memory=不揮発性メモリ)になり、書き込み方法が従来と異なります。
- ※PIC18FxxK40, PIC18FxxK42, PIC18FxxK83も新たなNVMです。
2021-10-02 半導体不足
- PICkit5を発表。さすがにPICkit4のようにLow-Costとは言わなくなりました。
- $94.99とさらに値上がり。価格は\17,800。中古のスマートフォンが買えます。
- ますます買えない値段になりました。壊したときの損害は大きいです。
- PICerFTなら壊しても痛くありません。PICkit5とPICerFTのコスト比はさらに広がりました。
- MPLAB X IDE V6.25からPICkit3を使えません。PICkit3の終了です。6.20までです。
- PICkit5の発売に伴いPICkit4もディスコンになるでしょう。
- 日本の金利が低いため、円安傾向はしばらく続きます($1=\140)。
- 日本の金利を米国並みに上げない限り、円安は止まりません。
- 米国の政策金利は5%、日本の政策金利は-0.1%。
- 経済格差、物価の格差が激しいです。
2021-07-02 緊急告知
- ※2023年7月Sonyの製造ラインが戻り、Raspberry Piが量産されます。品不足の解消見込みです。
- ※ただし、円安のため価格は高めの見込みです。$1=\140、ざっくり1.5倍です。
- ※半導体不足解消に伴い、より戻しで過剰在庫が目立つようになりました。
- 世界的な半導体不足のために、PICkit4 や Raspberry Pi 4B が品不足です。これは日本だけの話ではありません。
- いずれ解消すると思われますが、時期は予測不能です。
- PICkit4 のリードタイムは11週から35週(2か月から8か月)くらいです。
- PICライターがないことには開発できません。こんなことになるとは思いもしませんでした。
- PICkit4の値上げもあり($47.95->$69.99->$76.99)、PICerFTへの問い合わせが急増しています。
- PICkit4は手の出ない値段になってしまいました。今後も値上げの可能性があります(\12,800->\13,800->\15,800)。
- MPLAB snap($39.20)でさえ\7,700です。状況が一変してしまいました。PICkit3をサポート外にしたためかsnapを$14.99に値下げ(2024年)。
- snapの発売が2018年と古いので、サポート外も近いかもしれません。PICkit4は販売終了。
- PICerFTに特殊な部品はないため今のところ品不足の心配はありません。
- PICerFTもデバイス対応(18FxxQxx)を行い、バージョンアップしました。
さらに使いやすくなりました。
- Writeボタンでファイル選択ボックスが開きません。
- Windows 10 21H1(10.0.19043.1052) で発生します。
- 原因はcomdlg32.dllにあります。何か変更したようです。
- C:\Windows\SysWOW64\comdlg32.dll スタンプは2021-04-14
- dllの問題か実行権限に問題がありそうです。管理者権限で実行するとエラーは発生しませんがやはり開きません。
- Windows 10 側の修正を待つことにします。
- 回避策としてファイルのドラグ&ドロップを利用してください。
- 2021-07-05 KB5003690適用で解決を確認しました。
- 2021-06x64 ベース システム用 Windows 10 Version 21H1 の累積更新プログラム (KB5003690)
- Windows 10 の更新は直すのではなく壊すことが多いです。
- 導入方法が簡単に。FTDI内部の初期設定を自動化しました。FT_Progを使用する必要がなくなりました。
- ドラッグアンドドロップ機能。書き込みはHEXファイルをドロップするだけです。ファイルを選択する必要がなくなりました。
- プラグアンドプレイ対応。FTDIデバイスの接続、切断を自動認識します。プログラムを再起動する必要がなくなりました。
PICerFTの必要性
- USB接続のPICライタの紹介です。その名もPICerFT(ピッカーエフティ)。
- 秋月のUSBシリアル変換モジュール[FT232RL]を利用し、安価で小型のライタです。
- ひとまずフリー(無償)として公開しますが、将来有料化(ライセンス化)する可能性があります。
- ※設計費用、プログラム開発費用、サポート費用などの人件費を回収する必要があるためです。
- たかが数回使用するために、高価なPICライター(PICkit5なら17,800円)を購入するのはコスト的に見合わないでしょう。
- 17,800円も出すならラズベリーパイが買えます。PICを利用する意味がなくなります。
- しかもICSP接続を間違えてPICkit5を壊す方がおります。買い替える勇気はありますか?また壊すかもしれません。
- 同じマイコンであるRaspberry Pi Pico なら$4(770円)です。しかも書き込み装置を必要としません。
- どうしてもPICでなければならない理由があるなら別ですが、Picoでも目的を実現できるでしょう。
- 目的と手段を取り違えないようにしましょう。こだわりを捨てましょう。
- 特に学生や教育現場では、コストがネックです。特にお試しで使うならコスト重視です。
- はじめから継続的に使う意志があるなら、PICkitを買ってもよいでしょう。断念した場合のコスト・リスクがあります。
- 簡単な回路を組み上げられるかという試験の意味もあります。これくらいの回路を組み立てられないようではPICも難しいでしょう。
- PICkitを買ってもICSPの接続を間違えたら動きません。
- PICerFTにデバック機能はありません。初心者に専用デバック機能は複雑すぎて向いていません。
- 勘違いが多いのですがデバック機能は間違いを自動修正してくれません。そんな便利な機能はありません。
- 専用デバック機能に頼るのではなく、プログラムや回路の見直しを基本にしましょう。
- 専用デバック機能を使うのは最終手段です。めったに使うことはありません。むしろ面倒なので使いたくありません。
- 初歩的なミスを排除しておかないで、デバック機能に頼ってはいけません。
- プロであるほど、基本を重視し、専用デバック機能に頼りません。
- せいぜい、シミュレータ(MPLAB SIM)までです。
- 専用デバックは行き詰ったときであり、仕様通りではないような、本来ありえないバグを発見するときです。
右上:PICerFT
左上:AE-UM232R(秋月のUSBシリアル変換モジュール)
著作権と免責事項補足
- このハードウェアとソフトウェアの著作権は法律で保護されています。
- 個人利用に限定され、著作権者の許可なく商用利用できません。
- このソフトウェアはフリーウェア(無償)です。ただし将来有料化することもあります。
- ※オープンソース(ソースも公開)ではありません。勘違いしないでください。
- 無保証です。そのため、修正義務、回答義務を負いません。
- 直接間接に関わらず、使用によって生じたいかなる損害も開発者は責任を負いません。
- 自己責任において使用してください。
- 仕様は予告なく変更されることがあります。
- 将来にわたり開発やサポートを継続する約束はできません。
- ※あるがままの現状を受けいれてください。これを英語では As it is と表現します。
- ※それ以上でもそれ以下でもありません。暗黙の了解として将来に期待してはいけません。
- 使用を強要、強制するものではありません。
- 使用するしないはあなたの自由意志です。
セキュリティソフト
- 著作権を放棄しないのは理由があります。
- オープンソースにしないのは理由があります。
- いつか語れるといいのですが。
- ウイルスセキュリティZEROで"Trojan(00071a9b1)"と誤認するとの報告を受けました(2010-08-29)。
- Immunet3で"Clam.Win.Trojan.Remotesob"と誤認するとの報告を受けました(2015-02-06)。
- こちらでは Avastでチェックしています。
PICライタの基本的な仕組みです。
- デバイスによって多少異なります。
- たとえば、Vpp(12.5V/9V)の代わりにMCLR(5V/3.3V)を使用するデバイスがあります。
- PGM端子をもつデバイスがあります。低電圧書き込みモードのときHighにします。通常はLowにします。
- ※PGC=ICSPCLK、PGD=ICSPDATと読み替えてください。
さて、PICerは自作でき、入門には最適なPICライタでした。 しかし時代の移り変わりとともに問題点も浮かび上がってきました。入門レベルを卒業された方は18Fシリーズを扱うことが出てくるでしょう。 18Fシリーズ、dsPICシリーズの書き込みには複雑な処理を必要とするため、パラレル制御では限界がありました。 そこでこれらを解決すべく、計画されたのが PICerUSB, PICerFT です。 PICkit2($44.95=\5000前後)PICkit3($47.95=\6000前後)PICkit4($47.95=\6000前後、値上げ$69.99=\8500前後、値上げ$76.99=\12800前後)よりも手軽に制作できそして低コストを目指しました。
- 最近のノートPCのインターフェースはパラレル、シリアルからUSBに変更された。
- 外部電源を必要としていた。
- 18Fシリーズ、dsPICシリーズへの対応が困難であった。
基本コンセプトは簡単便利PICerFTのメリット
- ファームウェア更新の必要もない。
- ランタイムライブラリ(Visual Studioなど)も必要ない。
- なにかやろうとしたら、あれもこれも必要では面倒で仕方がない。
- どんなに高機能、高性能であっても使い方が面倒では使えない。
- ただでさえ面倒なのでできるだけ、面倒を避けたい。
- ハードウェアを簡素化。入手できない部品では意味がない。複雑な回路では意味がない。
- ソフトウェアの導入はダウンロードして展開するだけ。
- FTDIのドライバをインストールするだけ。
- ICSP接続し、Vpp電圧選択(12.5V/9V)、Vdd電圧選択(3.3V/5V)するだけ。
- 基本操作は「Connect(接続)」「Detect(検出)」「Erase(消去)」「Write(書き込み)」「Check(消去確認)」「Read(読み込み)」だけ。
- 必要最小限の操作に絞っている。
- 地味だが、表示をテキストボックスに変更。エラー内容をコピーして報告できるようにした。カット&ペーストしてメールに貼り付け。
- まるでスマートフォンのアプリである。実行サイズが1MB以下である。
PICerFTのデメリット
- ファームウェア不要のため、自己完結で製作できる(PICライタを作るためにPICライタが不要)
- 1000種類以上のPICやAVRに対応
- ICSP方式採用
- dsPIC/PIC24ではEnhanced ICSP対応(Standard ICSPよりも高速処理)
- AVRのUPDI方式にも対応
- 低コスト(PICkit4よりも低コスト)
- USB 接続(FTDIの外部モジュールを使用)
- 外部電源不要(USBから供給)
- デバイスタイプを検出(対応デバイスが多いため、選択を半自動化)
- PIC電源として5Vだけでなく3.3V書き込みにも対応(LFタイプ用)
- タイミング制御はFTDIの精度に依存
- 高速書き込み(大容量の18Fシリーズで効果を発揮)
- USB 接続でありながら、少ない部品点数(主要パーツ20点)
- 入手しやすい部品(特殊パーツなし)
- 製作が容易(小型軽量)
- プログレスバー搭載(進行状況把握)
- ほぼすべてのFLASHタイプに対応(10F,12F,16F,18Fシリーズ)
- Atmelにも対応(ATtiny,ATmegaシリーズ)
- ドラッグアンドドロップ機能(簡単操作、HEXファイルをドロップするだけで書き込み)
- FTDIデバイス自動認識(プラグアンドプレイ対応、プログラムの再起動不要)
- PCのCPUですべての処理を行うため、処理速度はCPU性能に左右される(Celeron 1.2GHz以上を推奨)。
- CPU負荷が高く、1コアの場合ほぼ100%のCPU使用率となる。2コア(Core 2 Duo)の場合、50%程度。
- ファームウェアを使用する方式に比べて処理時間がやや長くなる。(ただし許容できる時間)
ハードウェアのリビジョンの違い
Rev.1 Rev.2 Rev.3 UPDI未対応 UPDI対応 UPDI HVA対応 VDD制御=DCD# VDD制御=DTR# VDD制御=DTR# RST制御=RI# RST制御=RI# RST制御=RTS# PGC制御=RTS# PGC制御=RTS# PGC制御=RI# - PICerFT 7.4以降 PICerFT 8.0以降
2021-04-24 ピンを(9)DCD#から(2)DTR#に変更しました。
J1はVpp=9Vのときショートさせます。初期設定はショートです。以下のデバイスはVpp=12.5VではなくVpp=9Vですので注意が必要です。
J1 Vpp電圧選択 ショート 9.0V オープン 12.5V
PIC10F 320, 322
LF320, LF3228-9V PIC12F 1501, 1571, 1572, 1612, 1822, 1840
LF1501, LF1571, LF1572, LF1612, LF1822, LF18408-9V PIC16F 707, 720, 721, 722, 722A, 723, 723A, 724, 726, 727
LF707, LF720, LF721, LF722, LF722A, LF723, LF723A, LF724, LF726, LF727
1454, 1455, 1458, 1459
LF1454, LF1455, LF1458, LF1459
1503, 1507, 1508, 1509, 1512, 1513, 1516, 1517, 1518, 1519, 1526, 1527
LF1503, LF1507, LF1508, LF1509, LF1512, LF1513, LF1516, LF1517, LF1518, LF1519, LF1526, LF1527
LF1554, LF1559, LF1566, LF1567
1574, 1575, 1578, 1579
LF1574, LF1575, LF1578, LF1579
1613, 1614, 1615, 1618, 1619
LF1613, LF1614, LF1615, LF1618, LF1619
1703, 1704, 1705, 1707, 1708, 1709, 1713, 1716, 1717, 1718, 1719,
1764, 1765, 1768, 1769, 1782, 1783, 1784, 1786, 1787, 1788, 1789
LF1703, LF1704, LF1705, LF1707, LF1708, LF1709, LF1713, LF1716, LF1717, LF1718, LF1719,
LF1764, LF1765, LF1768, LF1769, LF1782, LF1783, LF1784, LF1786, LF1787, LF1788, LF1789
1773, 1776, 1777, 1778, 1779
LF1773, LF1776, LF1777, LF1778, LF1779
1823, 1824, 1825, 1826, 1827, 1828, 1829, 1847
LF1823, LF1824, LF1825, LF1826, LF1827, LF1828, LF1829, LF1847
1933, 1934, 1936, 1937, 1938, 1939, 1946, 1947
LF1902, LF1903, LF1904, LF1906, LF1907
LF1933, LF1934, LF1936, LF1937, LF1938, LF1939, LF1946, LF1947
18313, 18323, 18324, 18344, 18325, 18345, 18326, 18346
LF18313, LF18323, LF18324, LF18344, LF18325, LF18345, LF18326, LF18346
18424, 18444, 18425, 18445, 18455, 18426, 18446, 18456
LF18424, LF18444, LF18425, LF18445, LF18455, LF18426, LF18446, LF18456
18854, 18855, 18875, 18856, 18876, 18857, 18877
LF18854, LF18855, LF18875, LF18856, LF18876, LF18857, LF18877
15213, 15214, 15223, 15224, 15225, 15243, 15244, 15245, 15254, 15255, 15256, 15274, 15275, 15276
15313, 15323, 15324, 15344, 15354, 15325, 15345, 15355, 15375, 15385, 15356, 15376, 15386
LF15313, LF15323, LF15324, LF15344, LF15354, LF15325, LF15345, LF15355, LF15375, LF15385, LF15356, LF15376, LF15386
19155, 19156, 19175, 19176, 19185, 19186, 19195, 19196, 19197
LF19155, LF19156, LF19175, LF19176, LF19185, LF19186, LF19195, LF19196, LF19197
17114, 17115, 17124, 17125, 17126, 17144, 17145, 17146, 17154, 17155, 17156, 17174, 17175, 17176
18013, 18014, 18015, 18023, 18024, 18025, 18026, 18044, 18045, 18046, 18054, 18055, 18056, 18074, 18075, 18076
18114, 18115, 18124, 18125, 18126, 18144, 18145, 18146, 18154, 18155, 18156, 18174, 18175, 18176
13113, 13114, 13115, 13123, 13124, 13125, 13143, 13144, 131458-9V PIC18F 13K22, LF13K22, 13K50, LF13K50
14K22, LF14K22, 14K50, LF14K50
24K50, 25K50, 26K50, 45K50, 46K50
LF24K50, LF25K50, LF26K50, LF45K50, LF46K50
24K40, 25K40, 26K40, 27K40, 45K40, 46K40, 47K40, 65K40, 66K40, 67K40
LF24K40, LF25K40, LF26K40, LF27K40, LF45K40, LF46K40, LF47K40, LF65K40, LF66K40, LF67K40
24K42, 25K42, 26K42, 27K42, 45K42, 46K42, 47K42, 55K42, 56K42, 57K42
LF24K42, LF25K42, LF26K42, LF27K42, LF45K42, LF46K42, LF47K42, LF55K42 ,LF56K42, LF57K42
25K83, 26K83
LF25K83, LF26K83
24Q10, 25Q10, 26Q10, 27Q10, 45Q10, 46Q10, 47Q10
25Q43, 26Q43, 27Q43, 45Q43, 46Q43, 47Q43, 55Q43, 56Q43, 57Q43
26Q83, 27Q83, 46Q83, 47Q83, 56Q83, 57Q83
26Q84, 27Q84, 46Q84, 47Q84, 56Q84, 57Q84
04Q40, 05Q40, 06Q40, 14Q40, 15Q40, 16Q40
04Q41, 05Q41, 06Q41, 14Q41, 15Q41, 16Q41
24Q71, 25Q71, 26Q71, 44Q71, 45Q71, 46Q71, 54Q71, 55Q71, 56Q71
04Q20, 05Q20, 06Q20, 14Q20, 15Q20, 16Q208-9V PIC18F 23K20, 24K20, 25K20, 26K20, 43K20, 44K20, 45K20, 46K20 Vdd+1.5V-9.0V PIC18F 23K22, 24K22, 25K22, 26K22, 43K22, 44K22, 45K22, 46K22
LF23K22, LF24K22, LF25K22, LF26K22, LF43K22, LF44K22, LF45K22, LF46K22Vdd+4.5V-9.0V PIC18F 65K22, 66K22, 67K22, 85K22, 86K22, 87K22
65K90, 66K90, 67K90, 85K90, 86K90, 87K90Vdd+1.5V-10.0V
rev.2
値 数 備考 単価 0.01uF 1 C1 積層セラミックコンデンサ \10 22uF 1 C2 縦型電解コンデンサ(耐圧25V) \10 1N4148 1 D1 スイッチング・ダイオード(代替品 1S1588, 1S2076A, BAV21)、整流ダイオードは不可 \10 HZ12A2 1 Z1 12Vツェナー・ダイオード(RENESAS)(代替品 RD12E B3, GDZJ12C, BZX55C12V) \10 HZ9B1 1 Z2 9Vツェナー・ダイオード(RENESAS)(代替品 RD9.1E B1, GDZJ9.1C, BZX55C9V1) \10 100uH 1 L1 アーキシャルリード・インダクタ(LAL03NA101K, 太陽誘電)(代替品 AL0307-101K) \10 2SC1815 2 Q1,Q4 NPNトランジスタ(TOSHIBA,UTC)ランクはY, GR, BL、(代替品 2SC945L) \10 2SA1015 2 Q2,Q3 PNPトランジスタ(TOSHIBA,UTC)ランクはY, GR, BL、(代替品 2SA733L) \10 1k 1 R7 カーボン皮膜抵抗(小型1/6W) \10 4.7k 1 R6 カーボン皮膜抵抗(小型1/6W) \10 10k 4 R1,R2,R4,R5 カーボン皮膜抵抗(小型1/6W) \10 100k 2 R3,R8 カーボン皮膜抵抗(小型1/6W) \10 AE-UM232R 1 IC1 秋月のFT232RLモジュールキット[AE-UM232R](ミニUSB) \950 1x20P 1 ピンヘッダー(2P/6P/7P)2.54mm \20 合計 20 \1150
- 単価は参考価格(目安)です。変動する可能性があります。
- ※値上げラッシュ(2022-12)、AE-UM232Rの完成品が\950から\1,100、キットが\800から\950に値上げされました。
- ※(2024-01-26)秋月のサイトリニューアルに伴い商品番号が変更されました。
- ※さらにhttps://ajax.googleapis.com/を広告ブロックするとサイト表示しません。
- ※googleのjsライブラリが使われています。
- 機能強化のためR6=10kから4.7kに変更しました。
- 機能強化のためR7=4.7kから1kに変更しました。
- AE-UM232Rにはキットと完成品があります。どちらも使用できます。
- 似たようなモジュールとして、AE-FT245Rがありますので注意してください。
代替品
- J1の解説です。
- 左がピンヘッダです。ピン間隔は2.54mmです。必要なピン数をカッターで折って使います。
- 形状は1列と2列があります。ピンの長さも標準、ロング、ロープロファイルがあり用途によって使い分けます。
- 右がジャンパーピンです。これを使ってピンヘッダをショートさせます。
回路設計
- 日々、部品の入手が困難になっています。
- メーカーは表面実装へ切り替えており、ますます入手できません。
- そこで代替品を掲載します。
- 捨てる神あれば拾う神あり。
- 製造終了した半導体をセカンドソースとして製造するメーカーが現れました。
- 回路設計は容易ではありません。
- 理論と現実は違います。現実は理論通りにいきません。
- 昇圧回路は目的の電圧であることはもちろんのこと、必要な電流を取り出せるようにしています。
- 必要な値と実際の値の確認も行っています。
- 電圧だけではダメなんですね。同時に電流も考えなければなりません。
- 同様にFT232Rのピンから供給できる電流も内部設定しています。
- 部品の発熱にも気を付けています。
- さまざまな検証が行われています。
- だから指定部品を使用している限り、動作が確約されます。
- ソフトウェア的にも考慮されています。
- 例えば書き込み後に電源をオフしているのも理由があります。壊す可能性があるからです。
- 勝手にプログラムが走り始めると出力信号が衝突する可能性があります。
- ※書き込み側とPIC側のピンが同時に出力設定になると信号衝突します。
- 考えられる限りの考慮をしています。
- 簡単そうにみえて簡単な話ではありません。
部品配置
PIC専用(表面=部品面)
- 2021-04-24 ピンを(9)DCD#から(2)DTR#に変更しました。
- 自作で回路図から基板を起こすことは良い勉強になります。
- 悩み、苦しみ、間違いを繰り返すことで習得していきます。
- いかに大変なことか身をもって経験するでしょう。
- ハードウェアはどこか一箇所でも間違うと正しく動きません。間違いの許されない世界です。
- 大体組み立てれば大丈夫だろうとお考えの方に電子工作は向いていません。
- そのため、あえて基板図を掲載しませんでした。
- そもそも2層基板でないと、小型化できません。
- あまりに配線間違いが多いので、1層基板の例を掲載します。
- ただしPIC専用、AVR専用です。1層基板では複雑な配線は難しいからです。
- 単に部品を配置すればよいというものではありません。できるだけ配線を短く、交差しないようにしなければなりません。
- 回路図と見比べてみてください。
- ユニバーサル基板の例
AVR専用(表面=部品面)
- トランジスタにはNPN型とPNP型があります。
- PNP型に慣れていない方が多く、特にE(エミッタ)とC(コレクタ)を取り違えます。
- PNP型はEとCがP型に接続されているため、中途半端に動いてしまいます。ただし、正しい使い方ではありません。
- 取り違えても動いてしまうことが多いため、間違いに気づきにくいです。
- PNP型だからと言って、対称の内部構造ではないためEとCを取り違えると、本来の性能を発揮できません。
- 完全な故障なら故障個所の特定は簡単ですが、中途半端な故障はもっともたちが悪く故障箇所を特定しにくいです。
- 一度、先入観や思い込みをすべて捨てる必要があります。自分の行為を自己否定する勇気が必要です。
- なお、ピン配置はトランジスタの型番によって異なるため、必ずデータシートで確認します。
チェックポイント
- Z1の端子電圧が12.5Vあるいは9Vの確認。J1をショートすると9Vになる。
- Q3のエミッタ電圧が5Vあるいは3.3Vの確認。AE-UM232R上のJP1で5V/3.3Vの切替。
仕様は予告なく変更されることがあります。
Microchip Flash対応リスト PIC10F 200, 202, 204, 206, 220, 222, 320, 322, LF320, LF322 PIC12F 508, 509, 510, 609, 615, 617, 629, 635, 675, 683, HV609, HV615, 752, HV752
1501, LF1501, 1571, LF1571, 1572, LF1572, 1612, LF1612, 1822, LF1822, 1840, LF1840PIC16F 54, 57, 59, 505, 506
610, HV610, 616, HV616, 627, 628, 627A, 628A, 630, 631, 636, 639, 648A, 676, 677
684, 685, 687, 688, 689, 690
72, 73, 74, 76, 77, 716
707, LF707, 753, HV753
720, 721, 722, 722A, 723, 723A, 724, 726, 727
LF720, LF721, LF722, LF722A, LF723, LF723A, LF724, LF726, LF727
737, 747, 767, 777, 785, HV785
83, 84, 84A, 87, 88
818, 819, 870, 871, 872, 873, 873A, 874, 874A, 876, 876A, 877, 877A
882, 883, 884, 886, 887
913, 914, 916, 917, 946
1454, 1455, 1458, 1459
LF1454, LF1455, LF1458, LF1459
1503, 1507, 1508, 1509, 1512, 1513, 1516, 1517, 1518, 1519, 1526, 1527
LF1503, LF1507, LF1508, LF1509, LF1512, LF1513, LF1516, LF1517, LF1518, LF1519, LF1526, LF1527
LF1554, LF1559, LF1566, LF1567
1574, 1575, 1578, 1579
LF1574, LF1575, LF1578, LF1579
1613, 1614, 1615, 1618, 1619
LF1613, LF1614, LF1615, LF1618, LF1619
1703, 1704, 1705, 1707, 1708, 1709, 1713, 1716, 1717, 1718, 1719,
1764, 1765, 1768, 1769, 1782, 1783, 1784, 1786, 1787, 1788, 1789
LF1703, LF1704, LF1705, LF1707, LF1708, LF1709, LF1713, LF1716, LF1717, LF1718, LF1719,
LF1764, LF1765, LF1768, LF1769, LF1782, LF1783, LF1784, LF1786, LF1787, LF1788, LF1789
1773, 1776, 1777, 1778, 1779
LF1773, LF1776, LF1777, LF1778, LF1779
1823, 1824, 1825, 1826, 1827, 1828, 1829, 1847
LF1823, LF1824, LF1825, LF1826, LF1827, LF1828, LF1829, LF1847
1933, 1934, 1936, 1937, 1938, 1939, 1946, 1947
LF1902, LF1903, LF1904, LF1906, LF1907
LF1933, LF1934, LF1936, LF1937, LF1938, LF1939, LF1946, LF1947
18313, 18323, 18324, 18344, 18325, 18345, 18326, 18346
LF18313, LF18323, LF18324, LF18344, LF18325, LF18345, LF18326, LF18346
18424, 18444, 18425, 18445, 18455, 18426, 18446, 18456
LF18424, LF18444, LF18425, LF18445, LF18455, LF18426, LF18446, LF18456
18854, 18855, 18875, 18856, 18876, 18857, 18877
LF18854, LF18855, LF18875, LF18856, LF18876, LF18857, LF18877
15213, 15214, 15223, 15224, 15225, 15243, 15244, 15245, 15254, 15255, 15256, 15274, 15275, 15276
15313, 15323, 15324, 15344, 15354, 15325, 15345, 15355, 15375, 15385, 15356, 15376, 15386
LF15313, LF15323, LF15324, LF15344, LF15354, LF15325, LF15345, LF15355, LF15375, LF15385, LF15356, LF15376, LF15386
19155, 19156, 19175, 19176, 19185, 19186, 19195, 19196, 19197
LF19155, LF19156, LF19175, LF19176, LF19185, LF19186, LF19195, LF19196, LF19197
17114, 17115, 17124, 17125, 17126, 17144, 17145, 17146, 17154, 17155, 17156, 17174, 17175, 17176
18013, 18014, 18015, 18023, 18024, 18025, 18026, 18044, 18045, 18046, 18054, 18055, 18056, 18074, 18075, 18076
18114, 18115, 18124, 18125, 18126, 18144, 18145, 18146, 18154, 18155, 18156, 18174, 18175, 18176
13113, 13114, 13115, 13123, 13124, 13125, 13143, 13144, 13145
PIC18F 242, 248, 252, 258, 442, 448, 452, 458
1220, 1230, 1320, 1330
2220, 2221, 2320, 2321, 2331
2410, 2420, 2423, 2431, 2439, 2450, 2455, 2458, 2480
2510, 2515, 2520, 2523, 2525, 2539, 2550, 2553, 2580, 2585
2610, 2620, 2680, 2682, 2685
4220, 4221
4320, 4321, 4331
4410, 4420, 4423, 4431, 4439, 4450, 4455, 4480
4510, 4515, 4520, 4523, 4525, 4539, 4550, 4553, 4580, 4585
4610, 4620, 4680, 4682, 4685
6310, 6390, 6393
6410, 6490, 6493
6520, 6525, 6527, 6585
6620, 6621, 6622, 6627, 6628, 6680
6720, 6722, 6723
8310, 8390, 8393
8410, 8490, 8493
8520, 8525, 8527, 8585
8620, 8621, 8622, 8627, 8628, 8680
8720, 8722, 8723
PIC18J 24J10, 25J10, 44J10, 45J10
LF24J10, LF25J10, LF44J10, LF45J10
24J11, 25J11, 26J11, 44J11, 45J11, 46J11
LF24J11, LF25J11, LF26J11, LF44J11, LF45J11, LF46J11
26J13, 27J13, 46J13, 47J13
LF26J13, LF27J13, LF46J13, LF47J13
24J50, 25J50, 26J50, 44J50, 45J50, 46J50
LF24J50, LF25J50, LF26J50, LF44J50, LF45J50, LF46J50
26J53, 27J53, 46J53, 47J53
LF26J53, LF27J53, LF46J53, LF47J53
65J10, 66J10, 67J10, 85J10, 86J10, 87J10
63J11, 64J11, 65J11, 66J11, 67J11, 83J11, 85J11, 84J11, 86J11, 87J11
65J15, 66J15, 85J15, 86J15
66J16, 86J16
65J50, 66J50, 67J50, 85J50, 86J50, 87J50
66J55, 86J55
66J60, 67J60, 86J60, 87J60, 96J60, 97J60
66J65, 86J65, 96J65
86J72, 87J72
63J90, 64J90, 65J90, 66J90, 67J90, 83J90, 84J90, 85J90, 86J90, 87J90
66J93, 67J93, 86J93, 87J93
65J94, 66J94, 67J94, 85J94, 86J94, 87J94, 95J94, 96J94, 97J94
66J99, 87J99, 96J99
PIC18K 23K20, 24K20, 25K20, 26K20, 43K20, 44K20, 45K20, 46K20
13K22, 14K22, 23K22, 24K22, 25K22, 26K22, 43K22, 44K22, 45K22, 46K22
LF13K22, LF14K22, LF23K22, LF24K22, LF25K22, LF26K22, LF43K22, LF44K22, LF45K22, LF46K22
13K50, 14K50
LF13K50, LF14K50
24K50, 25K50, 26K50, 45K50, 46K50
LF24K50, LF25K50, LF26K50, LF45K50, LF46K50
25K80, 26K80, 45K80, 46K80, 65K80, 66K80
25LK80, 26LK80, 45LK80, 46LK80, 65LK80, 66LK80
65K22, 66K22, 67K22, 85K22, 86K22, 87K22
65K90, 66K90, 67K90, 85K90, 86K90, 87K90
24K40, 25K40, 26K40, 27K40, 45K40, 46K40, 47K40, 65K40, 66K40, 67K40
LF24K40, LF25K40, LF26K40, LF27K40, LF45K40, LF46K40, LF47K40, LF65K40, LF66K40, LF67K40
24K42, 25K42, 26K42, 27K42, 45K42, 46K42, 47K42, 55K42, 56K42, 57K42
LF24K42, LF25K42, LF26K42, LF27K42, LF45K42, LF46K42, LF47K42, LF55K42, LF56K42, LF57K42
25K83, 26K83
LF25K83, LF26K83
PIC18Q 24Q10, 25Q10, 26Q10, 27Q10, 45Q10, 46Q10, 47Q10
25Q43, 26Q43, 27Q43, 45Q43, 46Q43, 47Q43, 55Q43, 56Q43, 57Q43
26Q83, 27Q83, 46Q83, 47Q83, 56Q83, 57Q83
26Q84, 27Q84, 46Q84, 47Q84, 56Q84, 57Q84
04Q40, 05Q40, 06Q40, 14Q40, 15Q40, 16Q40
04Q41, 05Q41, 06Q41, 14Q41, 15Q41, 16Q41
24Q71, 25Q71, 26Q71, 44Q71, 45Q71, 46Q71, 54Q71, 55Q71, 56Q71
04Q20, 05Q20, 06Q20, 14Q20, 15Q20, 16Q20
主に未出荷製品で情報不足のためです。
Microchip Flash未対応リスト PIC10F なし 2023-03-13現在 PIC12F 519, 529, LF1552 2023-03-13現在 PIC16F 526, 527, 570, HV540(パラレル書き込み) 2024-02-08現在 PIC18F なし 2024-02-07現在
dsPIC対応リスト dsPIC30F 1010
2010, 2011, 2012, 2020, 2023
3010, 3011, 3012, 3013, 3014
4011, 4012, 4013
5011, 5013, 5015, 5016
6010, 6011, 6012, 6013, 6014, 6015, 6010A, 6011A, 6012A, 6013A, 6014A
dsPIC33FJ 06GS101, 06GS102, 06GS202
12GP201, 12GP202
12MC201, 12MC202
16GP304
16MC304
16GS402, 16GS404, 16GS502, 16GS504
32GP202, 32GP204, 32GP302, 32GP304
32MC202, 32MC204, 32MC302, 32MC304
32GS406, 32GS606, 32GS608, 32GS610
64GP202, 64GP204, 64GP206(A), 64GP306(A), 64GP310(A), 64GP706(A), 64GP708(A), 64GP710(A), 64GP802, 64GP804
64GS406, 64GS606, 64GS608, 64GS610
64MC202, 64MC204, 64MC506(A), 64MC508(A), 64MC510(A), 64MC706(A), 64MC710(A), 64MC802, 64MC804
128GP202, 128GP204, 128GP206(A), 128GP306(A), 128GP310(A), 128GP706(A), 128GP708(A), 128GP710(A), 128GP802, 128GP804
128MC202, 128MC204, 128MC506(A), 128MC510(A), 128MC706(A), 128MC708(A), 128MC710(A), 128MC802, 128MC804
256GP506, 256GP510, 256GP710, 256MC510, 256MC710
256GP506A, 256GP510A, 256GP710A, 256MC510A, 256MC710A
06GS001, 06GS101A, 06GS102A, 06GS202A, 09GS302
16GP101, 16GP102, 16MC101, 16MC102
32GP101, 32GP102, 32GP104, 32MC101, 32MC102, 32MC104
dsPIC33EP 32GP502, 32GP503, 32GP504
32MC202, 32MC203, 32MC204, 32MC502, 32MC503, 32MC504
64GP502, 64GP503, 64GP504, 64GP506
64MC202, 64MC203, 64MC204, 64MC206, 64MC502, 64MC503, 64MC504, 64MC506
128GP502, 128GP504, 128GP506
128MC202 ,128MC204, 128MC206, 128MC502, 128MC504, 128MC506
256GP502, 256GP504, 256GP506
256MC202 ,256MC204, 256MC206, 256MC502, 256MC504, 256MC506
512GP502, 512GP504, 512GP506
512MC202 ,512MC204, 512MC206, 512MC502, 512MC504, 512MC506
256MU806, 256MU810, 256MU814
512GP806, 512MC806, 512MU810, 512MU814
PIC24対応リスト PIC24FJ F04KA200, F04KA201, F08KA101, F08KA102, F16KA101, F16KA102
F16KA301, F16KA302, F16KA304, F32KA301, F32KA302, F32KA304
FV16KA301, FV16KA302, FV16KA304, FV32KA301, FV32KA302, FV32KA304
F04KL100, F04KL101, F08KL200, F08KL201, F08KL301, F08KL302, F08KL401, F08KL402, F16KL401, F16KL402
F08KM101, F08KM102, F08KM202, F08KM204, F16KM102, F16KM104, F16KM202, F16KM204
16GA002, 16GA004
32GA002, 32GA004
32GA102, 32GA104
48GA002, 48GA004
64GA002, 64GA004, 64GA006, 64GA008, 64GA010
96GA006, 96GA008, 96GA010
128GA006, 128GA008 ,128GA010
64GA106, 64GA108, 64GA110
128GA106, 128GA108 ,128GA110
192GA106, 192GA108 ,192GA110
256GA106, 256GA108 ,256GA110
64GB106, 64GB108 ,64GB110
128GB106, 128GB108 ,128GB110
192GB106, 192GB108 ,192GB110
256GB106, 256GB108 ,256GB110
32GA102, 32GA104
32GB002, 32GB004
64GA102, 64GA104
64GB002, 64GB004
128DA106, 128DA110, 128DA206, 128DA210
256DA106, 256DA110, 256DA206, 256DA210
128GB206, 128GB210
256GB206, 256GB210
64GA306, 64GA308, 64GA310
128GA306, 128GA308, 128GA310
64GC006, 64GC008, 64GC010
128GC006, 128GC008, 128GC010
64GA202, 64GA204
64GB202, 64GB204
128GA202, 128GA204
128GB202, 128GB204
16MC101, 16MC102
32MC101, 32MC102, 32MC104
PIC24HJ 12GP201, 12GP202
16GA002, 16GA004, 16GP304
32GP202, 32GP204, 32GP302, 32GP304
64GP202, 64GP204, 64GP206(A), 64GP210(A), 64GP502, 64GP504, 64GP506(A), 64GP510(A)
128GP202, 128GP204, 128GP206(A), 128GP210(A) ,128GP306(A), 128GP310(A), 128GP502, 128GP504, 128GP506(A), 128GP510(A)
256GP206, 256GP210, 256GP610
256GP206A, 256GP210A, 256GP610A
PIC24EP 32GP202, 32GP203, 32GP204
32MC202, 32MC203, 32MC204
64GP202, 64GP203, 64GP204, 64GP206
64MC202, 64MC203, 64MC204, 64MC206
128GP202, 128GP204, 128GP206
128MC202 ,128MC204, 128MC206
256GP202, 256GP204, 256GP206
256MC202 ,256MC204, 256MC206
512GP202, 512GP204, 512GP206
512MC202 ,512MC204, 512MC206
256GU810, 256GU814
512GP806, 512GU810, 512GU814
主に未出荷製品で情報不足のためです。
dsPIC未対応リスト PIC24F GX4xx,GA6xx,GX7xx 2018-03-13現在 PIC24H なし 2018-03-13現在 PIC24E なし 2018-03-13現在 dsPIC30F なし 2018-03-13現在 dsPIC33F なし 2018-03-13現在 dsPIC33CH xxMP 2019-01-15現在 dsPIC33CK xxMP 2019-01-15現在 dsPIC33EP xxGM,xxGS 2018-03-13現在 dsPIC33EV xxGM 2018-03-13現在
- Classicタイプの 16C, 18C には対応していません。今後も対応予定はありません。
- Atmelにも対応(ATtiny,ATmegaシリーズ)
Atmel AVR 対応リスト AT90S 1200, 1200A
2313, 2323, 2333, 2343
4414, 4433, 4434
8515, 8535ATtiny 12, 13, 13A, 15
22, 24, 24A, 25, 26
43U, 44, 44A, 45, 48
84, 84A, 85, 87, 88, 167
261, 261A, 461, 461A, 861, 861A
2313, 2313A, 4313
828
441, 841
1634ATmega 8, 8A, 16, 16A, 32, 32A, 48, 48A, 48P, 48PA, 64, 64A, 88, 88A, 88P, 88PA
103, 128, 128A, 161, 162, 163
164A, 164P, 164PA, 165, 165A, 165P, 165PA, 168, 168A, 168P, 168PA, 169, 169A, 169P, 169PA
323, 324A, 324P, 324PA, 325, 325A, 325P, 325PA, 328, 328P, 329, 329A, 329P, 329PA
640, 644, 644A, 644P, 644PA, 645, 645A, 645P, 649, 649A, 649P
1280, 1281, 1284, 1284P
2560, 2561
3250, 3250A, 3250P, 3290, 3290A, 3290P, 3290PA
6450, 6450A, 6450P, 6490, 6490A, 6490P
8515, 8535
8U2, 16U2, 32U2
16U4, 32U4
16M1, 32M1, 64M1, 32C1, 64C1
Atmel AVR 未対応リスト
(2023-03-13現在)AT90C8534 パラレル書き込みのため ATtiny4 TPI書き込みのため ATtiny5 TPI書き込みのため ATtiny9 TPI書き込みのため ATtiny10 TPI書き込みのため ATtiny11 HVSP書き込みのため ATtiny19 リリースされなかったため ATtiny20 TPI書き込みのため ATtiny28 HVPP書き込みのため ATtiny40 TPI書き込みのため ATmega83 リリースされなかったため ATmega85 リリースされなかったため ATmega164 リリースされなかったため ATmega324 リリースされなかったため ATmega406 HVPP書き込みのため ATmega603 リリースされなかったため AT90CAN 未定 AT90PWM 未定 AT90USB 未定 ATtiny102,104 TPI書き込みのため
- 末尾のA, P, PAは主に省電力対応で書き込み方法は同じです。
- 末尾のA, P, PAの違いによりデバイスIDが同じことも異なることもあります。
UPDIの AVR 対応リスト tinyAVR-0 202, 204, 402, 404, 406, 804, 806, 807, 1604, 1606, 1607 tinyAVR-1 212, 214, 412, 414, 416, 417, 814, 816, 817, 1614, 1616, 1617, 3216, 3217 tinyAVR-2 424, 426, 427, 824, 826, 827, 1624, 1626, 1627, 3224, 3226, 3227 megaAVR-0 808, 809, 1608, 1609, 3208, 3209, 4808, 4809 AVR-DA 32DA28, 32DA32, 32DA48, 64DA28, 64DA32, 64DA48, 64DA64, 128DA28, 128DA32, 128DA48, 128DA64 AVR-DB 32DB28, 32DB32, 32DB48, 64DB28, 64DB32, 64DB48, 64DB64, 128DB28, 128DB32, 128DB48, 128DB64 AVR-DD 16DD14, 16DD20, 16DD28, 16DD32, 32DD14, 32DD20, 32DD28, 32DD32, 64DD14, 64DD20, 64DD28, 64DD32 AVR-EA 8EA2, 8EA32, 16EA28, 16EA32, 16EA48, 32EA28, 32EA32, 32EA48, 64EA28, 64EA32, 64EA48 AVR-EB 16EB14, 16EB20, 16EB28, 16EB32 AVR-DU 16DU14, 16DU20, 16DU28, 16DU32, 32DU14, 32DU20, 32DU28, 32DU32, 64DU28, 64DU32
UPDIの AVR 未対応リスト
(2024-10-13現在)ATxmega PDI書き込みのため AVR32EB 未発売のため情報不足
PIC32ファミリ,SAMファミリに対応しない理由
- UPDIとはUnified Program and Debug Interfaceで新たなAVRの書き込み方法です。
- 個人で使用することはないからです(企業用)。
- MPLAB X IDE + MPLAB Code Configurator(Harmony)での開発は大変です。
- このクラスを個人で使用するなら Raspberry Pi Pico/Pico W が圧倒的に有利です。
- Dual Core CPU 125MHz, Flash 2MB, \770/\1200
- しかも安くて便利。USB/Wi-Fi/Bluetoothを使えます。
- MicroPythonやPico C SDKで簡単に開発できます。
- 専用の書き込みツールを必要としません(USBストレージ)。
- やることを決めるのは簡単ですが、やらないことを決めるのは難しいです。
- そして「やらない選択」は重要です。時間は有限です。
USB機能を標準搭載しているOSが必要です。動作確認は 11 で行っています。
- Windows XP
- Windows Vista
- Windows 7
- Windows 8
- Windows 8.1
- Windows 10
- Windows 11
PICerFTとターゲットデバイスをICSP接続します。USB端子はミニBです。AE-UM232R上のピンでターゲット用電源(5V/3.3V)を切り替えます。
あえて表面実装部品を使用していないため、製作が容易です。
専用アダプタ(非売品)
- PICerFTモジュール・サイズ(40mm x 50mm)
- PICkit 2 のサイズが(40mm x 90mm)ですので、ほぼ半分のサイズです。
PIC用アダプタ(80mm x 100mm)
- ICSPの接続間違いを多く見かけます。
- こちらでは多くのデバイスの動作確認のために、専用アダプタを使っています。
- ゼロプレッシャー・ソケットを使ってもいいのですが、結局毎回配線を切り替えなければなりません。
- 面倒であり、初歩的な間違いを防ぐためにも、すべてのDIPタイプを用意しました。
- こうすれば、DIPをセットする場所さえ間違わなければ、確実にICSP接続できます。
- 難点は新しいDIPパッケージが出てきたとき対応できないことです。
- 実際、14ピンパッケージ、20ピンパッケージが登場したとき、作り直しました。
値 数 備考 8P 2 IC1,IC2 8ピンソケット(300mil) 14P 2 IC3,IC10 14ピンソケット(300mil) 18P 1 IC4 18ピンソケット(300mil) 20P 2 IC5 IC11 20ピンソケット(300mil) 28P 1 IC6 28ピンソケット(300mil) 28PW 1 IC7 28ピンソケット(600mil) 40PW 2 IC8,IC9 40ピンソケット(600mil) 3mm 1 LED1 赤 1k 1 R1 カーボン皮膜抵抗(小型1/6W) 10k 4 R2,R3,R4,R5 カーボン皮膜抵抗(小型1/6W) 6pin 2 J1,J2 ピンヘッダー
dsPIC用アダプタ(80mm x 100mm)
値 数 備考 14P 1 IC8 14ピンソケット(300mil) 18P 2 IC1,IC5 18ピンソケット(300mil) 20P 1 IC6 20ピンソケット(300mil) 28P 2 IC2,IC7 28ピンソケット(300mil) 40PW 2 IC3,IC4 40ピンソケット(600mil) 3mm 1 LED1 赤 1k 1 R1 カーボン皮膜抵抗(小型1/6W) 10uF 1 C1 積層セラミックコンデンサ 6pin 2 J1,J2 ピンヘッダー 3pin 1 J3 ピンヘッダー 2pin 1 ジャンパーピン
ジャンパー VPP dsPIC30用設定 MCLR dsPIC30 SMPS,dsPIC33,PIC24用設定
Atmel用アダプタ(80mm x 100mm、ISP)
値 数 備考 8P 1 IC1 8ピンソケット(300mil) 14P 1 IC2 14ピンソケット(300mil) 20P 2 IC3,IC4 20ピンソケット(300mil) 28P 1 IC5 28ピンソケット(300mil) 40PW 2 IC6,IC7 40ピンソケット(600mil) 3mm 1 LED1 赤 1k 1 R1 カーボン皮膜抵抗(小型1/6W) 7pin 1 J1 ピンヘッダー 6pin 1 J2 ピンヘッダー
AVR用アダプタ(80mm x 100mm、UPDI)
値 数 備考 8P 1 IC1 8ピンソケット(300mil) 14P 2 IC2,IC6 14ピンソケット(300mil) 20P 2 IC3,IC7 20ピンソケット(300mil) 28P 1 IC4 28ピンソケット(300mil) 40PW 1 IC5 40ピンソケット(600mil) 3mm 1 LED1 赤 1k 1 R1 カーボン皮膜抵抗(小型1/6W)
対象デバイスとの具体的な接続方法はICSP接続方法をご覧ください。
※PGC=ICSPCLK、PGD=ICSPDATと読み替えてください。
I/O PIC用ICSP O VPP O VDD - VSS I/O PGD O PGC O MCLR
I/O ATMEL用ISP O RST O CLK - GND O VCC O SCK I MISO O MOSI
I/O AVR用UPDI - N/A - N/A - GND O VDD - N/A I/O UPDI - N/A
I/O UPDI HVA1 O VDD I/O UPDI - GND
I/O UPDI HVA2 O RST O VDD I/O UPDI - GND
ATMEL用ISPのCLKはXTAL1用のクロックです。供給されているなら接続不要です。
J1 J1 Vpp電圧切り替え オープン 12.5V ショート 9.0V
JP1 JP1 Vdd電圧切り替え 1-2間ショート 3.3V 2-3間ショート 5.0V(VCC)
JP2 JP2 デフォルトはショート ショート USBバスパワー供給 オープン 外部(VCC)パワー供給
参考
- Vpp電圧(12.5V/9V)の選択を確認してください。誤った設定はデバイスを破壊する恐れがあります。
- Vdd電圧(5V/3.3V)の選択を確認してください。誤った設定はデバイスを破壊する恐れがあります。
- ICSPの接続を確認してください。誤った接続はデバイスを破壊する恐れがあります。
- ICSP端子と他の回路を兼用しないでください。それをICSP接続とは呼びません。
- 端子の初期電圧
- PICerFTというよりFT232Rの初期動作です。
- Connectで端子電圧の初期化を行います。
- 初期電圧があっても問題はありません。
PIC用ICSP Connect前 Connect後 VPP 12/9V 0V VDD 0V 0V VSS - - PGD 5/3.3V 0V PGC 5/3.3V 0V MCLR 0.8V 0V
ATMEL用ISP Connect前 Connect後 RST 0.8V 0V CLK (6MHz) (6MHz) GND - - VCC 0V 0V SCK 5/3.3V 0V MISO 5/3.3V 0V MOSI 4.5/2.8V 0V
Optionの解説
- FT232Rモジュールを選択し、接続(Connect)します。複数のFT232RモジュールがPCに接続されていることを想定しています。
FT232Rモジュールに振られたFixed Serial Numberで識別されます。複数のFT232Rモジュールを自動的に検出します。
検出しない場合、ソフトウェアを再起動してください。(プラグアンドプレイに対応したため、再起動不要になりました。約5秒で認識します。)
- メニューの一覧です。
- LFタイプ用設定(Wide Vdd)
- 書き込み前にチップ消去(Erase before writing)
- 書き込み後に照合(Verify after writing)
- 拡張ICSP(Enhanced ICSP for dsPIC)
- 接続(Connect)すると操作可能になります。(latency=1ms以外の場合はFT232Rドライバを設定してください。)
- 書き込み方式を選択します。
- 書き込み方式がわからない場合は選択後にデバイスのリストを確認します。
- どの書き込み方式を選択すればよいかわかります。
- ※Detectは選択した書き込み方式でのみ行います。
- ※リストにないデバイスを検出しません。
- "NoDeviceId ICSP"
- "16F ICSP"
- "16F ICSP(LSb first)"
- "16F ICSP(MSb first)"
- "18F ICSP(LSb first)"
- "18F ICSP(MSb first)"
- "dsPIC30"
- "dsPIC33F/PIC24F/PIC24H"
- "dsPIC33E/PIC24E"
- "AVR ISP"
- "AVR UPDI"
- "AVR UPDI HVA"
- デバイスを選択するか自動検出(Detect)します。
- チップ消去(Erase)
- ブランクチェック(Check)
- 書き込み(Write)、ファイル選択ウィンドウで書き込むHEXファイルを選択します。
- 読み込み(Read)、チップの内容を読み出しファイルにします。
- ドラッグアンドドロップ機能
書き込み可能な状態で、HEXファイルをドロップすると書き込みを開始します。
使い方のまとめ
- Wide Vdd(LF type)
デフォルトはチェックなしです。
チェックすると低電圧書き込みを行います。
- Erase before writing
デフォルトはチェックありです。
チェックすると書き込み前に消去します。
チェックを外すと書き込み前に消去しません。つまり上書きします。
例えば、EEPROMだけ追加書き込みしたいときに使います。
上書きは照合時にエラーとなるため、照合しないようにします。
- Verify after writing
デフォルトはチェックありです。
チェックすると書き込み後に照合します。
- Enhanced ICSP for dsPIC
デフォルトはチェックありです。
標準書き込みではなく、拡張書き込みをします。
- Force to erase Executive
デフォルトはチェックなしです。
強制的にExecutiveを消去します。
- Revを選択する
- 接続(Connect)する
- 書き込み方式を選択する
- 自動検出(Detect)する
- 書き込む(Write)
素直になろう、失敗経験は進歩の糧
- 配線の確認
- PICerFTの配線間違いがないか確認してください。
- ICSPの接続間違いがないか確認してください。
- VPPとMCLRのどちらを接続しましたか?その接続は正しいですか?
- 思い込みを捨てて、何度も確認してください。
- 電源電圧VDDの確認
- AE-UM232R上のJP1で設定します。
- PICのデータシートでVDD電圧範囲を確認し、3.3Vか5Vを選択しましたか?
- LFタイプは3.3Vしか選択できません。
- どちらも選択できる場合、5Vを選択してください。
- VDD=5Vにしないと消去できない場合があります。
- ※PICは電源電圧不足になるとフラッシュメモリ(NVM)を消去できません。
- ※3.3Vでは消去できないことがあります。
- 書き込み電圧VPPの確認
- PICerFT上のJ1で設定します。初期設定はショートです。
- PICのデータシートでVPP電圧範囲を確認し、9Vか12Vを選択しましたか?
- ※ICSPでMCLRを接続しているなら設定不要です。
- ※FT232Rからクロック供給しないとVPP電圧を発生しません。
- ※この設定はPICerFTが自動でFT232R内部のEEPROMを書き換えて行います。
- ※一度PICerFTで[Connect]しないと行われません。
- ※USBを再接続すると設定が反映され、クロック供給を開始します。
- コツ
- Vpp=9.0を初期設定(デフォルト)にしてください。
- 12.5Vを必要とする場合であってもVdd+3.5以上あれば動作するからです。
- 一部(16F84A,16F5x,16F7xなど)は12V以上を必要とします。
- FTDIの動作確認
- FTDIのドライバをインストールしましたか?
- FTDIのシリアル番号を認識したら[Connect]を実行します。
- FT232Rの偽物を使っていると"Reconnect USB cable!"を繰り返し、これ以上先に進めません。
- ※偽物はFT232R内部のEEPROMを書き換えられないためです。
- ※嫌がらせをしているわけではありません。
- ※FT232Rの内部設定を行わないと動作しないからです。
- ※[Connect]時にFT232Rの内部設定を確認します。
- PICの検出確認
- [Detect]を実行し、PICを検出しましたか?
- 書き込み方式は正しいですか?
- 検出できない場合、配線(ICSP接続を含む)を確認してください。
- PGCやPGDに余計な回路を接続しないでください。信号が邪魔されます。
- 原則としてICSP端子(PGCとPGD)を回路と兼用してはいけません。ICSPの基本です。
- 勘違いが多いのですが、ICSPとは回路の兼用ではありません。兼用したいなら考慮した設計が必要です。
- VPPに12Vがかかります。何も考えずに回路を兼用していると12Vで回路を壊します。
- ※ICSP:In Circuit Serial Programming とは基板に組み込んだままプログラムを書き込む方法。
- 指定以外の部品を使っていたら、指定を守ってください。
- 検出が不安定な場合、トランジスタのEとCを取り違えている可能性もあります。
- ジャンパーピンの接触不良の可能性もあります。
- ※電源VDDに大容量のコンデンサを接続している可能性もあります。
- ※VDDの立ち上がり時間が長くなり、書き込みモードに入れません。
- 動かない可能性をすべて排除してください。
- PICの消去確認
- [Erase]を実行し、[Check]を実行します。
- エラーなら正しく消去できないため、正しく書き込みできません。
- VDD=5Vにしないと消去できない場合があります。
- USB電源電圧が低い可能性もあります。
実に興味深い
- (まずは)素直に従いましょう。改造しないことです。
- もっと安く済まそうと思って、FT232Rの偽物をつかまされたりします。
- 余計に「時間」「労力」「お金」を費やします。
- はじめから指示に従っていれば、早く安く済みます。悩まされず余計な苦労もしません。
- 余計な苦労をしなくていいように、先人が失敗をしているのです。
- 先人の失敗経験は「失敗するから気をつけろ」との教訓です。
- わざわざ同じ落とし穴にはまる必要はありません。
- ※同じ失敗をしてみるとよいでしょう。先人の苦労がわかるでしょう。
- ※失敗とは成功するための問題を排除する作業です。
- ※多くの失敗を経験しているから成功します。
- ※はじめから成功する人はいません。
- 我々の知識とは先人の知恵です。苦労しないための知恵です。
- 同じ失敗を繰り返していると先に進めません。進歩がありません。
- 先人の失敗を知り、それを糧として未来を築きましょう。
ちょっと補足
- みなさん何か問題が起こると鬼の首を取ったかのように問い合わせします。
- 情報発信できるツールを手に入れたからでしょう。
- わーわーと騒ぎ立てます。落ち着いてください。情報発信の前に確認しましょう。
- 慌てて、焦って、問合せしないでください。問題にぶつかったら深呼吸しましょう。
- 何かとんでもない「基本中の基本」を忘れています。
- 慌て者の特徴として、偽物をつかまされたり、詐欺に引っかかったり、初歩的なミスをします。
- 配線間違いなんて基本中の基本です。自分勝手に改造します。そりゃ動くわけありません。
- 改造は基本に忠実に従い、動作確認してから行うものです。確認もしないで初めから改造したら動くわけありません。
- 慌ててネット詐欺に引っ掛かります。慌ててネット上のウソに騙され、判断を誤ります。考えを誘導されます。
- 不思議なことに自ら失敗につき進みます。落とし穴があると進んで落とし穴にはまります。
- まるで失敗に吸い込まれるように。ネット詐欺があると進んで詐欺に引っ掛かります。
- ダメと言われると余計にやりたくなります。不思議ですよね。
- 取り返しのつかない失敗はだめですが、大した影響のない失敗なら(安全を確保した上で)あえて失敗を経験するのもありです。
- 人間ですから間違います。それを前提にしないから、間違うはずがないという思い込みが生まれます。
- そして自分ではなく他人の責任にします。これを「思い上がり」といいます。
- 人間とは都合の良い生き物です。
- この「思い上がり」や「自己中心的な考え」を抑制しないと失敗します。
- まずは自分にできることを先にやりましょう。
- 他人の責任にする前に自分の責任を確認しましょう。
- ※まず相手に従うのは、相手の責任を追及するためです。従ったのに失敗したらそれは相手の責任です。
- ※責任の分界点を明確にするためです。
- 経験上、自分に問題があることが多いです。自分側に6割の非があると思っていたほうがよいです。
- 相手がバグっているのではなく、自分がバグっています。
- 自分は絶対に間違っていないと思い込まないことです。
- 相手を指摘するなら、慎重に確認しましょう。自分が間違っていたらやり込められます。ただでは済まないかもしれません。
- アプリがバグっていると指摘しますが、自分の「思い込み」や「勘違い」が多いです。
- 失敗を経験し、二度と同じ失敗を繰り返さないことで進歩します。
- 同じ失敗を繰り返すのは愚か者です。
- 技術を学ぶ以前に、人間を鍛えましょう。
初心者以前の話
- 自分は他人のマネをしたくないと思うのは自由です。
- ただしその「自由」には「責任」を伴います。自分で責任を取ってください。
- 勝手に改造するのは構いませんが、当方は一切関知しません。
- 文句を言わないでください。当方に責任転嫁しないでください。問い合わせしないでください。
- 他人に従いたくないのは自由です。
- だったら他人に頼らず、自分でやればいいだけのことです。他人のマネをしないことです。
- 会社員とは会社に従うことです。従業員です。従って作業する人です。従うのがいやなら会社員になるべきではありません。
- 他人に頼るなら、まず従うことです。
- ただし、従うことばかり覚えて、「指示待ちの人」が多いです。世渡り上手とも言います。
- 高学歴な人ほどこの傾向が強いです。従って勉強ばかりしてきたからです。
- 素直に従ってきた一面は評価します。ただそこで終わる人が多いです。燃え尽きてしまいます。
- 今後AI技術が発展し、指示待ちの人は置き換えられます。
- ここで二極化します。どちらが良いというわけではなくどちらも必要な人材です。
- (1)創造力を発揮する人。
- (2)創造力を発揮しない(してはいけない)人。
- 成長する人はさらに一歩進みます。人生、常に学習です。
- はじめは理由もわからず従いますが、理由を探ります。
- そして理由をわかった上で従います。
- 理由がわかると改善改良の提案ができます。創造力を発揮します。
- 一方で創造力を発揮してはいけない分野(仕事)もあります。
- 決められたことを決められた通りにこなさなければなりません。会社では経理部です。あるいは工場の作業員や公務員です。
- 創造力を発揮すると違法になったり、不良品の製造になるため、してはいけません。
- 経理作業は今後電子化され、ますます機械化されます。
- 裁判官も法律に従って判断しなければならず、創造力を発揮してはいけない人です。
- だから法律をAI学習すると裁判官も不要になります。
- 成長する人は素直でまず「従います」。さらに理由を知ったうえで「提案型の人」になります。
- 理由もわからず従うだけなら、機械に置き換えられます。
- そして基本から積み上げてきた人は余裕があり、精神的にも強いです。
- 基本を知らないと、とんでもない勘違いをします。思い込みをします。
- 時と場合をわきまえ、創造力を使い分けます。
- 初めから従いもせず、一方的な反対や要求する人は単なる「型破りな人」で「無謀な挑戦者」です。
- そこに「理由」も「根拠」もありません。無法者です。
- ここを訪れる方は初心者が多いです。
- これからマイコン開発を始めようとする方が集まります。
- それは想定内でした。ところが想定外のことが起こっています。
- それは初心者以前の人としての常識です。
- 技術以前の話をしないとなりません。
- 技術者としての適正を審査しなければなりません。
- 技術を時に悪用する人がいます。
- 悪用する人に技術を教えてはいけません。
- 教えることが正しいことなのか自問自答しています。
- 努力せずに答えだけを得ようとします。ネット検索で解決しようとします。
- 便利や効率を求めることが必ずしもよいとは限りません。
- 安易な考えに陥ります。楽ばかりしようとします。
- 脳が退化します。体が退化します。
- 人は歩かないと筋肉が衰えます。重力が筋肉を鍛えます。
- 考えをやめた人と考え続けた人に二極化します。
- 人間が人間たる所以はなんなのか、考える必要があります。
- データシートの入手方法
- PIC16F18313を例にします。
- https://www.microchip.com/en-us/product/pic16f18313
- Documentationにデータシート(pdf)があります。
- 型番を変更するだけです。例、pic16f18313からATmega4809に変更します。
- ※技術者には情報収集能力も求められます。
- ※自分で公式の情報を収集できなければなりません。
- ※噂話や嘘に惑わされてはいけません。
- 書き込み電圧VPPと電源電圧VDDの確認方法
- データシートの Electrical Specifications 章で確認します。
- 表の中を探して下さい。
- VDD Min=2.5V Max=5.5V(FOSC>16MHz)
- VIHH Min=8V Max=9V
- ※別のデータシート、Programming Specificationでも確認できます。
- ICSP端子の確認方法
- データシートのPin Diagramsで確認します。
- VPPがあれば使用します。なければMCLRを使用します。
- ※正確には高電圧書き込み方式ならVPP(12V/9V)を使用し、低電圧書き込み方式ならMCLR(5V/3.3V)を使用します。
- ※PGC=ICSPCLK、PGD=ICSPDATと読み替えてください。Microchipがあとになって名称変更しました。
- ICSP接続方法
- 別のデータシート、Programming Specifications(pdf)で確認します。
- AVRはデータシートのProgramming 章で確認します。
ATMELの書き込みについて補足します。
- ATMEL用EEPROMについて
- ATMELのデータ領域は.eepファイルに保存されます。
- そのため、書き込む.hexファイルと同じディレクトリに .eepファイルがあれば同時に書き込みます。なければ書き込みません。
- ATMEL用フューズについて
test.cfgファイルの例(test.hex用フューズ指定)
- ATMEL用のフューズ情報は.hexファイルに保存されていません。
- そのため独自仕様として、.cfgファイル(テキスト形式)を用意することとしました。
- 書き込む.hexファイルと同じディレクトリに .cfgファイルがあれば同時に設定します。なければ設定しません。
- フューズのみを設定できませんが、同一の.hexファイルを上書きすればそれと同様の効果があります(あるいは空の.hexファイルを用意)。
- メモ帳でこのファイル(同一ファイル名.cfg)に記述し、フューズを指定します。
- 指定できる内容はATMELの種類によって異なります。詳しくはサンプルファイル(atmel.cfg)をご覧ください。
- ※これには理由があります。
- ※PICと異なり、ATMELのフューズを書き換える機会は稀です。初期設定のまま使うことが多いです。
- ※そのためXC8はコンパイル時にフューズ情報をあえて保存しないようにしています。
- ※XC8はコンパイルオプションでフューズ情報を省略しています。
- ※フューズ情報をあえてhexファイルに出力しないようにしています。
- ※PICerFTもhexファイルにフューズ情報があっても書き込みません。想定していません。
LOCK=3 RCEN=0
- セミコロン ";" 以降はコメントとみなし読み飛ばします。
- 一行に1つの LOCK あるいは FUSE を記述します。
- 複数指定する場合、複数行にわけて記述します。順序は問いません。
- ATMELのLOCKはチップ消去すると初期化されます。
- ATMELのフューズはチップ消去しても初期化されません。 そのためフューズの中には一旦設定してしまうと PICerFT で書き込みできなくなるものがあります。 一度この状態に陥ると PICerFT で復旧させることができません。 パラレル方式の書き込みで復旧させることができます。
- ご注意:RSTDISBL=0 を設定すると PICerFT で書き込みできなくなります。
- ご注意:PLLCK=0 を設定すると PICerFT で書き込みできなくなります。
- PICerFT(Low Voltageシリアル方式)はSPIENを変更できません。
- 自動検出(Detect)でフューズ情報を確認できます。
UPDI対応について説明します。UPDIに対応した理由
- ハードウェアの変更(rev.1からrev.2)
- UPDI対応のためにピンを変更します。
- (9)DCD#から(2)DTR#に変更します。
- 写真は修正例です。
- ソフトウェアの変更
- PICerFT 7.4からUPDI対応です。
- 「書き込み方式」から "AVR UPDI" を選択します。
- ソフトウェアとハードウェアの組み合わせ
PICerFT 7.4未満 UPDI非対応ハードウェア PICerFT 7.4以降 UPDI対応ハードウェア、UPDI非対応ハードウェア
- PICerFT 7.4以降はUPDI非対応ハードウェアでも動作します。
- 単にUPDI書き込みできないだけです。
- UPDIを利用しないなら、無理してハードウェアを修正する必要はありません。
- UPDIの接続
- 対象デバイスとの具体的な接続方法はICSP接続方法のAVRのUPDI概要をご覧ください。
- EEPROM書き込み
- *.hex と同じ名前の*.eepファイルがあれば書き込みます。ファイルがなければ書き込みません。
- FUSE設定
- 設定できる FUSE は avr.cfg ファイル(テキスト)を参照ください。
- *.hex と同じ名前にコピーします。
- *.cfgファイルがあれば、FUSE を設定します。ファイルがなければ設定しません。
- LOCKBITの注意点
- LOCKBITを設定すると Detect もできなくなります。
- Erase でLOCKBITを解除できます。
- このとき FUSE も消去されることもあるため、FUSEの再設定が必要かもしれません。
- ATtinyはGPIO/UPDI/RESET端子を共有しています。デフォルトはUPDIです。 UPDI以外(RSTPINCFG=1以外)に一旦設定してしまうと UPDI方式で書き込みできなくなります。 UPDI HVA方式の書き込みで復旧させることができます。
- 現状ではATmega4809しかDIPタイプがありません。
- しかし今後発売される AVR はUPDIである可能性が高いです。
- 先行して対応することで今後の対応を楽にするためです。
- ただし、すでにUPDIにもバージョンが存在しており、すんなり対応できる保証はありません。
- しばらく紆余曲折する可能性があります。
- UPDIは半二重UARTであり、方法としては賢い選択です。
- UPDI専用ピンではなく、通常のUARTと機能を兼用すれば、ピン数を減らすことなく合理的です。
- ISPなどという特殊な機能をチップに埋め込む必要もなくなり、開発も容易になります。
- もちろん偶発的にプログラムを書き換えられないように、専用のおまじないをします。
- こうした意味でISP方式は衰退していくかもしれません。
- 発売されたAVR-xxはUPDI方式でした。
- しかも従来のUPDI方式ではありません。新たなUPDI方式です。書き込みコマンドが変更されています。
- 例によってデータシートの解説のままでは書き込みできません。解説が不十分です。
- いくつものおまじないを追加することで対応しました。
- 実際に試してみないと正しく動作するかわかりません。
UPDI HVA対応について説明します。
- ハードウェアの変更(rev.2からrev.3)
PICerFT rev2からの変更点
- 要望の多いUPDI High Voltage Activationです。
- ピン数の少ないAVRではGPIO/UPDI/RESET端子を共有しています。
- そのため、UPDIをGPIOとして使用するケースがあります。
- ところが一旦、GPIOとして設定するとUPDIとして機能しないため、書き込み不能に陥ります。
- 特別にUPDIを有効にする方法がUPDI HVA方式です。
- 2種類あります。
- tinyAVR-0/tinyAVR-1/tinyAVR-2用(12V)
- AVR-DD/AVR-EA/AVR-EB用(8.2V)※2024-08-07暫定資料から製品仕様になり電圧が判明(Vdd+2から8.5V)。
- なおmegaAVR-0/AVR-DA/AVR-DBにUPDI HVA方式はありません。高電圧を適用すると壊れます。
- 12V/8.2Vを必要とする特殊な方式です。
- 12V/8.2Vのパルスを規定したタイミングで与える必要があります。
- UPDI HVA対応した専用回路です。
- 通常のPICerFTの回路と異なります。
- UPDI/RESET端子は内蔵プルアップとして機能するため、ノイズに弱いです。
- UPDI/RESETに余計な回路を接続しないでください。
- ※FUSEの書き換えに失敗するとDetectできなくなります。
- ※Eraseを試してください。可能ならFUSEを初期値に戻します。
- ※なお、UPDI端子を変更するとその直後からUPDI方式で残りのFUSEを書き換えできずエラーを発生します。
- ※UPDI端子の変更を伴うときはUPDI HVA方式を使用してください。
- D1,D2,D3はショットキーダイオード(SD103A,BAT43)が望ましいです。
- tinyAVR-0/tinyAVR-1/tinyAVR-2 AVR-DD/AVR-EA/AVR-EB VPP電圧 Z1=12V Z2=8.2V VPP接続 UPDI RESET RST接続 RTS# RTS# R7 位置変更 位置変更 R8 なし プルアップ D2/D3 追加 追加
UPDI HVA tinyAVR専用(表面=部品面)
UPDI HVA AVR専用(表面=部品面)
- ソフトウェアの変更
- ※Connect実行後にUPDI接続することが望ましいです。
- ※Connect実行前はFTDIの初期状態でVPP電圧を出力します。高電圧を出力したままUPDI接続するのは好ましくありません。
- PICerFT 8.0からUPDI HVA対応です。
- 「書き込み方式」選択を追加しました。
- "AVR UPDI HVA"を選択してください。
- 検出は選択した「書き込み方式」で行います。
- ※この回路は"AVR UPDI"としても使用できます。
- その他の条件
- UPDIと同じです。
Ver 7.6bからログ機能を追加しました。
- $PIClog$.txtファイルに記録します。
- 連続したエラーが発生すると何をきっかけにしたのかわからないためです。
- ログを確認すれば、何をきっかけにしたのかわかります。
- 起動してからどんな操作をしたのか記録します。
- 再起動すると記録は失われます。初期化します。
- ファイルが膨れ上がる心配はありません。
- 記録はInformationとErrorに分類されます。
- Informationは単なる情報です。
- Errorはエラーです。
- 動かない場合やエラーを発生する場合は記録を手掛かりにしてください。
- きっかけとなった初めのErrorを対処しましょう。
- はじめのエラーをきっかけに雪崩のように連続してエラーを発生します。
- はじめのエラーに対処すれば連続的なエラーも解消します。逆にいえば後ろのエラーを対処しても意味がありません。
- はじめのエラーを見つけることが手掛かりになります。
Ver 7.8から更新確認を追加しました。インターネット通信について
- 更新可能かチェックします。自動更新ではありません。
- 起動画面がPICerFT Ver x.x up to dateなら最新版
- 起動画面がPICerFT Ver x.x is availableなら更新あり
- 更新方法はメニューのHelp->Update
- 更新可能であればパッケージ(ファイル)をダウンロードします。
- パッケージを手動で展開してください。
- 動作条件があります。
- ネット環境に接続
- Windows 10以上
- ネット通信できなくても基本操作に影響はありません。
- 単に更新確認できないだけです。
- この機能追加のため、(可能な場合)インターネット通信を行います。
- 具体的にはWebサイトからファイルを受信します。
- Webサイトのアクセス情報は残ります。
- http通信のため、通常のブラウザと同じです。
開発管理ハードウェアのリビジョンの違い
- ソフトウェアとハードウェアの開発管理を整理しました。
- 今後の変更に対応しやすいようにしました。
- 両者に密接な関係があります。
- 新たなデバイス対応のために、ソフトウェアもハードウェアも変更しなければなりません。
- ソフトウェアはバージョン管理します。
- ハードウェアはリビジョン管理します。
- 後になって使用ピンの変更が生じます。
- あるいは部品の入手性問題からハードウェアを大幅に切り替える可能性もあります。
- 両者の関係性を明確にしました。
- Ver 8.02からメニューにハードウェアのRevを追加しました。
- 使用するハードウェアのリビジョンを選択してください。
- デフォルトはRev.3です。
- 設定は記憶されます。
Rev.1 Rev.2 Rev.3 UPDI未対応 UPDI対応 UPDI HVA対応 VDD制御=DCD# VDD制御=DTR# VDD制御=DTR# RST制御=RI# RST制御=RI# RST制御=RTS# PGC制御=RTS# PGC制御=RTS# PGC制御=RI# - PICerFT 7.4以降 PICerFT 8.0以降
- ソフトウェアにハードウェアの情報を伝えます。
- 設定を間違うと正しく動作しません。
- 使用するピンが違うので動きません。
開発中の様子です
- すこしばかり開発中の様子をお見せします。
- PIC/AVR/UPDI/UPDI HVAを統合する評価中です。
- 提供するとは限りません。ボツが多いです。
- 複雑になった回路を1枚に統合します。
- すべてのPICで動作するかわかりません。
- ソフト側の変更も必要です。
- これは1例にすぎません。
- FET化、FT231X化などさまざまな試験をしています。
- ソフト側の改善と検証もしています。
- ms単位、us単位のタイミング調整をしなければなりません。
- CPUクロックに依存しないようにします。
- ソフトの修正は思いもしないところに副作用がでることがあります。
- 構造上、干渉しないようにしているのですが、想定外が発生します。
(1)Detect不可能なPIC(DeviceIDを持たないPIC)
PIC10F 200, 202, 204, 206, 220, 222 PIC12F 508, 509, 510 PIC16F 54, 57, 59, 505, 506
(2)Detect不可能なPIC(DeviceIDが重複しているため)
PIC16F83 84 PIC16F636 639 PIC18F242 2439 PIC18F252 2539 PIC18F442 4439 PIC18F452 4539 PIC18F86J72 66J93 PIC18F87J72 67J93
(3)Detect不可能なATMEL(DeviceIDが重複しているため)
AT90S1200 AT90S1200A
(4)チップ消去は一般的に Vdd=5V のみで可能
Vdd=5Vを選択できる場合、Vdd=3.3V ではチップ消去できません。
(Vdd=3.3Vのみのデバイスを除く)
(5)dsPIC30 SMPS(dsPIC30F1010,2020,2023)は拡張ICSP方式に対応していません。
標準ICSP方式をご利用ください。
(6)PIC24FxxKA/KL/KMは拡張ICSP方式に対応していません。
標準ICSP方式をご利用ください。
(7)PIC24EPxxGU,dsPIC33EPxxMUのAuxiliary Program書き込みに対応していません。
(8)PICライタから大きな電源電流(VDD)を供給できません。
そのため消費電力の大きい周辺回路を駆動できません。消費電力が小さいなら駆動できます。
書き込み時は周辺回路を切り離すなり対処が必要です。
(9)深すぎるディレクトリで動作しません。
文字列バッファの制限があるためです。
PICerFT.exe や *.hex ファイルを深すぎるディレクトリに配置しないでください。
(10)漢字のディレクトリを避けてください。
漢字に依存しないようにしていますが、思いもしないところで引っかかるかもしれません。
技術者なら漢字のディレクトリを避けるのは当たり前です。
最近はこうした常識を誰も教えないようです。
※WindowsはANSI(ShiftJIS)とUnicode(UTF8)の混在した環境にあり、単純な話ではありません。
※Windows APIも漢字の扱いが複雑です。
(11)Detectの副作用
Ver 8.0で解決。書き込み方式の追加で解決しました。
18FのNVMシリーズ(KシリーズやQシリーズ)でDetect直後、アドレス0000に何かを書き込む誤動作があります。
旧18Fシリーズの検出が先に行われ、その際の誤動作です。
「消去、検出、読み込み」の順でを行うと、再現します。「検出、消去、読み込み」の順で違いが判ります。
旧18Fシリーズの自動検出を廃止すれば解決できますが、支障がないためこのままとします。
書き込み後に「検出」しないでください。
(12)Detectの誤認
Ver 8.0で解決。書き込み方式の追加で解決しました。
便利な自動検出ですが、複雑なプログラム処理をしています。そして処理の限界があります。
非常にまれな確率で、18FのNVMシリーズ(KシリーズやQシリーズ)を誤認します。
原因は16FのNVMと18FのNVMがあり、読み取り方式が同じためです。
16Fを先に調査するため、(18Fの16Fに相当する場所の)DEVICE IDを誤認しまうことがあります。
「デバイスを再選択、消去」すれば回復します。
(13)SAFLOCK
18FxxQ20はコンフィグレーションにSAFLOCKを持ちます。
SAFLOCKを0:enableにするとこれを消去できません。enableにしないでください。
特殊な手続きが必要です。後ほど対応を考えます。
ちょっとその前に新しいデバイス(あるいは未対応のデバイス)の対応予定はありますか?
- 問い合わせを受けた方に共通点があります。
- (1)(他人の)話を聞かない。
- (2)(自分で)調べない。確認しない。
- (3)その結果、何がわからないのかさえわからなくなり、単に「動きません」という問い合わせになる。
- そもそも論になってしまうのですが、初歩的なことができていません。
- 初心者だからではなく、それ以前の問題です。努力している方なら、この部分がわからないとピンポイントの質問をします。
- 自分勝手に判断し、指示に従いません。書いてあることを読みません。いわゆる話を聞きません。
- データシートを読みません。だからICSPの接続方法がわかりません。読まないでどうして接続できるのか不思議です。
- 魔法でもあるのでしょうか。勘でわかるのでしょうか。わからないことを確認もしないで動かしたら奇跡です。
- 問い合わせるのですから、まずは自分の考えを捨て、相手の話に従いましょう。自分の考えを押し通すなら、他人に意見を聞いてはいけません。
- そんなの嘘だ、間違いだと言う前に、まずは素直に従ってみましょう。自分のプライドを捨てましょう。
- わからないことは放置せず、まず自分で調べましょう。自分で確認しましょう。
- マニュアルやデータシートを読みもしないで、問い合わせる資格はありません。
- 便利屋ではありません。都合の良い召使ではありません。1から10まで手ほどきする筋合いはありません。
- 読んだけれど、解決しない場合に初めて問い合わせる資格があります。
- そんなの面倒と思うなら電子工作に向いていません。
- 自分で努力もせず、他人に努力させるのは「なし」です。
- ※一般的に何もかも面倒を見てほしいなら、それ相当の金額を支払う必要があります。あなたのためにタダ働きしてくれる人はいません。
- ※至れり尽くせりのサービスの対価は高いです。国際線のファーストクラスに乗ればわかります。
- ※まさかとは思いますが、無料で至れり尽くせりのサービスを期待するなんてことないですよね。
- ※逆の立場でいえば、あなたは無料(給料なし)で仕事をしてくれますよね。
これから使おうとしています。
- 予定は未定です。将来(未来)のことはわかりません。
- 対応するしないは後で決定するため、お答えできません。
- そもそもそのデバイスについて仕様をよく調査しないと対応できるかどうかわかりません。
- 調査した結果対応できないこともあります。実際にありました。
- また仕様通りに動作しないこともありました。仕様書が訂正されるまで待たねばなりません。
- 仕様書が訂正されないこともあり、永遠に待たねばなりません。
- 対応できるかどうかはやってみないとわかりません。
- 未来に対して約束はできません。ですからお答えできません。
- 予定を信じていたのにいつまでもできなかったら、どうしてくれるといわれても困ります。
- ※逆にお尋ねしましょう。みなさんは将来ライセンス費用を支払う予定はありますか。
動かないという方へ
- 使用してから質問してください。あるいは使用前にマニュアルを読んで理解してください。
- 電子レンジを買いもしないで、電子レンジが動きませんという質問はできません。
- 原則として、マニュアルには「できること」しか書かれていません。
- マニュアルに「記述されていない」ことはできません。
- 電子レンジで洗濯はできません。そんなことはマニュアルに記述されていません。
- ※世の中には想定をはるかに超える人がいます。米国で猫を乾燥させるために電子レンジを使った例があります。
- 例外として事前にわかる範囲で、「できないこと」もっと言えば「やってはいけないこと」をマニュアルに明記しています。これは注意喚起です。
- マニュアルに「デバイスに対応していない」と書かれていればできません。
- 使用する前に、できることの判断ができます、そのためのマニュアルです。
- ※逆にいえば、できないことは無数にあり、すべてを明記することは不可能です。
- ※PICライターで料理はできません。洗濯も乾燥もできません。できないことを書き始めたらキリがありません。
- 自分勝手な思い込みや見込みで(将来も含めて)できるかもしれない想定をしないでください。
- マニュアルに書かれていない質問を受けても、答えは「できません」。
- 記述されていないことはできません。質問する前に答えは決まっています。
- マニュアルにできないと書かれている質問を受けても、答えは「できません」。
- できないと記述されているのですから、質問する前に答えは決まっています。
- ※たまたま「できた」としても保証されません。そんな使い方は想定外だからです。
- こうしたことは基本中の基本です。
- 世の中不思議なもので、マニュアルを読まないで、想定外の使い方をする人が多いです。
問い合わせの前に
- 問い合わせをいただいたほぼ100%、配線間違いです。
- 不思議なことに配線間違いはないという自信家ほど、間違いがあります。
- 過信して自己修正できないからです。
- 思い込みを捨ててください。自己否定してください。プライドを捨ててください。
- 電子回路は正直で、動かないのはあなたの責任です。あなたが間違ったことをしたからです。
- 自分の間違いを認められなければ、問題も解決できないでしょう。あなたが間違ったのですから。
- 1度の確認では足りません。何度も間違いが見つかるまで繰り返し確認してください。
- ※少なくとも開発時にこちらの環境で動作確認しています。
- ※こちらの開発環境で動作確認済みですから、論理的に動かない原因はあなた側にあります。
- なお、問い合わせをいただいても、回答するとは限りません。無保証であり、回答義務を負いません。
- サービス(労働奉仕)は無料ではありません。対価が発生します。
- 面倒を肩代わりするから仕事があります。そうして社会が成り立っています。
- ※こうした基本中の基本をしらないと「無料」の意味を勘違いします。無料のありがたみがわからないでしょう。
- ※「無料」をはき違えて、無理難題の要求にかわります。
問い合わせについて
- 確実に再現することを確認してからにしてください。
- 一度だけ発生したのではこちらで確認のしようがありません。
- 偶発的な現象ではなく、何度も確認して再現することを確認してからにしてください。
- 慌てて問い合わせしないでください。
- ※最近、一般商品でも無駄な問い合わせが増えています。企業は(カスタマー・ハラスメントの)対応に乗り出しています。
- ※付属のマニュアルに書いてあるとか。単なるクレーマーもおります。
- ※携帯電話会社も問い合わせが必要ならサポート費用を請求するようになりました。あるいはサポート費用込みのプランが必要です。
- ※警察や消防への緊急性のない問い合わせも増えています。緊急性のある問い合わせの邪魔をします。
- ※対応してくれるのが当たり前と考えてはいけません。
- ※日本人はサービスや送料、ソフトウェアなど見えないものに対価を支払う意識が低すぎです。
- プログラムを再起動しても再現するなど。
- OSをリブートしても再現するなど。
- USBケーブルを差し直すなど。
- 確実に再現することを確認してください。
- Windows 11 で動かないと問い合わせがありましたが、こちらで確認しても再現しませんでした。
- 偶発的にプログラムが動かなくなることはあります。
- 例えば、OSが不安定なら、プログラムが正常に動作しません。
- 例えば、USB端子の接触不良なら、プログラムが正常に動作しません。
- いくらプラグアンドプレイ対応でも通信中にUSBケーブルを抜いたら異常を起こします。
- USBメモリにデータを書き込み中に抜いたら、データを損失するだけでなく、ファイルシステムを壊すかもしれません。
- USB端子の接触不良はドライバへも影響を及ぼし、OSを不安定にします。
- 通信中に偶発的に接触不良が発生すればプログラムは止まります。
- ある程度のエラー処理は施していますが、すべての事象に対してエラー処理は不可能です。
- エラー処理のエラー処理が必要になり、永遠にエラー処理が終わりません。
- 慌てず、再度初めからやり直してください。
一時的な不安定はある
- 原則として個別対応しません。問い合わせを受けても回答するとは限りません。
- 後述しますが、対応するとは限りません。
- 問い合わせ不可の例を挙げます。いずれも基本中の基本です。技術的な話以前です。
- (1)マニュアルの指示に従わない場合
- (2)自分勝手な改造をした場合(改造は自己責任)
- (3)自分で資料(データシート)を調べない場合
- (4)漠然としたとらえどころのない質問(例「動きません」)の場合
- (5)明らかに(初歩的な)不注意とわかる場合
- (6)礼儀をわきまえない場合(文句、クレーム、要求、威嚇、誹謗中傷、罵倒)
- どうしても手助け、回答、対応が必要なら、対価として支払い可能な金額の提示のうえ、お問い合わせください。
- 諸条件(納得の金額、作業時間の確保など)をクリアできたときのみ、ご連絡します。
- 不具合の報告は構いませんが、確実に再現する方法を提示してください。
- 何がどのように問題なのか具体的に提示してください。
- 再現しないバグに対処できません。
- また詳細な情報が必要です。ログファイル($PIClog$.txt)を添付してください。
- OSのバージョンによって、動作したりしなかったりが発生しています。
- Windows 11 といっても細かいバージョン(例10.0.22631)が振られています。
- OSは毎月バージョンが変わります。このちょっとの差で問題が発生します。
- Windows 11 という大雑把なバージョン情報では不十分です。
- OSの更新は修正ではなく、壊すことが多いです。
- これまでに、OSの更新が原因のトラブルを何度も経験しています。簡単にいうとOSのバグです。
- アプリ側のバグと勘違いして問い合わせを受けますが、OSのバグです。
- (1)ファイルの選択画面が開かないOSのバグ。
- (2)表示レイアウトが崩れてしまうOSのバグ。
- あげればキリがありません。そもそもOSを更新できないバグが多いです。
- OSのバグに対してアプリ側で対応しません。OS側の対応を待ちます。
- アプリ側で対処しても、OS側で対処すると、またアプリ側で元に戻さなければなりません。
- 二度手間になります。
- アプリ側に問題がある可能性を否定しませんが、これまでに判明したバグをつぶしています。
- 履歴にバグ修正を記録しています。
- バグは新たに手を入れた場合に発生します。
- あるいはマイクロチップのドキュメントに起因している場合があります。
確認する習慣を身に着ける
- 特に使い初めで不慣れな時に、不安定になることがあります。
- あれこれと試行錯誤をするため、(知らずに)不安定にしてしまいます。
- 配線を間違えていたり、端子やコネクタの接触不良だったり、不安定な要素がたくさんあります。
- 配線間違いや、VPP電圧間違いでPICを壊す方もおります。
- してはいけないときにUSBケーブルを抜き差しして不安定にするときもあります。
- そのため偶発的に動かないことがあります。一時的に動かないことがあります。
- 一時的に動きがおかしくても、焦らないでください。すぐにこれはバグだと決めつけないでください。
- ある程度、準備が整ったら、アプリを再起動したり、OSを再起動して不安定要素を取り除いてください。
- 最近はアプリを終了したつもりでも裏で動き続けます(バックグランド実行)。余計なお世話機能で起動を早くするためです。
- アプリを再起動したいのにOSが邪魔をします。
- そのまま、ああでもない、こうでもないと悩み続けると泥沼にはまります。
- 仕切り直してください。
- うまく動かない場合、初めからやり直しましょう。
- 最近はOSのバグが多く、不安定です。修正しているのではなく、壊しています。
- 余計な機能を追加して肥大化しています。そしてそれがまたバグを生みます。
- ちなみにここ数か月、累積的な更新に失敗します。更新プログラムがバグっており、更新できません。
- 付き合いきれないので、更新を一時停止しています。時間の無駄です。
地道な努力が必要
- これも問い合わせに関連した注意喚起です。
- 少なくとも2度確認しましょう。
- 検索サイトから直接表示される、掲示板やメールフォームへ入力しないでください。
- ホームページ(正面玄関)からおこし下さい。裏口から入らないでください。
- 偽サイトかもしれません。本物のサイトか確認してください。
- 検索はあくまで道具にすぎません。検索後に正面玄関を探してください。
- 検索した商品をそのまま買ってはいけません。
- 通販サイトの正面玄関から再度、商品を検索しましょう。
- こうした不注意を利用した詐欺があります。
- インターネット利用の基本中の基本です。不注意にもほどがあります。
- こうした自己防衛をできないなら、インターネットを使用してはいけません。
- ※広告ブロックやアンチウィルス・ソフト(ウェブシールド)で防御しましょう。
- ※すべてではありませんがある程度防止します。
- ※急速にお金の電子化が進んでいます。
- ※これに伴い電子マネーの詐欺も急速に増えています。物理的なドロボーから電子的なドロボーに変化しています。
- ※クレジットカード詐欺、QRコード詐欺など新手の詐欺が登場しています。
- ※外部からの電話やメールは原則詐欺です。慌てず反応しないようにしましょう。
- ※放置あるのみです。自動的に迷惑フィルタで排除され知らぬ間に削除されます。
- 騙されやすい性格の人がおり、あちらこちらでひっかかります。
- 不注意が招いた結果です。注意しても不注意の性格は直りません。
- 注意しても無駄と考えています。個別に注意しません。
- 通販サイト、金融機関の偽サイトが横行しており、注意喚起しています。
- にもかかわらず、だまされる人が後を絶ちません。被害はなくなりません。
- 厄介なことに偽サイトを上位に検索されるように細工しています。
- 偽サイトは100回に1回間違えて入力することを前提に作られています。
- 買い物したつもりでカード情報を盗まれます。
- たとえ本物サイトでも「半額」と思ったら初回だけで「定期購入」だった、
- という勘違い商法もあります。あくどい商売があります。
- 小さな注意書きを読まなかったあなたが悪いという商法です。気を付けましょう。
- 法律を逆手に取った商売です。法律上取り締まることはできません。
- ネット上の情報は正しいとは限りません。
- 慌て者で、不注意な性格の人は情報に騙されやすいです。
- 不確実な情報に惑わされないようにしましょう。
- (情報や行動を)確認する習慣を身に着けましょう。
- 自分は大丈夫と過信しないようにしましょう。その過信に罠が仕掛けられます。
- 不注意な方からの問い合わせに回答しません。
自己責任を知らない方へ
- 小さな努力の積み重ねが必要です。
- 成功に近道はありません。
- 失敗する方を観察していると共通点があります。
- 見るからに失敗すなとわかります。
- 基本中の基本を間違います。例えば古いバージョンで新しいPICに対応していません。最新版のダウンロードを忘れます。
- 不注意を減らす必要があります。
- 人間ですから失敗はあります。失敗をさけられません。
- 失敗を減らす努力が必要です。同じ失敗をしないようにします。
- 失敗の確率を減らします。
- この積み重ねが、人に大きな差をもたらせます。
- はじめは小さな差ですが、知らぬ間に大きな差になります。
VPP電圧を出力しない
- 残念なことに日本人は自己責任の意識が低すぎです。
- 改造は自己責任です。責任転嫁してはいけません。
- 改造の助言をしませんし、できません。
- ご自身で判断してください。当方に回答の義務はありません。
- 当方は一切関与しませんし、一切責任を負いません。
- なお、「自作」とは自分で製造するので、製造責任は自分にあります。製造者は自分です。
- 事故、ケガ、二次的な被害などいかなる損害も当方は責任を負いません。
- ご了承ください。
- 不文律として、こうした基本があるため、回答しないのではなく、できません。
- 一般製品でも改造方法をメーカーが教えることはありません。責任問題に発展するからです。
- 改造の方法を他人に聞いてはいけません。そして他人に責任転嫁してはいけません。
- たばこに使用方法が明記されていません。その理由を考えてみましょう。
- 人情もなく冷たく聞こえるかもしれませんが、これが原理原則です。
- 逆の立場になってみましょう。
- 改造方法を教えてください。事故やケガをしたら(製造物責任法により)賠償してもらいます。
- こうした誤った考え(勘違い)に陥ります。
- あなたは改造方法を教えますか?
- 自己責任を知らないと、他人に責任転嫁します。
FTDIのドライバの動きがおかしいときの対処方法は?
- 最初だけVPP電圧を出力しません。これは正常です。
- FT232Rからクロック供給しないとVPP電圧を発生しません。
- FT232Rの内部設定を行わないとクロック供給しません。以前は手動で設定を行う必要がありました。
- PICerFTが[Connect]時に自動設定します。FT232Rの内部設定を確認し、設定されていなければ設定します。
- 設定した場合、USBの再接続を促す"Reconnect USB cable!"を表示します。
- USBケーブルを再接続しないと設定は反映されません。クロック供給しません。
- FT232Rの偽物は内部設定できないため、これを繰り返します。
- PICerFTの[Connect]を一度でも実行しない限り、VPP電圧を出力しません。
動かない。
- USBケーブルをさし直してください。あるいはJP2ジャンパーをさし直してください。
動かない。
- AE-UE232RのJP1が接触不良を起こしていることがあります。
- ピンヘッダーを布できれいに拭いてください。
動かない。
- デバイスの電源電圧VDDが5V指定にも関わらず、3.3Vを設定していた。
- AE-UE232Rモジュール上のJP1設定を確認してください。
動かない。
- データシートを読んでいません。
- そのためICSP接続を間違えていました。
- データシートを読んで、ICSPの接続を確認してください。
読みだせない。
- ほとんどは配線間違いです。思い込みを捨てて確認してください。
- 配線は間違っていないと自信をもって問い合わせてきますが、写真で確認するとやはり配線間違いが発見されます。
- 配線間違いが見つかった場合には、有償サービスにするかもしれません。
動かない。指示に従わない。
- すべて0x00で読みだされる。
- 原因はコードプロテクションです。
- 書き込んだ情報を保護するのがコードプロテクションです。
- 実際に書き込まれているのですが、読みだすと0x00です。
- 製品化したときに情報を盗まれないようにします。
- PICのコンフィグレーションでコードプロテクションを有効にします。
- 読み出せないようにするのがコードプロテクションです。
- 拾ってきたhexファイルの場合、コードプロテクションに気が付かず読みだせないため、バグだと決めつけます。
- コードプロテクションしたら読みだせません。当たり前です。
- 初歩的な勘違いです。
- 自分でソースコードを記述していれば気が付きます。
- なお、消去すれば(コードプロテクションを解除)読み込み可能になります。消去するので書き込んだコードを読み出せません。
- コードプロテクションすると正しく書き込まれているのか確認できないと思うかもしれません。
- そこも考えられています。
- コードプロテクションする前に、Verify(照合)します。だから正しい書き込みが保証されます。
- 最後にコードプロテクションします。最後にカギをかけます。
Detectで"エラー:DeviceIDなし"と表示する。
- 指定以外の部品を使っていたことがあります。
- たとえば、スイッチング・ダイオードではなく整流ダイオードを使っていました。
- たとえば、C1を省略していました。
- たとえば、L1の型番違いを使っていました。
- 指定を守ってください。
- 自分勝手な判断をするのではなく、指示に従ってください。
- 自分の判断を優先するのはベテラン(熟練技術者)になってからにしてください。
- 言われたことに従えないようでは上達しません。従った上なら自分の意見を持ってもよいでしょう。
- 従わずに自分の意見を押し通すのは「なし」です。
- 仕事でもそうですが、言われたことをこなした上で、意見を言いましょう。改善策を提示しましょう。
- 文句はやってからにしましょう。
- ※指示には(あなたの知らない深い)理由があります。どことは言いませんが自分勝手に手順を省略して重大な事故を起こした例があります。
- ※一般的に指示書には理由を記載しません。なぜなのか理由を探りましょう。
- ※指示に従ったうえで自分の意見を言いましょう。こうすれば簡単とかこうすれば便利など。
- ※まずマニュアルに従ったうえで自分の意見を言いましょう。マニュアルに従わず、動かないといわれても想定外です。
- ※相手はベテランであなた以上に思慮深く、あなたの意見はすでに考慮済みであることがほとんどです。
- ※熟考したうえで、あなたの意見は却下されている可能性があります。自分が思いつくことは他人も思いついています。
- ※理由があり、あえて面倒な手順であったりします。
- ※袋麺で「火を止めてから粉末スープを加えてください」と書かれています。なぜ火を止めなければならないのでしょうか。理由は書かれていません。
- ※粉塵爆発を防ぐためです。燃えやすいものが粉状になっていると爆発的に燃えます。
- ※誤って粉末スープをこぼし、火が付くと粉塵爆発します。
- ※理由を知ると手順の重要性がわかるでしょう。火を消していれば、誤ってこぼしても粉塵爆発しません。
- C1はパスコン(バイパスコンデンサ)ではありません。何のためにあるのでしょうか?理由を知りましょう。
- パスコンと言っている時点で、「知ったかぶり」がばれます。何と呼ぶのでしょうか?簡単ですよね。
- 答えを教えません。自分で勉強してください。
- L1の型番違いを使わないでください。問題を起こします。理由があって選定しています。理由は書きません。
- 自分勝手な判断をすると危険です。
- ※取引業者でも自分勝手に型番変更してトラブルを起こします。理由を知らずにやってしまいます。
- ※必ず指示に従いましょう。変更するときは設計者に確認をとりましょう。十分に検討しましょう。
- ※自分勝手に変更した責任は自分で取りましょう。
- ※大丈夫だろうと思ったその考えが甘いです。
Verifyで"エラー:正しく書き込めません。"と表示する。
- (そもそもDeviceIDを持たない)例外がありますが、まずこの問題を解決してください。
- この問題を解決しない限り、[Erase][Check][Write][Read]操作は無効です(無駄です)。
- ハードウェアのRev選択を誤っている可能性があります。
- 場合分け1(専用PICerFT基板を使っている)->ICSP接続に誤りの可能性があります。
- 場合分け2(専用PICerFT基板を使っていない)->配線のどこかに誤りの可能性があります。
Detectで認識しない。
- Prg 0000:0000<-3181
- あるいは
- Eep 0000:0000<-0069
- プログラム領域のアドレス 0000 に 3181 を書き込もうとしたが 0000 であったという意味です。
- すでに 0000 が書き込まれていたので、書き込みができません。
- 書き込みとはビットを1から0にすることです。0から1にできません。
- ビットを0から1に戻すには消去Eraseしなければなりません。
- 原因はわかりませんが新品のデバイスを使い始めるときに発生することがあります。
- Eraseを実行し、Checkで消去済みを確認してから書き込みしてください。
- そもそもICSP接続を間違っており、Detectできないことから発生する場合もあります。
- VDD電圧3.3Vを選択していると消去できないことがあります。消去にはVDD電圧5Vを必要とします。
- PICのデータシートをよく読まないと気が付きません。PICkitでも発生します。
ご注意
- 勘違いしています。ICSPは回路の兼用ではありません。ICSPとは何なのか確認しましょう。
- ICSPを考慮した回路設計をしていませんでした。
- ICSPの端子と他の回路を兼用するように設計していませんでした。
- そのため、ICSPの信号制御が邪魔され正しく動作しませんでした。
- 例えば、PGCやPGDにMOSFETのゲートが接続されていました。
- 詳しくは▽PICの書き込み解説(PDF) をご覧ください。
- 原則として、ICSPの端子と他の回路を兼用してはいけません。
- 例外として、ICSPを考慮した場合、兼用できます。
USBのセレクティブサスペンド機能
- Core i シリーズの一部のチップセットでUSBに問題があります。
- PICerFTに限らず、USB動作に支障があります。
- Intel Q57 Express, H57 Express, H55 Express, P55 Express
- Intel QM57 Express, QS57 Express, HM57 Express, PM55 Express, HM55 Express
- 別のUSB経路を使用してください。
- 消費電力削減のため、WindowsはUSBの電源を自動的に切ります。
- 「電源オプション」で管理されています。
- このため、USB電源を失うとPICerFTの電源も失います。
- スリープから復帰すると回復しますが、デバイスドライバの動きがおかしくなるかもしれません。
- 2つの回避方法があります。
- (1)FTDIのデバイス(USB Serial Converter)を電源管理対象から外す。デバイスマネージャーのPower Managementで設定。
- Allow this device to bring the computer out of stanbyのチェックを外す。
- (2)USBのセレクティブサスペンドを無効にする。「電源オプション」で設定。
- 「USB設定」の「USBのセレクティブサスペンドの設定」で無効にする。
- FT232RLの偽物(コピー商品)が大量に出回っています。これは有名な話です。
- 同等品(セカンドソース)ではありません。セカンドソースとはライセンスを受けて製造をします。無断で製造しています。
- レントゲン写真で中身の比較が行われており、全くの別物です。
- 出回り始めは動作していましたが、ドライバで偽物対策をしたため動作しなくなりました。
- 偽物を発見した場合、内部のEEPROMを書き換えてPID=0000にします。これで動かなくします。
- その後さらに、UARTを使うと"NON GENUINE DEVICE FOUND!"を出力するように変更しました。
- この偽物はUARTとして使う分には問題ありませんが、EEPROMを設定してFT232RLの細かい機能を利用しようとすると動きません。
- ※余計なUART出力"NON GENUINE DEVICE FOUND!"で誤動作しないことが条件
- 完全互換ではなく、ひとまずUART機能だけを搭載した偽物です。細かい部分は実装されていません。
- 趣味で使うなら大した話ではないかもしれません。
- ※PICerFTは偽物で動作しません。FT232RLのUART以外の機能も利用しているからです。
- ※FT232RLの後継FT232RNLが登場しました(2023)。型番で偽物の可能性を排除できます。
- ※後継のFT232RNLは低い電圧でも内部発振できるように改良しました。
- ところが医療機器、軍事機器で使われていると、大事故を招きます。
- そこでメーカーは偽物対策に乗り出したわけです。
- みなさんが手術中に医療機器が誤動作したら、どう思いますか?
- オペアンプも偽物が大量に出回っています。
- 問題は本物と偽物を外見で見分けられないことです。
- はじめから偽物型番を明記してくれればまだましです。
- 偽物と理解したうえで使います。
- このためメーカーは小売り販売をやめる動きをしています。
- 正規流通ルートのみにしか販売しません。
- これが確立すると、小売りされているものはすべて偽物です。
- もともと小売りはメーカーにしてみれば流通量が少なく、廃止しても痛くもかゆくもありません。
- この動きは趣味にしている人にとって大打撃です。
- ただでさえ表面実装に置き換わり、部品の入手が困難になっているのに、そもそも小売りがなくなります。
- すでにTIは小売りをやめました。
- この偽物問題は部品入手問題に発展します。
- ※半導体の作り方を知ってしまい、問題を引き起こしてしまいました。
- ※昔は「魚を与えるのではなく、魚の取り方を教えなさい」と言われてきました。
- ※ところが魚の取り方を知ってしまうと、根こそぎ取りまくり、資源枯渇問題を引き起こしました。
- ※同じことが半導体業界で起こっています。
- ※「半導体の作り方を知り、偽物の半導体を作り始めました。」
- ※安易に知識を教えることが良いとは限りません。知識の正しい利用方法を知らないなら教えてはいけません。
- ※わかりやすい単なる偽物(コピー商品)ならまだしも、正規品と偽っているから質(たち)が悪いです。
- ※正規品のつもりで買ったら偽物だったて詐欺です。
- ※メーカーが対策に乗り出してしまい、小売りをやめるという電子工作にとっては生命線を失う最悪の事態です。
- ※偽物を野放しにすると電子工作を続けられません。部品を入手できず修理も不可能になります。
- 偽物つながりでPICkit3の偽物(コピー商品)があります。
- 本家のPICkit3はすでに生産を終了しています。
- ※偽物はPICk it 3=「それを拾え(選べ)」と読むらしいです(ピックキットではなくピックイット)。そこで区切るか。やられた。
- ※パン作ったことある?パンツ食ったことある?
- 正確にいうと回路を省略したコピー商品です。本来あるべき部品が実装されていません。
- 手抜きなので動いたり動かなかったりします。互換品ではありません。偽物です。
- 投げ売りされていましたが、PICkit4の入手困難に伴い、爆上がりしています。
- 偽物が\6,000前後します。
- メーカーのロゴがないため、偽物とわかりやすいです。良心的です。
- 動いたらラッキーと思いましょう。動かなくても文句を言ってはいけません。
- ※MPLAB IDE X v6.10からPICkit3が外されました。PICkit3は偽物ごと終了です。
- ※MPLAB IDE X v6.20で一時的にPICkit3が使えるようになりましたが、やはり外すことが決定しました。
- ※これに伴い、PICkit3偽物の投げ売りがまた始まりました。不良在庫になるからです。
- ※AliExpress では421円とか146円とかで売られています。ゴミですからね。
- ※PICkit3は2世代前になるので、新たなPIC,AVRに対応しません。
- ※別の方法があるのですが、PICclubで紹介しました。
- ※修理は自己責任です。筆者は責任を負いません。
- ついでにPICkit3に関連し、低いVDD設定で書き込みに失敗する問題の対処方法を紹介します。
- これはMicrochipのETN#32(Engineerin Technical Note)として公開されています。
- R45,R43,R26の100Ωを0Ωに変更するだけです。
- この抵抗はバス・トランシーバ(74LVC1T45)のVCCBに接続されており、電流を流すと電圧降下を引き起こします。
- だから低いVDD設定で想定以上の電圧降下が起こり、問題を超します。
- この変更に伴い、ISCPの接続間違いはPICkit3を壊します。
- ※PICkit3の偽物は回路が異なっており、R54(10Ω)に集約されている。
- ※ただし、偽物にはいくつかのバージョンがあるので同じとは限らない。
- ※バス・トランシーバの回路を追って確認すること。
- なお、よくあるPICkit3の故障原因はバス・トランシーバ(74LVC1T45)です。
- ICSPの接続間違いで出力衝突を起こしたり、誤った電圧がかかって、吹っ飛ばします。
- 74LVC1T45の国内入手が困難です。RS-onlineにあるかも。
- 海外輸入しなければならず、修理困難です。
- また周りの部品も巻き込んで故障している場合もあります。
- 74LVC1T45を交換すればよいだけではありません。
- 初心者は悩み泥沼にはまるので、買い替えたほうが早い結論になります。
- PICkit4にも74LVC1T45が使われており、吹っ飛ばして壊します。
- FT232RLの互換目的としてPL2303を開発しました(ほぼピン互換)。これ自体は偽物ではありません。
- ところがこのPL2303(HXA)の偽物が出回りました。
- そこで製造終了した古い製品を、Windows 10,11のドライバで使用できないようにしました。
- 大胆に古い製品もろとも偽物を排除しました。
- Windows 10,11でドライバを(自動)更新すると(古い)PL2303が動かなくなりました。これが真相です。
- 製造終了:PL2303HXA/HXD/TA/TB/EA/RA/SA
- 製造中(2022年):PL2303GC/GS/GT/GL/GE/GD/GR
- Windows 10で動かない製品:PL2303HXA,PL2303X
- Windows 11で動かない製品:PL2303HXA/HXD/TA/TB/EA/RA/SA
- まねて作った製品の偽物が出回るというなんとも皮肉な話です。
- 古いProlific製品は動かず、製品寿命となり、事実上市場を失いました。これから新たに新製品で市場開拓しなければなりません。
- CH340E,CH340K,CH340N,CH340Gも登場しており、市場は厳しいです。
PIC12F1501PIC18F25K80
- 問い合わせによりバグを修正した例です。
- 詳細な状況をいただき、修正に至った例です。
- 症状としては正しく書き込みできません。
- この原因を探っていったところ、マイクロチップのデータシートの間違いに起因することがわかりました。
- (書き込み仕様の)データシート DS41573C の TABLE 4-2 で Number of Latches = 32 と記述されています。
- もともとこのデータシートは Advance Information であり暫定情報。その後も更新されていません。
- (デバイスの)データシート DS40001615C の TABLE 10-1 を確認すると Write Latches = 16 と記述されています。
- こうした情報の食い違いがたまに発生します。さてどちらが正しいのでしょうか。実際に試してみるしかありません。
- いくら注意を払っても、データシートの間違いまでなかなか気が付きません。
- ユーザとしてはデータシートを信じるしかなく、その間違いまで面倒をみきれません。
- 残念ながら他人の間違いまで責任を負えません。
- では動作確認を怠っていたのかといえば違います。
- 実は現物を入手し、動作確認を行っています。
- ところがプログラムの大規模改修の際、データシートを再確認して間違いが混入したと思われます。
- こうしたことが起こるので過信は禁物です。
- これもデータシートの間違いに起因します。
- (書き込み仕様の)データシート DS39972B の FIGURE 2-2 で MCLR/VPP/RE3 と記述があります。
- (デバイスの)データシート DS30009977G の Pin Diagrams で MCLR/RE3 と記述があります。VPPがありません。
- VPPはあるのでしょうか?どちらが正しいのでしょうか?
- 実際に確かめてみるしかありません。VPPはないようです。18FxxK80はKシリーズ(VPPを使用)でありながらJシリーズ(MCLRを使用)の仲間です。
- 18FxxK80はMCLRの動作にチップバグを抱えており、この影響かもしれません。
- PIC18シリーズのICSP接続は複雑で混乱します。
- PIC18F25K80のICSP接続を示します。
- PIC18F2550のICSP接続を示します。
開発支援新しいデバイス発表の情報提供
- サポートデバイスが1000を超えるまでに成長しました。
- 一部の大学では教育目的として利用されています。
- 新しいデバイス(チップ)が発売されるたびに、自腹で新製品を購入してきましたが、このコストが半端ではありません。
- みなさんも購入したことがあるように、新製品であるため、海外から輸入しなければならず、送料も高くつきます。
- 実際にデバイス(チップ)を購入し、動作確認を行ってからソフトウェアをリリースしています。
- たまに仕様書と異なることが発覚するからです。
- 現物で確認することが重要です。動作確認を行っているため信頼性も向上します。
新しいデバイスの寄付
- ときおり、新しいデバイスが発表されていないか、巡回していますが、どうしても取りこぼしが発生します。
- そこで新しいデバイスの情報を掲示板にお知らせいただけると助かります。
- 一人で確認するより複数の目で確認すれば、取りこぼしを防げます。
- こんなPICやAVRが発表されたという情報をお知らせください。
開発事情
- 現物を入手しないことには確認作業できません。開発が進みません。
- そこで新しいデバイス(新製品)の寄付のお願いです。
- 原則として自作可能なDIPタイプをサポート対象にしています。表面実装しかないタイプは後回しにします。
- 表面実装は個人で利用する機会は少なく、企業を前提としているからです。
- なお、寄付いただいてもサポート対象にするとは限りません。すべてのデバイスをサポート対象にできません。
- さまざまな事情があり、最終判断はこちらで行います。あらかじめご了承ください。
- たまにどうして対応しないんだ、どうして改善しないんだ、ソースを開示しろ、技術を教えろと要望を超えた「要求」があります。
- 残念ながらこうした一方的な要求にはお応えできません。公平な関係とはいえません。
- ※あなたが要求するなら、同様にこちらもあなたに開発費を要求します。これが公平な関係です。
- ※納得いかないなら自分でPICライターを開発すればよいだけです。他人に文句をいう前に自分でやりましょう。
- ※自分ではできない?それはあなたの勉強不足です。私の責任ではありません。他人に責任転嫁をやめましょう。
- ※こうした基本的なことを誰も教えてくれません。
- 要望として話は聞きますが、決定権は開発者にあります。この点を勘違いなさらぬようお願いします。
- 仕様書がなかなか公開されなかったり、情報が足りなかったりすると開発できません。
- また書き込み仕様の変更に伴い、プログラムの大規模改修が必要なときもあります。
- 膨大な時間を費やす必要があり、それに見合わない可能性もあります。
- 時間に限りがあるため、すぐに対応できません。こればかりに時間をさけません。
- この労働時間をコスト換算するととんでもないことになります。10年以上の開発費です。
- 労働コストの寄付は難しいとしても、デバイスのコストならみなさんにも貢献できます。
「無償の代償」「無償からの勘違い」
- 操作方法が簡単なため、内部構造も簡単にできているだろうという錯覚があります。
- むしろ逆で操作方法を簡単にするために、内部構造は複雑です。
- 人の代わりにプログラムが自動的に処理しているため簡単に操作できます。洗練しなければ簡単な操作になりません。
- 例えば内部でUSB通信を行っています。ユーザは意識していないでしょう。
- 開発者自身、複雑になりすぎて何度も開発を断念しそうになったくらいです。
- このため、内部構造を大幅に整理した経緯があります。大幅な変更は改善より、壊す危険があります。
- 触るに触れないものに手を入れるわけですから、覚悟が必要です。
- USBの操作はパケット通信のため、通信速度を上げるための工夫が必要です。
- 何も考えずに操作すると通信速度が落ちます。今の10倍以上遅くなります。
- Windowsのイベントもフックしてハンドリングしています。
- AVRのFUSEの扱いが大変になり、字句解析を導入しました。
- コンパイラに用いられる文法を解析する方法です。
- 簡易的ですが大幅に改善しました。プログラムサイズが小さくなりました。
- 開発を容易にするため、(PICerFTの)Debug機能を追加しました(PICのDebug機能ではない)。
- このほかにも数えきれない問題をクリアしています。その中には信じられないことも含まれています。
- どこにも書かれていない、ノウハウが注ぎ込まれています。
- プログラム開発は過酷で、間違いを許されません。間違いがあると正しく動作しません。
- ※これについては機会があれば「無償の代償」「無償からの勘違い」として別途解説しようと思います。
- ※「無償」につけ込む方がおります。要求すればすべて「無償」で得られるものだと勘違いします。
- ※「無償」を利用して利益を得ようと悪だくみします。
- ※※生活保護を悪用する人がいます。不正受給したり、家賃滞納で立ち退きを迫られその腹いせにホテル代を住宅扶助請求します。
- ※※こういう事例が後を絶ちません。悪用は全体からすれば一部ですが、本来受けられるべき人の障壁になります。
- ※「自分のものは自分のもの、他人のものも自分のもの」自己中心的な考え方です。
- ※開発者の意思で提供するものであり、あまり無茶苦茶なことを言うのであれば提供をやめ使用を禁止します。
- ※「無償」で得たからといって、「すべての権利」を得たわけではありません。
- ※ここをよく勘違いします。
- ※開発者には使用を禁止する権利があります。
- ※たとえ「本を買って手に入れた」としても、「すべての権利」買ったわけではありません。
- ※閲覧する権利を買っただけです。個人使用の権利を買っただけです。
- ※著作権や販売権を買ったわけではありません。
- ※「無償」で手に入れると、「すべての権利も無償」と勘違いします。
- ※複製するのも「無償」、質問するのも「無償」、改善要求も「無償」なんでも「無償」と勘違いがエスカレートします。
- ※ソースコードを開示しろとの要求までありました。勘違いも甚だしいです。
- ※製造してメルカリで販売したいとの要望もありました。自分は儲けるけど、開発者は無料でいいよねと。
- ※愚かにもほどがあります。
- ※※仮に商用利用を許可した場合、製造責任を負ってもらいます。開発者の指示に従っていただきます。
- ※商用利用を禁止している理由を理解していません。商用利用するなら開発者も利益を要求します。正当な対価です。
- ※人間の欲望は果てしないです。強欲です。
- ※自分の労働の対価を勘定に入れないので、他人の対価なんて考えも及びません。
- ※「無料、無償」提供するとこうした勘違いが生じることを事前に知っていました。
- ※だから「無料、無償」提供してはいけないとの説明も見かけます。
- ※「無料、無償」につけ込み損害を補償しろと発展しかねません。
- ※「有料」でさえ勘違いするのに「無料」となるとさらに勘違いが加速します。
- ※現在のところ、性善説を信じ、紳士協定、良心を信じています。
- ※裏切るようなら、性悪説に変えます。がちがちにプロテクトをかけます。
開発へのやる気子供に教育の機会を
- 今まであかしていませんでしたが、なぜ開発を続けているのか、その意図を少しばかり語ろうと思います。
- 筆者が子供のころパソコンはとんでもなく高価でした。大学の初任給でも買えませんでした。
- コンピュータに将来性を感じていました。直観がありました。
- ただ子供にはとても手の出る代物ではありませんでした。
- だから近所の電気屋さんや公民館に行ってはパソコンをいじりまくりました。
- ※この少年はのちに世界に数台しかないスパコンをいじることになります。
- 本屋に行っては関連書籍を立ち読みしました。
- 自分で勉強の機会を探し求めていました。
- 子供にとって教育の機会がまったくありませんでした。
- まあ当時、大学でさえまともなプログラム教育さえなかったので、当然といえば当然です。
- C言語さえまだありませんでした。
- メーカーにお願いして資料を取り寄せていました。
- まさか資料請求しているのが小学生とは知らなかったでしょう。
- こうした苦労をして技術を少しずつ身に着けていきました。
- 現代はモノのあふれた時代になりました。
- しかし最新技術に触れるには障壁があります。
- 現在でも研究者しかスパコンを触れません。
将来に希望を
- 最新技術に触れて学ぶことは将来の希望になります。
- 学ぶ機会を失うと、そこで終わりです。
- コンピュータやマイコンを学ぶ機会としてPICはよい材料です。
- PICにこだわる必要はありませんが、これをきっかけに学び始めてもよいでしょう。
- 英国のラズパイも教育の機会を与えることに主眼が置かれています。
- PICの開発にはPICライターが必要です。ところがお小遣いで買える値段ではありません。
- そこで小学生のお小遣いでまかなえるようにしたのです。
- 小学生でPICやラズパイに触れたら、将来もっとすごいものに触れるでしょう。
- PICやラズパイを馬鹿にしてはいけません。昔Linuxを使いものにならないと馬鹿にした人がいましたが、いまやLinuxだらけです。スマートフォンはLinuxです。
- 他人を馬鹿にしていると、いずれ自分が馬鹿にされます。
- きっかけはなんでもよいのです。
- どういう仕組みで動いているのか、興味をもてるかにかかります。
- 「ゲームをする人」ではなく「ゲームを提供する人」になりましょう。
- 教育が人を育てます。
ご年配へ
- 学んだことをそのまま生かせる時代ではありません。
- 昔は、「魚を与えるのではなく魚の取り方を教えなさい」と言われてきました。
- ところが「魚の取り方を学ぶと」根こそぎ「魚を取りまくって」資源枯渇を招きました。
- もっと先を学ぶ必要があります。
- 全員が最先端技術を学ぶ必要はありません。とはいえ誰も学ばないと誰も最先端技術を使えません。
- 100人に1人でもよいので、優秀な人材が育つことを祈ります。
- そしてあなたが学んだことを次の世代で分かち合ってください。
- 技術や知識を継承していくことで豊かな未来につながります。
- 筆者が学んだことも大半が前世の知識や技術です。筆者はそこに少し付け加えたにすぎません。
- 筆者は日本語を発明したわけでもありません。相対性理論や量子力学を発明したわけでもありません。
- そこに少しばかり、付け加えたにすぎません。
- 若者だけでなくおじさんも忘れてはいません。
- こうした安価で高性能な教育材料は、恰好の的になり「おじさんのおもちゃ」になりました。
- 昔できなかったことが、今なら実現できるようになりました。
- うまく活用し、便利な世の中にしましょう。
- おじさんの毎月のお小遣いは年々下がっています。お小遣いで買えないおもちゃは困りますよね。
- そしてお孫さんにやっているところを見せましょう。子供は大人の背中をみて育ちます。
- 決して押し付けるのではなく、興味を持つか静かに見守りましょう。
- 子供は何に興味を持つのかわかりません。はじめは広く、いろいろ触れさせてみましょう。
- はじめからうまくいくことなどありません。失敗を繰り返していく中で、成功を見つけ出していくのです。
事前準備1事前準備2
- 拡張ICSP書き込みを行うため、ディレクトリPEも PICerFT.exe と同じディレクトリに配置してください。
- FTDIドライバのインストールのみ必要です。
- 別途解説ページを用意しましたのでご覧ください。
- Ver 6.7からFTDIチップの内部設定とFTDIドライバの設定は自動化したので不要です。つまりFT_Progは不要です。
- 初回だけ、Connectボタンを押すとReconnect USB cable!と表示しますので、USBケーブルを再接続してください。
Version date 備考 8.03 2024-10-13 デバイス対応(AVR-DU) 8.02 2024-07-13 ハードのリビジョン選択追加、バグ修正(12F609/12F615/12F617/16F610/16F616/12F752/16F716) 8.01 2024-04-18 表示修正、ファイル出力修正 8.00 2024-04-14 UPDI HVA対応、デバイス対応(16F131xx) 7.94 2024-03-28 バグ修正(ログ機能) 7.93 2024-02-08 デバイス対応(16F171xx, 16F180xx, 16F181xx) 7.92 2024-02-07 デバイス対応(18FxxQ40, 18FxxQ41, 18FxxQ71, 18FxxQ20) 7.91 2024-02-01 バグ修正(18FxxQxx) 7.9 2024-01-13 デバイス対応(AVR-DA,AVR-DB,AVR-DD,AVR-EA,AVR-EB) 7.8 2023-07-15 デバイス対応(ATtiny828,441,841,1634)、バグ修正(16F1933)、レジストリ変更 7.7 2023-03-13 デバイス対応(16F152xx, tinyAVR-2)、FUSE字句解析 7.6b 2022-11-08 ログ機能追加 7.6a 2022-01-20 表示内容の整理 7.6 2021-10-02 デバイス対応(18FxxQxx) 7.5 2021-05-05 デバイス対応(tinyAVR-0, tinyAVR-1, megaAVR-0) 7.4 2021-04-24 UPDI対応 7.3a 2021-03-18 バグ修正(12F1501) 7.3 2021-03-10 ATMELのEEPROM読み出しを$PICer$.eepに分離 7.2 2019-01-15 デバイス対応(18FxxK40, 18FxxK42, 18FxxK83) 7.1 2018-03-14 デバイス対応(16F177x, 16F184xx, 16F191xx) 7.0 2017-05-16 デバイス対応(16F188xx, 16F153xx)、新書き込み方式対応のため大改修 6.9 2016-05-01 デバイス対応(16F707, 16F753) 6.8 2015-09-01 新デバイス対応(16F157x, 16F176x, 16F183xx) 6.7 2014-11-30 FTDIチップ内部の初期設定を自動化 6.6 2014-09-08 新デバイス対応(24FJxxMC, 33FJxxGS1/GP1/MC1, 24EPxxGU, 33EPxxMU) 6.5 2014-09-02 新デバイス対応(16LF155x, 16F161x, 16F171x, 24FxxKL/KM) 6.4 2014-08-29 拡張ICSPのタイミング調整、その他修正 6.3 2014-03-15 デバイス対応(16F170x)、デバイス対応(18FxxJ94) 6.2 2013-03-04 新DeviceID対応、デバイス対応(18FxxK50) 6.1 2013-01-13 バグ修正(ATmega328) 6.0 2012-08-15 デバイス対応(dsPIC33E/PIC24E) 5.9a 2012-06-06 atmel.cfgのコメントを拡張 5.9 2012-03-15 新デバイス対応(PIC16F145x,PIC16F178x) 5.8 2012-02-28 バグ修正(PIC12F1840)、デバイス対応(10F320,10F322) 5.7 2011-11-04 バグ修正(PIC16F1825) 5.6 2011-08-16 PIC18FのEEPROM書き込みバグ修正 5.5 2011-02-10 新デバイス対応(ATtiny,ATmega) 5.4 2010-09-20 ドラッグアンドドロップ機能追加、プラグアンドプレイ対応 5.3 2010-09-06 新デバイス対応(PIC16F15xx) 5.2 2010-07-03 新デバイス対応(PIC24FJxxxDAxxx) 5.1 2010-03-30 Windows 7での動作不良修正 5.0 2010-03-14 リリース
- あらためてFT232Rの優秀さ、最適な選択だったことがわかります。
- IOを3.3V/5V(ロジックレベル)で操作できます。これはPICにとって重要です。
- さらに高速なBitBangモードを備えています。1Mbpsの速度です。
- UART機能で、UPDIにも対応できました。
- FT245RはBitBangモードを搭載していますが、UARTがありません。
- FT2232DはFT232とFT245を組み合わせたようです。AE-FT2232モジュールは3V3端子を省略しているため、そのままでは3.3V対応できません。
- FT232Hは3.3V(ロジックレベル)です。将来PICとAVRをすべて3.3Vに限定してよいなら考えます。
- 書き込み時に5V限定のPICがあります。正しく書き込みできなかったり、消去できなかったりします。
- FT231XはFT232Rの3.3V版(ロジックレベル)です。
FT232R FT245R FT2232D FT231X FT232H USB 2.0 Full Speed(12Mbps) USB 2.0 Full Speed(12Mbps) USB 2.0 Full Speed(12Mbps) USB 2.0 Full Speed(12Mbps) USB 2.0 Hi Speed(480Mbps) IO電圧範囲1.8から5V IO電圧範囲1.8から5V IO電圧範囲1.8から5V IO電圧範囲1.8から3.3V IO電圧範囲1.8から3.3V UART 3Mbpsの通信速度 FIFO 1Mbyteの通信速度 UART 3Mbpsの通信速度
FIFO 1Mbyteの通信速度UART 3Mbpsの通信速度 UART 12Mbpsの通信速度 BitBang 1Mbpsの通信速度 BitBang 1Mbpsの通信速度 BitBang 1Mbpsの通信速度 BitBang 1Mbpsの通信速度 BitBang
- USB変換としてMicrochipもあります。
- IO電圧範囲3.3Vから5Vなので問題ありません。
- 問題はGPIOです。通信速度が極端に遅いことがわかりました。BitBangの代用になりません。
MCP2221A MCP2210 USB 2.0 Full Speed(12Mbps) USB 2.0 Full Speed(12Mbps) IO電圧範囲3.3から5V IO電圧範囲3.3から5V UART 460kbpsの通信速度
I2C 400kbpsの通信速度SPI 12Mbpsの通信速度 GPIO GPIO
以下は開発時のメモです。
FT232RのSynchronous Bit Bang (同期)モードの実際の動きです。 クロックは Baud rate 設定の 16 倍となります。計算上は以下の通りです。
- FTDIチップの基礎動作の把握に時間がかかる。
- 特にFT232RのBit Bang Mode動作を把握しなければならない。
- FTDIドライバの動作を把握しなければならない。
- 書き込みプログラムをFTDIドライバ用に書き換えなければならない。
- FTDIからの情報では不足しており、実際に動きを確認しながらの開発となる。
ところが実際には1Mbps程度(1us)を境に制限を受け、計算と実際が食い違います。これはFT232Rの仕様によります。
FT232RはPCとUSBのFull Speed(12Mbps)で通信するため、 当然のことながら、FT232Rの出力が12Mbpsを超えることはありません。
FT232Rの処理能力は1Mbpsまでは設定通りに動作しますが、それ以上は2Mbps,3Mbpsの2つを例外的に設定できます。
これで辻褄があいました。
High Speed(480Mbps)対応のFT232Hが発売されましたが、Synchronus Bit Bangモードの基準クロックは12Mbpsであり、FT232Rの4倍であることがわかりました。
書き込み待ち時間があるため、このままFT232Hに置き換えても劇的に改善されないことがわかりました。
Synchronous 245 parallel FIFO mode に書き換えないと40Mbpsになりません。
もっともFT232HのIOは5V Tolerantであるものの5V出力ができません。回路を見直す必要もあります。
いずれにしても、FT232Rのハードウェア的にはこれが性能限界という見極めがつきました。
(Baud rate = 460800)最小パルスは1.1us=0.91Mbps
Baud rate 計算上のパルス 実際のパルス 9600 9600x16=6.51us 6.43us 19200 19200x16=3.26us 3.28us 38400 38400x16=1.63us 3.2us 57600 57600x16=1.09us 1.14us 115200 115200x16=0.542us 1.15us 230400 230400x16=0.271us 1.1us 460800 460800x16=0.136us 1.1us 921600 921600x16=0.0678us 0.72us 1843200 1843200x16=0.0339us 0.52us
(Baud rate = 921600)最小パルスは0.72us=1.39Mbps
(Baud rate = 1843200)最小パルスは0.52us=1.92Mbps
全エリアを書き込む場合の時間(EEPROM書き込み、Verifyを含む)を計測してみました。PCの性能にもよるため、あくまで参考データです。©2008-2025 All rights reserved by Einstein.
通常は部分書き込みをするため(不要な部分を書き込まない)、これは最悪ケースです。通常はこれ以下の時間で書き込みを完了します。
dsPIC/PIC24ではEnhanced ICSPに対応しました。例によって、microchipの書き込み仕様のままでは動作しません。
少しおまじないが必要でした。まだ、dsPIC30F SMPS(dsPIC30F1010,2020,2023)のみうまく動作しません。
Enhanced ICSPではExecutive Programを事前にStandard ICSPで書き込むため、余分に20から30秒必要です。
(Windows Vista Core 2 T5500 1.66GHz)
PIC Kwords sec 10F206 0.5 4 12F509 1 7 12F629 1 13 12F683 2 11 16F57 2 8 16F628 2 ? 16F628A 2 17 16F648A 4 43 16F688 4? 18 16F76 8 40 16F77 8 40 16F84A 1 16 16F88 4 17 16F819 2 9 16F877 8 1:07 16F877A 8 26 18F252 16 1:36 18F258 16 1:36 18F452 16 1:37 18F458 16 1:37 18F2320 4 29 18F2550 16 1:06 18F4320 4 29 18F4520 16 1:05 18F4550 16 1:06 18F8722 64 ?
dsPIC(Standard ICSP) Kwords sec dsPIC30F1010 2 1:04 dsPIC30F2020 4 2:08 dsPIC30F2011 4 2:08 dsPIC30F2012 4 2:08 dsPIC30F3012 8 4:26 dsPIC30F3013 8 4:30 dsPIC30F4012 16 8:42 PIC24FJ32GA002 11 5:41 PIC24FJ64GA002 22 11:09
dsPIC(Enhanced ICSP) Kwords sec dsPIC30F1010 2 -:-- dsPIC30F2020 4 -:-- dsPIC30F2011 4 0:33 dsPIC30F2012 4 0:33 dsPIC30F3012 8 0:52 dsPIC30F3013 8 0:52 dsPIC30F4012 16 1:19 PIC24FJ32GA002 11 1:05 PIC24FJ64GA002 22 1:35
AVR Kwords sec AT90S1200 1 0:20 AT90S2313 2 0:39 AT90S2323 2 0:39 AT90S4414 4 1:16 AT90S4433 4 1:17 AT90S8515 8 2:37 AT90S8535 8 2:35 ATtiny13 1 0:12 ATtiny26 2 0:25 ATtiny2313 2 0:25 ATmega8 8 1:36 ATmega48 4 0:49 ATmega64 64 ? ATmega88 8 1:37 ATmega128 128 ? ATmega168 16 3:00 ATmega664P 64 11:59