FC2ブログ

名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

PICプログラマー(18F14K50)のファームウェアのMPLABXへの移行

プログラマー外観

前作の USB接続PICプログラマー は制御マイコンに18F14K50を使っているが、開発開発環境が旧MPLABで、アプリケーションライブラリも古いものを使っている。それで、今回はMPLABXとMLAへ開発環境の移行を行った。

開発環境の移行のみで、プログラマーとしての機能は変わらない。

【新環境】
・MPLABX Ver4.10
・XC8 Ver1.45
・MLA v2017_03_06

【ダウンロード】
詳細な製作資料とファームウェアおよびPC側制御ソフトの開発プロジェクトは ここから ダウンロードできる。

ディレクトリ 「ISP」 はPC側ソフトのGUIを実現するVBのWindowsアプリケーション
VBプロジェクトは 「ISP\ISP.sln」
カレントディレクトリを 「ISP\bin」 に置いて起動すればよい。

ディレクトリ 「ISPdll」 はデバイスのプログラミング仕様を実現するC言語のDLL
VCプロジェクトは 「ISPdll\ISPdll.sln」

ディレクトリ 「ISPpic18F14K50」 は今回の新環境へ移行したプログラマー側のファームウェア
MPLABXプロジェクトは 「ISPpic18F14k50\apps\usb\device\cdc_basic\firmware\ISPpic18F14K50.X」
USBドライバー組み込みに必要な inf と cat は 「ISPpic18F14k50\Windows」 にある。
スポンサーサイト



  1. 2018/04/29(日) 09:34:56|
  2. プログラマー
  3. | コメント:0

PICプログラマーの製作(16F1459)

プログラマー外観

前作の USB接続PICプログラマー は制御マイコンに18F14K50を使っているが、それが値上がりしているのと代わりに16F1459が廉価に売り出されたので制御マイコンを16F1459に替えた。16F1459は内部オシレータの精度が向上していて外部のクロック発振子が不要なので、更に安く作れる。

回路は18F14K50を使ったものを踏襲し、以下を変更した。

・外部のクロック発振子を無くした。

・USBのステータス表示用のLEDを1個にした。これは最新のMLAがそのように変わったので、それに合わせた。

上記の回路の変更をしなくても、18F14K50を今回の16F1459に差し替えても構わない。実は僕もそのようにして使っているので、記事トップに掲示している外観画像は回路の変更をしていないものである。


【回路図】
プログラマー回路図(16F1459)

【ダウンロード】
詳細な製作資料とファームおよびPC側制御ソフトの開発プロジェクトは ここから ダウンロードできる。

ディレクトリ 「ISP」 はPC側ソフトのGUIを実現するVBのWindowsアプリケーション
VBプロジェクトは 「ISP\ISP.sln」
カレントディレクトリを 「ISP\bin」 に置いて起動すればよい。

ディレクトリ 「ISPdll」 はデバイスのプログラミング仕様を実現するC言語のDLL
VCプロジェクトは 「ISPdll\ISPdll.sln」

ディレクトリ 「ISPpic16F1459」 はプログラマー側のファームウェア
MPLABXプロジェクトは 「ISPpic16F1459\apps\usb\device\cdc_basic\firmware\ISPpic16F1459.X」
USBドライバー組み込みに必要な inf と cat は 「ISPpic16F1459\Windows」 にある。
  1. 2018/04/29(日) 09:30:45|
  2. プログラマー
  3. | コメント:0

PICプログラマーの機能改善 (S-24CM1C AT24C1024B をサポート)

PICプログラマー
プログラマー外観
PICプログラマーと呼んでいるが、シリアルEEPROMやAVRもサポートしている。
当初の製作記事は ここ
その後の改善記事は、「PICプログラマー」 でブログ内を検索。


【今回の改善事項】

I2CインタフェースのシリアルEEPROM 「S-24CM1C」 と 「AT24C1024B」 をサポートした。

また、I2CインタフェースのシリアルEEPROMの書込み時間を短縮した。
従来は、32バイト単位での書き込みをしていたが、256バイトのページ書き込みにした。
1Mビット分のフル書き込み/照合で41秒となった。

【ソケットアダプタ】
ソケットアダプタの結線は以下の通りで、24FCxxxなどと同じ。
PICプログラマーI2CシリアルEEPROMソケットアダプタ

【サポートデバイス一覧】

10F200/204/220
10F202/206/222
10F320
10LF320
10F322
10LF322
12F508
12F509/510/16F506
16F54
16F57/59
12F609/615/16F610
12HV609/615/16HV610
12F617/16F616
16HV616
16F627/LF627
16F628/LF628
16F627A/LF627A
16F628A/LF628A
16F648A/LF648A
12F629/675/16F630/676
16F631
12F635
16F636/639
12F683/16F684/677/687
16F685/688/689/690
16C711
16F716
16F785
16HV785
16F818
16F819
16F84A
16F87/88
16F870/871/872
16F873/874
16F876/877
16F873A/874A
16F876A/877A
16F882
16F883/884
16F886/887
16F913/914
16F916/917/946
16F1454/1455/1459
16LF1454/1455/1459
12F1501
12LF1501
16F1503/7
16LF1503/7
16F1508
16LF1508
16F1509
16LF1509
16F1571
16LF1571
16F1572
16LF1572
16F1574/8
16LF1574/8
16F1575/9
16LF1575/9
12F1612/16F1613
12LF1612/16LF1613
16F1614/1618
16LF1614/1618
16F1615/1619
16LF1615/1619
16F1703/1707
16LF1703/1707
16F1704/1708/1713
16LF1704/1708/1713
16F1705/1709/1716/1717
16LF1705/1709/1716/1717
16F1718/1719
16LF1718/1719
16F1782
16LF1782
16F1783/1784
16LF1783/1784
16F1786/1787
16LF1786/1787
16F1788/1789
16LF1788/1789
12F1822/16F1823
12LF1822/16LF1823
12F1840/16F1824/1828
12LF1840/16LF1824/1828
16F1825/1829/1847
16LF1825/1829/1847
16F1826
16LF1826
16F1827
16LF1827
16F18313/18323
16LF18313/18323
16F18324/18344
16LF18324/18344
16F18325/18345
16LF18325/18345
16F18326/18346
16LF18326/18346
16F18854
16LF18854
16F18855/18875
16LF18855/18875
16F18856/18876
16LF18856/18876
16F18857/18877
16LF18857/18877
16LF1902
16LF1903/1904
16LF1906/1907
16F1933/1934
16LF1933/1934
16F1936/1937/1946
16LF1936/1937/1946
16F1938/1939/1947
16LF1938/1939/1947
18F1320/2320
18F22x1
18F23x1
18F24x0/24x3/44x0/44x3
18F24x5/24x8/44x5/44x8
18F25x0/25x3/45x0/45x3
18F25x5/45x5
18F26x0/46x0
18F26x2/46x2
18F26x5/46x5
18F13K22
18LF13K22
18F14K22
18LF14K22
18F13K50
18LF13K50
18F14K50
18LF14K50
18F23K20/43K20
18F23K22/43K22
18LF23K22/LF43K22
18F24K20/44K20
18F24K22/44K22
18LF24K22/LF44K22
18F25K20/45K20
18F25K22/45K22
18LF25K22/LF45K22
18F26K20/46K20
18F26K22/46K22
18LF26K22/LF46K22
18F24Jxx/44Jxx
18F25Jxx/45Jxx
18F26Jxx/46Jxx
18F27Jxx/47Jxx
24FJ16GA0xx
24FJ32GA0xx
24FJ64GA0xx
24FJ96GA0xx
24FJ128GA0xx
30F1010
30F2010
30F2011/2012
30F2020/2023
30F301x
30F401x
30F501x
30F6010/0A/2/2A/4/4A/5
30F6011/1A/3/3A
33FJ/24HJ12GP201/202
33FJ32GP/MC202/204
33FJ32GP/MC302/304
33FJ64GP/MCx02/x04
33FJ128GP/MCx02/x04
33FJ256GP/MCx06/x08/x10/A
32MX110/210
32MX120/220
32MX130/230
32MX150/250
24FC32A
24FC64
24FC128
24FC256
24FC512
24FC1025
24FC1026
AT24C1024B  ←今回追加したデバイス
CAT24M01
S-24CM1C  ←今回追加したデバイス
25AA320A
25AA640A
25AA128
25AA256
25AA512
25AA1024
90S1200
90S2313
90S2323
tiny13/13A
tiny13/13A-HV(高電圧シリアルプログラミング)
tiny2313
mega48
mega88
mega168
mega328


【ダウンロード】

PICプログラマーの設計資料とソフトウェアは ここから ダウンロードできる。

PC側の制御ソフトはGUIとプログラマー制御の2つから成る。
①GUIを担うVBプロジェクトは「ISP」、実行ファイルは「ISP\bin\ISP.exe」

②プログラマー制御を担うVCプロジェクトは「ISPdll」、実行ファイルは「ISPdll\Release\ISPdll.dll」

プログラマー側の制御ソフトは
③18F14K50のファームウェアでプロジェクトは「ISPpic18F14K50」、実行ファイルは「ISPpic18F14K50\USB\ISPpic18F14K50\Firmware\ISPpic18F14K50.hex」

今回のバージョンアップは上記の①②③のすべてが更新されているので、PC側の制御ソフトと18F14K50のファームウェアをともに差し替える必要がある。

PC側の制御ソフトは、OSへのインストールは必要なく、任意の1つのフォルダにISP.exeとISPdll.dllをコピーするだけで良い。
VisualStudio2008のランタイムが無いと言われたら、ビルゲイツの指示に従って別途インストールする。

PICプログラマーを始めて導入するときはUSBドライバーの登録が必要である。USBドライバー本体はWindows標準のものを使用する。infファイルとcatファイルは「ISPpic18F14K50\USB\ISPpic18F14K50\inf」にある。

ハードウェアの設計書は「USB接続簡易共用プログラマー設計・回路図・配線図.xls」。
各デバイス毎のソケットアダプタ結線は、シート名「ソケット・・・」を参照。
  1. 2018/04/19(木) 17:08:16|
  2. プログラマー
  3. | コメント:0

USB-シリアル変換器(16F1454)簡易版の製作

「16F1454を使ったUSB-シリアル変換器」 の簡易版を作った。

一般の用途ではシリアルのハードウェアフロー制御は使わないことが多い。また、CTS以外の制御線も殆ど使わない。
それで制御線を外部へ引き出すのをやめて、電源供給の機能も割愛してコンパクトにした。

【概観】
USB-Comエミュレータ(16F1454)簡易版概観

ピンソケットは使わずにTxとRxだけをリード線で引き出した。そのため基板面積はPICマイコンのみの大きさになった。

USB-シリアル変換器はデバグや実験で使うことが多いので、リード線の先端にICクリップを付けている。

信号線とICクリップの色の対応は以下のように覚え易くした。
Txは GOで Green
Rxは BACKで Blue

【回路図】
USB-Comエミュレータ(16F1454)簡易版回路図
空中配線でもよいくらい簡単だ。

【配線図】
USB-Comエミュレータ(16F1454)簡易版配線図
赤色楕円はUSBコードを基板に固定するためのステンレス線を意味し、これはICソケットを付ける前に基板穴に通しておく。

【ピン割り当て】
USB-Comエミュレータ(16F1454)簡易版ピン割り当て

【ファームウェア】
ファームウェアは 「16F1454を使ったUSB-シリアル変換器」 と共通にしている。

「ハードウェアハンドシェイクする」 を選択しているが、CTSを10kΩでプルダウンすることで送信が抑止されることはない。
フロー制御を機能させたいときはRC3ピンをCTSとして接続する。
CTS以外の制御線もピンには出ているので、必要なときは繋ぐことができる。

設計資料と開発プロジェクトは ここから ダウンロードできる。

MLAはディレクトリ階層が深くて、HEXファイルは下記にある。
USB-Com_Emulator_16F1454\apps\usb\device\cdc_serial_emulator\firmware\USBDevice-CDC-SerialEmulator.X\dist\LPCUSBDK_16F1454\production\USBDevice-CDC-SerialEmulator.X.production.hex

PC側のUSBドライバはWindows標準のものを使うので、MLAではUSBドライバーは提供されない。
本器を初めてPCに繋いだときにUSBドライバのインストール画面が現れたら下記のディレクトリを指定する。(Windowsの場合)
USB-Com_Emulator_16F1454\utilities\usb_drivers\mplab_comm\Windows
  1. 2018/04/11(水) 18:45:29|
  2. USB-シリアル変換
  3. | コメント:0

USB-シリアル変換器(16F1454)の製作

前作のUSB-シリアル変換器 は18F14K50を使っている。当時は@170円だったが、現在は値上げされて@220円(2018年秋月)になっている。
また、18F14K50は20ピンだが、USB-シリアル変換器を作るのにピン数はそんなに沢山要らないので、ピン数が少なくてより廉価なデバイスがいい。
こんな不満に応えてくれるデバイスとして16F1454が販売開始されたことは知っていたが、前作のUSB-シリアル変換器 で事足りているので、改めて16F1454で作ることは考えていなかった。

16F1454はUSBモジュールを内蔵したデバイスとしては最も廉価(@130円2018年秋月)だ。しかも、内部オシレータの精度が改善されていて、内部オシレータでUSBが使えるので更に安く作れる。
これからUSB-シリアル変換器を作るのなら 16F1454 をお勧めする。
人に勧めるからには、自分でも動作確認しておかないといけないと思った。ブログネタにもなるし。。。

デバイスが安くても使い難かったら嫌だ、と思われるだろうが、そこはMLA(Microchipアプリケーション用ライブラリ)が用意されていて、USBを全く知らなくてもUSB機器が作れるようになっている。
USB-シリアル変換器ならMLAのデモ用プロジェクトがそのまま使える。

と言うことで、作ったのがこれ。
USB-Comエミュレータ(16F1454)外観1

8×6穴のユニバーサル基板に載せた。
殆どPICとピンソケットの面積で、前作の半分の大きさになった。これなら持ち歩いても荷にならない。

【回路図】
USB-Comエミュレータ(16F1454)回路図
ハードウェアハンドシェイクが有効になっていて、相手からCTSを制御されることを期待している。それが期待できないときのためにCTSを10kΩでプルダウンしている。これによりCTSを繋がなくても、送信が抑止されることはない。

回路実験するときに便利な+5Vと+3.3Vの電源を供給できるようにしている。

GPIO0とGPIO1の機能は現時点では未実装。

【配線図】
USB-Comエミュレータ(16F1454)配線図1
赤色楕円はUSBコードを基板に固定するためのステンレス線を意味し、これはICソケットを付ける前に基板穴に通しておく。

USB-Comエミュレータ(16F1454)配線図2

【ピン割り当て】
PICとピンソケットのピン割り当ては以下の通り
USB-Comエミュレータ(16F1454)ピン割り当て

【ファームウェア】
MLAのデモ用プロジェクトは16F1459用のもので、16F1454で動かすには若干の設定変更が必要になる。
僕が実施した変更は以下の通り。

USB-Comエミュレータ(16F1454)カスタマイズ内容

開発中に気が付いたことで、16F1454はアナログ機能がないのにANSELが存在するということだ。実験してみるとANSELをクリアしておかないとデジタル入力の結果は常に0になる。これはポートピンをデジタル入力から切り離す効用を狙っての仕様だと解釈した。

このファームエアのプロジェクトはデバイスを16F1454で設定しているが、ANSELクリアを書いていて、HEXファイルは16F1454と16F1455のどちらでも正常に動作する。
USB-Comエミュレータ(16F1454)外観2

【ダウンロード】
このUSB-シリアル変換器の設計資料と開発プロジェクトは ここから ダウンロードできる。

MLAはディレクトリ階層が深くて、HEXファイルは下記にある。
USB-Com_Emulator_16F1454\apps\usb\device\cdc_serial_emulator\firmware\USBDevice-CDC-SerialEmulator.X\dist\LPCUSBDK_16F1454\production\USBDevice-CDC-SerialEmulator.X.production.hex

PC側のUSBドライバはWindows標準のものを使うので、MLAではUSBドライバーは提供されない。
本器を初めてPCに繋いだときにUSBドライバのインストール画面が現れたら下記のディレクトリを指定する。(Windowsの場合)
USB-Com_Emulator_16F1454\utilities\usb_drivers\mplab_comm\Windows
  1. 2018/04/03(火) 15:08:33|
  2. USB-シリアル変換
  3. | コメント:0

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

当ブログで公開している技術情報や成果物の複製、改変および再配布はフリーです。読者様のおもちゃ病院活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。なお、公開ファイルは最新版を載せているので、古い記事の内容から変わっている場合があります。

カテゴリ

おもちゃ修理技術 (131)
¦ ・電子オルゴール+音声再生 (53)
¦ ・音声再生・録音再生 (14)
¦ ・2.4GHzラジコン (40)
¦ ・レガシーラジコン (13)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (4)
ツール製作 (35)
¦ ・プログラマー (27)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (5)
修理事例 (157)
¦ ・マイコン換装 (75)
¦ ・電子・電気修理 (59)
¦ ・メカ修理 (23)
製作記事 (5)
PIC開発 (4)
おもちゃ病院 (9)
ドクター研修会 (2)
未分類 (1)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

QRコード

QR