mpw5icsp 仕切り直しだ
PIC18F14K50を使ってICSP専用のPICライタを作成します。 ソケット対応版は、ピンに余裕があるPIC18F25K50で作ろうと思います。
初期仕様は、少し無理してPIC18F14K50にてソケット対応したのですが 横槍が入って中断しました。 基本構成は問題ないので、先ず簡単なICSP専用を作って動作確認してからソケット版を作ることになりました。
仕様・構成
mpw5icspは、マイクロチップ社製のフラッシュマイクロコントローラにプログラムを書き込む開発プログラマです。 +5V系/+3.3V系のPICに書き込むように設計してあります。 また、ICSPコネクタをPickitのピン配列に合わせることにします。
回路的にはmmpの後継相当に成りますが、MPW5の動作検証も兼ねています。
番号 | 項 目 | 内 容 | 備 考 |
---|---|---|---|
1 | 制御用PIC | PIC18F14K50-I/P | USB内蔵/自己書換え機能含む |
2 | VDD Target | +5V(VBUS電圧)/+3.3V(レギュレータ) 25mA | 自動切り替え |
3 | VPP/MCRL | +12.5V(VDD=5V)/+9.0V(VDD=3.3V) 2mA | DC/DC生成 |
4 | USB | 2.0対応 Full Speed バスパワー(100mA) | HID対応(ドライバ不要) |
5 | 対応デバイス | PIC10F/12F16F, PIC18F | その他は未定 |
mpw5icsp 仕様
回路図
回路説明
PIC18F14K50
USB内蔵の20ピンで価格も安いです。 しかも3V書き込み仕様なので、MPW3では簡単には書込できません。 まぁPickit2も使っているので書込できない訳ではありませんがね。
内部構造は、PIC16F19xxに近く新型PICに分類されるのかな? その他の特徴は、他ページでも記しているので割愛します。
回路電源
今回の電源は、自電源を+5.0Vと+3.3Vに切り換えることで、新型のPIC(+3.3V系)に対応します。 ターゲットの電圧は、+5.0Vと+3.3Vに固定されますが十分でしょう。
レギュレータは、TA48M033F(東芝)を使いました。 出力にダイオードを入れると0.2~0.4V低下して少し使いずらいのでトランジスタによる切り替えにします。
VPP電源
高圧書き込みを行なうために、+9Vや+12Vの電圧が必要です。 今まで通りDCDCを使います。
MPW~MPW3/mmpまでは、VPPを+12.5V固定にしていました。 その為、VPP電圧監視をコンパレータで行なっています。 ADCに比べ高速に判断できるのですが、MPW5は+9V系と+12V系を作らないと行けないのでADCを使う予定にしています。
DCDCの発振周波数ですが、MPW3までは100kHz越えてPFM/PWM兼用使用していました。 無制御電圧で30V越えて、VPPが無負荷の時はパルスを抜いてPFM制御しないと行けませんでした。
MPW5は、約50kHzに落としてPWM制御のみにする予定です。 シュミレーションの結果は、無制御/無負荷で約18V 無制御/6kΩで約14V 出力できます。 PWMの制御範囲内で、7V~13V(負荷5mAにて)制御できそうです。
mpw5icspのDCDCでは、インダクタ470uH/130mAで昇圧用の引き込み電流値を約10mAにしてます。 13V/2mAは大丈夫みたいです。 ただVPP出力トランジスタの抵抗値を間違えて予定通りの電圧が出なくて少し焦りました。 (2013/09/11)
ICSP端子
MPW3設計時点では、Pickitが公開されてなくてICSP端子が独自でしたが、今回はPickitと共通になります。
USB
PIC18F14K50の内蔵を使います。 ブートローダも付ける予定です。 ROM容量に余裕が有れば、ファームウェアの更新機能を付けられるかも。
クロック(Fosc)は、48MHzで行きます。 ディレータイミングは、割り込みが使えるのでプログラムにも余裕がありかな? (と言ったら『USB-シリアル変換付けられるね』って言われてしまった。検討はしますけど。)
部品表 (2013/10/26)
項 | ロケーション | 部品名 | 型格 | メーカ | 員数 | 参考価格 | 備考 |
---|---|---|---|---|---|---|---|
1 | U1 | マイコン | PIC18F14K50-I/P | Microchip | 1 | AK @170 | USB内蔵 |
2 | U2 | レギュレータ | TA48M033F | 東芝 | 1 | AK @100 | 低損失3.3V |
3 | |||||||
4 | Q1 | トランジスタ | 2SC2655 | 東芝 | 1 | @30 | (代替BC337-25) |
5 | Q2,3 | トランジスタ | 2SA1020 | 東芝 | 2 | AK @5 | (代替BC327-25) |
6 | Q4,5 | トランジスタ | 2SA1015 | 東芝 | 2 | AK @5 | (代替2N3906) |
7 | Q6-8 | トランジスタ | 2SC1815 | 東芝 | 3 | AK @5 | (代替2N3904) |
8 | |||||||
9 | D1,2 | 小信号用 | 1N4148 | 各社 | 2 | AK @2 | |
10 | D3 | SBD | 11DQ04 | NI | 1 | @30 | (代替1S4) |
11 | D4~6 | SBD | BAT43 | 各社 | 3 | AK @20 | |
12 | LED1 | 発光ダイオード | 緑色等 | 各社 | 1 | AK @20 | Φ3 |
13 | LED2 | 発光ダイオード | 黄色等 | 各社 | 1 | AK @20 | Φ3 |
14 | |||||||
15 | Y1 | セラミック発振子 | 12MHz | 各社 | 1 | AK @20 | |
16 | |||||||
17 | R1~4 | カーボン抵抗 | 33Ω 1/6W 5% | 各社 | 4 | AK @1 | |
18 | R5~9 | カーボン抵抗 | 4.7kΩ 1/6W 5% | 各社 | 5 | AK @1 | |
19 | R10~17 | カーボン抵抗 | 10kΩ 1/6W 5% | 各社 | 8 | AK @1 | |
20 | R18 | カーボン抵抗 | 47kΩ 1/6W 5% | 各社 | 1 | AK @1 | |
21 | R19 | カーボン抵抗 | 8.2kΩ 1/6W 5% | 各社 | 1 | AK @1 | |
22 | R20 | カーボン抵抗 | 47kΩ 1/6W 5% | 各社 | 1 | AK @1 | (2013/09/11 修正) |
23 | R21~23 | カーボン抵抗 | 2.2kΩ 1/6W 5% | 各社 | 4 | AK @1 | |
24 | R24~26 | カーボン抵抗 | 1kΩ 1/6W 5% | 各社 | 3 | AK @1 | |
25 | R27 | カーボン抵抗 | 100Ω 1/6W 5% | 各社 | 1 | AK @1 | |
26 | R28,29 | カーボン抵抗 | 560Ω 1/6W 5% | 各社 | 2 | AK @1 | LED電流制限用 |
27 | |||||||
28 | L1 | インダクタ | 470uH 135mA | 各社 | 1 | @50 | DCDC用 パワー等 |
29 | |||||||
30 | C1,2 | 積層セラミック | RDEC71E106K2K1C03 | 村田 | 2 | AK @30 | DCDC用 |
31 | C3 | 積層セラミック | 2200pF 50V | 各社 | 1 | AK @15 | DCDC検出用 |
32 | C5~7 | 積層セラミック | 0.1μF 50V | 各社 | 3 | AK @10 | パスコン |
33 | C9,10 | アルミ電解 | 47μF 25V | 各社 | 2 | AK @10 | 電源用 |
34 | C11 | 積層セラミック | 0.33μF 50V | 各社 | 1 | AK @10 | VUSB用(1μF可) |
35 | C4,C8 | 積層セラミック | (0~220pF 50V) | 各社 | 2 | (2013/10/26 修正) | |
36 | |||||||
37 | PS1 | ポリスイッチ | RXEF010 | タイコ | 1 | AK @30 | 100mA用 |
38 | |||||||
39 | CN1 | USB-Bコネクタ | 各社 | 1 | AK @50 | ||
40 | CN2 | ICSPコネクタ | ヘッダ | 各社 | 1 | AK @6 | 6ピン |
41 | SW1 | タクトスイッチ | □6.3 | 各社 | 1 | AK @10 | |
42 | J1 | ICSPヘッダ | ヘッダ | 各社 | 1 | AK @5 | 5ピン |
43 | 基板 | 片面ガラスCタイプ | [P-00517] 72x48mm (FR-4) | 各社 | 1 | AK @60 | |
44 | 配線 | 錫メッキ線 | 適量 | 各社 | 1 | ||
45 | 配線 | ジュフロンETFE 電線 | AWG30(0.28mm) 適量 | 潤工社 | 1 | ||
46 | 合計 | 約\1,000 | ソフト費含まず |
mpw5icsp 部品表 2013/08/12 単価調べ AK=秋月電商 / 他調べ
代替のトランジスタは、ピン配置が違います。実装には気を付けてください。
R20の抵抗値を間違えていました。2.2kΩ->47kΩに変更します。(2013/09/11)
書き込み不良対応 (2013/10/26)
PIC18FxxJxxのVPPの立ち上がり時間が1uS以内です。 電源のパスコンとしてC4(0.1uF)入れていたのですが、この為低圧VPPは、約50mSの立ち上がりでした。
改善策として、C4を削除または220pF以下にします。 これにより低圧VPPの立ち上がりは、1uS以内に納まります。(ICSPの配線は20cm以下の時) それに伴い、VTGのパスコン(C8)も削除または220pF以下にします。
(シミュレーションで1000pFで約1uSの立ち上がりになりました。 ICSPの配線長も影響しますので、波形を見てコンデンサ容量決めた方が良いかもしれません。 波形を見られないなら削除で構わないと思います。)
基 板 (2013/08/17)
2013/08/14の部品配置で10kと1kのが逆でした。(2カ所)後は多分大丈夫かな。
秋月電子通商の72×48mm片面ユニバーサル基板に実装します。 今回は、なんとパソコン上で配置決めて配線考えてから作ることにしました。
通常、私の場合大物の位置を決めたらいきなり組み立てていくのですが、 基板を起こす予定が無いのでユニバーサルにどの様に作るか残していこうかと思ってます。
電源関連と制御部分を裏面のパターン配線で繋いでいます。 PICと制御部分接続を布線にしています。 配線2図では、曲線で繋いでいますがある程度長さで綺麗に配線していきます。
配線1の線色
- 黒 - GND
- 赤 - VBUS及び+3.3V
- 橙 - VDD
- 金 - VPP
- 桃 - VTG
- 白 - 信号線
ソフトウェア 2014/11/07
Ver 0.80aを公開します。 デバイスリストに誤りが有りそれのみ修正しています。 0.80をダウンロードしている人は、デバイスリストだけダウンすることもできます。
Ver 0.80を公開します。 一応PICの書き換えできる程度で、「実用できるかな?」と言う状態です。 後コンフィグビット操作やハードウェアテスト等の機能を追加かな?
PIC10F/12F/16F/18Fのデバイスリストをほぼ作成しました。 まだ間違えが有ると思いますが、何とか使えると思います。
PIC16F系ベースラインを修正して書き込めるようにしました。 勘違いして、読み出し手順を間違っていたのでかなり奇怪しかったようです。
PIC18FxxJxx の低圧VPPにハード的問題があり修正しています。(2013/10/26)
その他のPICは、今のところ実装予定はありません。 要望が有れば考えるということで。
ダウンロード
モバイル PIC ライター 5(ICSP) 公開版
[ mpw5icsp Version 0.8 (mpw5icsp_080a.zip) ]
PIC18F14K50用ブートローダーとmpw5icspファームウェアのhexファイル及び Windows用アプリケーションが一式入れてあります。
最新デバイスリスト
[ mpw5icsp用デバイスリスト Version 0.81 (PicDeviceList5_081.zip) ]
PIC書き込み
既にPIC18F14K50にブートローダーが書き込まれている場合は、 mpw5icsp.exeを起動して[Tool]から[to Bootloder]を選択しHID Booloaderを起動します。
PIC18F14K50にブートローダー書き込まれていない場合は、他のライタでHID Booloaderを書き込みます。
次に、mpw5icspファームウェアは、USBを通じて「HID Booloader」で書き込みます。
使い方
Pickit2ライクな使い方をします。
ICSP接続されたターゲットデバイスを用意します。 確実に接続してください。
最初に[デバイスファミリ]を選択して[選択]ボタンをターゲットデバイスを選びます。 (ベースラインはコンポポックスから選びます。)
次に、書き込むhexファイルを選んで、[プログラム]ボタンを押して書き込みます。
難しくはないと思います。
その他
Window側のプログラムは、mpw5icsp専用でそれ以前のMPWシリーズは接続できません。 また、ハードウェアが正常に応答しないと各機能は動きません。
現在USBのベンダーID/プロダクトIDはマイクロチップ社のものを使用しています。 ブートローダーは、まあ良しとしてライター側のベンダーID/プロダクトIDは換えたいかも。
プログラムコードの表示機能は付いていません。 必要が有るか意見が分かれるところですが…。 ただ読み出したプログラムコードを書き出す機能は、要るかな?
何か不具合が有れば連絡(掲示板かメールにて)頂けると助かります。
動作デバイス
下記のデバイスの書き込み情報を生成しています。
PIC10F
- PIC10F200/ 202/ 204/ 206
- PIC10F220/ 222
- PIC10(L)F320/ 322
PIC12F
- PIC12F508/ 509
- PIC12F510
- PIC12F519
- PIC12F609/HV609
- PIC12F617
- PIC12F629/675
- PIC12F635/683
- PIC12F752/ HV752
- PIC12(L)F1501
- PIC12(L)F1822
- PIC12(L)F1840
PIC16F
- PIC16F54/ 57/ 59
- PIC16F72
- PIC16F73/ 74/76/77
- PIC16F83/ 84
- PIC16F84A
- PIC16F87/ 88
- PIC16F505/ 506
- PIC16F526/ 527
- PIC16F570
- PIC16F610/ HV610
- PIC16F616/ HV616
- PIC16F627/ 628
- PIC16F627A/ 628A/ 648A
- PIC16F630/ 676
- PIC16F631/ 677/ 685/ 687/ 689/ 690
- PIC16F636(639)
- PIC16F684
- PIC16F688
- PIC16F716
- PIC16(L)F720/ 721
- PIC16(L)F722/ 723/ 724/ 726/ 727
- PIC16(L)F722A/ 723A
- PIC16F737/ 747/ 767/ 777
- PIC16F753/ HV753
- PIC16F785/ HV785
- PIC16F818/ 819
- PIC16F870/ 871/ 872
- PIC16F873/ 874/ 876/ 877
- PIC16F873A/ 874A/ 876A/ 877A
- PIC16F882/ 883/ 884/ 886/ 887
- PIC16F913/ 914/ 916/ 917/ 946
- PIC16(L)F1454/ 1455/ 1459
- PIC16(L)F1503/ 1507/ 1508/ 1509
- PIC16(L)F1512/ 1513
- PIC16(L)F1516/ 1517/ 1518/ 1519
- PIC16(L)F1526/ 1527
- PIC16(L)F1703/ 1704/ 1705/ 1707/ 1708/ 1709
- PIC16(L)F1782/ 1783/ 1784/ 1786/ 1787/ 1788/ 1789
- PIC16(L)F1823/ 1824/ 1825/ 1826/ 1827/ 1828/ 1289
- PIC16(L)F1933/ 1934/ 1936/ 1937/ 1938/ 1939
- PIC16(L)F1946/ 1947
- PIC16LF1902/ 1903/ 1904/ 1906/ 1907
PIC18F
- PIC18F242/ 252/ 442/ 452
- PIC18F248/ 258/ 448/ 458
- PIC18F1220/ 1320/ 2220/ 2320/ 4220/ 4320
- PIC18F1230/ 1320/ 1330-ICD
- PIC18F2221/ 2321/ 4221/ 4321
- PIC18F2331/ 2431/ 4331/ 4431
- PIC18F2410/ 2510/ 2515/ 2610/ 4410/ 4510/ 4515/ 4610
- PIC18F2420/ 2520/ 4420/ 4520
- PIC18F2423/ 2523/ 4423/ 4523
- PIC18F2450/ 4450
- PIC18F2455/ 2550/ 4455/ 4550
- PIC18F2458/ 2553/ 4458/ 4553
- PIC18F2480/ 2580/ 4480/ 4580
- PIC18F2525/ 2620/ 4525/ 4620
- PIC18F2585/ 2680/ 4585/ 4680
- PIC18F2682/ 2685/ 4682/ 4685
- PIC18F6310/ 6410/ 8310/ 8410
- PIC18F6390/ 6490/ 8390/ 8490
- PIC18F6393/ 6493/ 8393/ 8493
- PIC18F6527/ 6622/ 6627/ 6628/ 6722/ 6723/ 8527/ 8622/ 8627/ 8628/ 8722/ 8723
1. PIC18F6520/ 6620/ 6720/ 8520/ 8620/ 8720 は未実装
PIC18FxxJxx
- PIC18(L)F24J10/ 25J10/ 44J10/ 45J10
- PIC18(L)F24J11/ 25J11/ 26J11/ 44J11/ 45J11/ 46J11
- PIC18(L)F26J13/ 27J13/ 46J13/ 47J13
- PIC18(L)F24J50/ 25J50/ 26J50/ 44J50/ 45J50/ 46J50
- PIC18(L)F26J53/ 27J53/ 46J53/ 47J53
- PIC18F65J10/ 65J15/ 66J10/ 66J15/ 67J10 /85J10 /85J15 /86J10/ 86J15/ 87J10
- PIC18F63J11/ 64J11/ 65J11/ 83J11/ 84J11/ 85J11
- PIC18F66J11/ 66J16/ 67J11/ 86J11/ 86J16/ 87J11
- PIC18F65J50/ 66J50/ 66J55/ 67J50/ 85J50/ 86J50/ 86J55/ 87J50
- PIC18F63J90/ 64J90/ 65J90/ 83J90/ 84J90/ 85J90
- PIC18F66J90/ 67J90/ 86J90/ 87J90
- PIC18F66J93(86J72)/ 67J93(87J72)/ 86J93/ 87J93
- PIC18F66J60/ 66J65/ 67J60/ 86J60/ 86J65/ 87J60/ 96J60/ 96J65/ 97J60
- PIC18F65J94/ 66J94/ 66J99/ 67J94/ 85J94/ 86J94/ 86J99/ 87J94/ 95J94/ 96J94/ 96J99/ 97J94
PIC18FxxKxx
- PIC18(L)F13K22/ 14K22
- PIC18(L)F13K50/ 14K50
- PIC18F23K20/ 24K20/ 25K20/ 26K20/ 43K20/ 44K20/ 45K20/ 46K20
- PIC18(L)F23K22/ 24K22/ 25K22/ 26K22/ 43K22/ 44K22/ 45K22/ 46K22
- PIC18(L)F24K50/ 25K50/ 45K50
2. PIC18F6XKXX/8XKXX FAMILY は未実装
3. PIC18FXXK80 FAMILY は未実装
青色は、動作確認済み。
『Pickit3』との違い
Pickit2は、最新の1.8V動作デバイスのデバックができません。 Vdd Targetを2.5Vまでしか下げられないからです。 でも、書き込み器として使うなら最新のPICでも書き込みができます。 3.3Vか5Vあれば、1.8V動作デバイスに書き込めます。 できる筈ですが、デバイスリストが更新されない為使えません。 (もうサポート対象外なのかな?)
そこでPickit3です。 基本的には、Pickit2の低圧/デバッグ機能拡張版です。 書き込み機能はPickit2とほぼ同等です。
mpw5icspと比べてもしたか無いのですが、一応
項 | 内 容 | Pickit3 | mpw5icsp | 備 考 |
---|---|---|---|---|
1 | VTG電圧範囲 | 1.8~5V | 3.3V,5V | mpw5icspは切り替え |
2 | VPP電圧範囲 | 1.8~14V | 3.3~13V | |
3 | CPU | PIC24FJ256GB106-I/PT | PIC18F45K50-I/P | PIC24Fは3.3V単一動作 |
4 | インターフェース | USB2.0 FULL SPEED | USB2.0 FULL SPEED | CPU内蔵 |
5 | デバッカ機能 | エミュレーション内蔵PICに対応 | 未対応 | |
6 | ICSP | 6pin (PGM/LVP対応) | 6pin (PGM/LVP非対応) | |
7 | 拡張ICSP | 対応 | 未非対応 | PIC24FとかdsPIC用※1 |
8 | ターゲット接続IC | 74LVC1T45 | PIC18F45K50-I/P (直結) | Pickit3は電流保護付き |
9 | 電圧リファレンス | MCP1525 | PIC18F45K50-I/P (内蔵) | |
10 | VTG電圧生成 | 降圧可変reg (CPU制御) | 3端子reg (CPU切り替え) | |
11 | VPP電圧生成 | 昇圧型DCDC (CPU制御) | 昇圧型DCDC (CPU制御) | 機能は同等 |
12 | 書き込み方法 | 高圧/低圧書き込み | 高圧書き込みのみ対応※2 | |
13 | 対応PIC | 10F/12F/16F,18F他多数 | 10F/12F/16F,18F |