FC2ブログ

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

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

PICプログラマーで 16F188xx をサポート

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


【今回の改善事項】

16F188xxをサポートした。
それとバグ吸収 (内容はヒミツ) もやっている。


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

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
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
CAT24M01
25AA320A
25AA640A
25AA128
25AA256
25AA512
25AA1024
90S1200
90S2313
90S2323
tiny13
tiny2313
mega48
mega88
mega168
mega328


【ダウンロード】

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

PC側の制御ソフトはGUIとプログラマー制御の2つから成る。
GUIを担うVBプロジェクトは「ISP」、実行ファイルは「ISP\bin\ISP.exe」
プログラマー制御を担うVCプロジェクトは「ISPdll」、実行ファイルは「ISPdll\Release\ISPdll.dll」
ともに開発環境は VisualStudio2008 Express Edition

プログラマー側の制御ソフトは18F14K50のファームウェアでディレクトリは「ISPpic18F14K50」、実行ファイルは「ISPpic18F14K50\USB\ISPpic18F14K50\Firmware\ISPpic18F14K50.hex」
開発環境は MPLAB Ver8.92

今回のバージョンアップは上記の3つとも更新されているので、すべてを入れ替える必要がある。

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

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

ハードウェアの設計書は「USB接続簡易共用プログラマー設計・回路図・配線図.xls」。
各デバイス毎のソケットアダプタ結線は、シート名「ソケット・・・」を参照。


【いつもの愚痴】

16F188xxのプログラミング仕様は今までにない新手のものだった。

PICは全般的にプログラミング仕様がデバイス毎に微妙に違っていて、プログラマーの制御ソフトの開発時に悩まされている。プログラミング仕様の共通部分と個別部分を見極めて制御ソフトを設計することが新デバイスのサポートが効率的に進められるかどうかのキーポイントになる。

16F188xxの通信インタフェースは、マイクロチップ社の言うには「SPI風のインタフェース」とのことだ。しかし、2本線なので全二重ではないし、データとクロックのタイミングがAVRで採用されているSPIとは異なっている。元々SPIは信号の極性やタイミングにバリエーションがあるので、個々に仕様を確認する必要がある。プログラミング仕様書を読み解くとICSPDATとICSPCLKのタイミングは従来と同じで、ビットの送受信順序が従来は下位から上位の順だったのが、上位から下位の順に逆になっていた。確かにSPIは上位から下位の順なので、それが「SPI風のインタフェース」なんだ。

18F2xJxxのデバイスではICSP開始時に「MCHP」の4バイトをデバイスへSPIで送信する必要があり、この通信インタフェースはAVRのSPIと同じで、16F188xxの「SPI風のインタフェース」ではない。行き当たりばったりに仕様が作られているようで、PICとしての統一性が感じられない。

この「SPI風のインタフェース」のために、プログラマー側の制御ソフトも機能追加を余儀なくされた。プログラマー側の制御ソフトはPICとの最下位レベルの通信を担っているので開発当初から変更が無かったのだが、今になってこんな変更が入るとは。改変内容としては、従来のICSP通信をベースにビット送受信順序を逆にするだけなのでコピペで済む内容だが、このファームウェアの開発時期は2010年で開発環境はMPLAB(Xではない)であり、もはやMPLABの開発環境は維持していなかった。MPLABXにマイグレーションするのは無用のトラブルを生みそうなので、MPLABの最終版(v8.92)をインストールして今回の改変を行った。

NVMに書込むだけなんだから、こんなにも雑多な仕様は必要ないと思う。アドレスとデータを送れば書いてくれる画一的な仕様にして欲しいものだ。
スポンサーサイト
  1. 2017/06/20(火) 21:12:21|
  2. プログラマー
  3. | コメント:0

白い妖怪ウォッチの修理(SW接触不良)

1.患者
白い妖怪ウォッチ(バンダイ)
白い妖怪ウォッチ外観2

添付されていたメダル4枚
白い妖怪ウォッチ外観3

2.症状
①メダルを入れても反応しないことがある。

②「そうじゃないよ」と言われたり、別のメダルとして誤認識することもある。

3.診察
①メダルを早く入れたり、ゆっくり入れたりすると症状が変わることがある。また、メダルを押さえながら入れると読み取り易くなったりする。

②メダル読み取りの仕掛けは以下のようになっていた。

・本体側に4個のSWがあり、メダル裏側の突起パターンを読み取っている。

本体側の読み取りSW
白い妖怪ウォッチ診察1
白い妖怪ウォッチ診察2

メダル裏側の突起
白い妖怪ウォッチ診察3

・突起パターンは4列あり、メダルを本体に挿入すると順次読み込まれていく。1列の内のどれかは1(突起あり)でないと読み取るタイミングが掴めないので、0000のコードは有り得ない。そのため、15^4=50625種類のメダルが作れることになる。

・4枚のメダルを比較しての推理だが、1列目はメダルの種類を示しているようで、シルバー枠のメダルは1001となっている。4列目はどのメダルも左から0101になっていて、逆挿し検出「そうじゃないよ」のためと思われる。

・そうすると、割り当て可能なコード範囲は限られて、メダル種類は15まで、メダル種類毎に15^2=225までになる。

閑話休題

③症状からすると、コードの読み取りエラーと思われるので、SWの信号を観測した。SWはハイサイドに配置されていて、突起部分がSWを押すと信号はHになる。

SWを速く押したとき
白い妖怪ウォッチ波形1(速く挿入)
5ms以上のチャタリングが激しく生じている。

SWをゆっくり押したとき
白い妖怪ウォッチ波形2(ゆっくり挿入)
ゆっくり押すとチャタリングは低減するが、無くなりはしないので誤読は発生すると思う。

接点復活剤を注入後、SWを速く押したとき
白い妖怪ウォッチ波形3(接点復活剤注入後早く挿入)
接点が復活してチャタリングが無くなっている。ゆっくり押しても信号は安定していた。

④元に組み付けて読み取りテストをすると、シルバーの2枚は確実に読み取るようになったが、緑と白のメダルは無反応になった。診察の当初は別のメダルと認識したり、「そうじゃないよ」と言われたり、無反応だったりと不確定な動作をしていたのが、今は完全に無反応になった。つまり、読み取り動作は確実になって、読み取ったコードが不当なコードと判定されているのではないか、と思われた。

⑤ネットで調べた結果、今診ているのは「白い妖怪ウォッチ」で、これにはシルバー枠のメダルしか使えないそうだ。
白い妖怪ウォッチ使えるメダル

⑥緑のメダルは「零式」専用のメダルだそうで、このおもちゃに添付されていた緑のメダルにも「零」の表示があった。
白い妖怪ウォッチ零メダル

このおもちゃに添付されていた4枚のメダルの内、緑と白のメダルは「白い妖怪ウォッチ」では無反応となるのが正しい動作なんだ、と納得した。

4.治療
①診察の過程で、メダルコードの読み取りSWの接触不良を解消したことで、治療が完了した。

②このおもちゃの修理で感じたこと

・接点復活剤を注入後はチャタリングが皆無になり、この薬の威力は絶大だ。

・機械接点では数10msのチャタリングが発生するのは普通のことであり、プログラム側でチャタリング除去の対策を執るのが常識だ。しかし、メダルの挿入速度が仮に1m/sとするとSWの動作間隔は数msになるので、ファームウェアでは対応しきれず、ハードに依存することになってしまう。信号の速度と読み取り機構が合ってなく、設計に無理があると思う。
  1. 2017/06/12(月) 23:06:39|
  2. 電子・電気修理
  3. | コメント:0

PIC32MXのVerifyオペレーション不良について(有識者の教示を乞う)

PIC32MXのプログラミングが上手く行かず、数年が経つ。自力では解決できそうにないので、ここに抱えている問題を公開して有識者に教えを乞いたいと思う。

【問題事象】
PIC32MX220F032B-I/PでVerifyオペレーションを実行したが、フラッシュから読込んだデータが正しくFastdataレジスタに格納されない。


【事象の発生状況】

①プログラミング仕様「PIC32 Flash Programming Specification.pdf(61145L)」では、Fastdataレジスタとして s3 が示されている。そのレジスタ設定で実行すると読込みデータは格納されない。

②Fastdataレジスタとして a0 を指定すると読込みデータは期待通りに格納される。

詳細は以下の通り。
PIC32MXのVerifyオペレーションについて仕様書
  1. 2017/06/02(金) 14:50:46|
  2. PIC開発
  3. | コメント:0

PIC電子オルゴールのI2C動作不良について(有識者の教示を乞う)

PIC電子オルゴールを開発する中でI2Cの動作に関する問題が発生していて自力では解決できそうにないので、ここに抱えている問題を公開して有識者に教えを乞いたいと思う。

【問題事象】
スタートコンディション開始を指示しても、実際にピンからスタートコンディションの信号が出てこない。

発生する条件は以下の通り。

①12F1822と12F1840で発生する。16F1705/9、16F1827、16F18313、16F18325/6、16F18857では発生しない。

②4xPLLのレディを確認するコードを実行した場合に発生する。実行しない場合は発生しない。


【事象の発生状況】
問題事象が発生する操作と確認の状況は以下の通り。

先ずはソースコードをご覧いただきたい。

PIC電子オルゴールのI2C動作不良についてソースコード

①4xPLLのレディの確認・・・上記ソースコードの赤で囲った部分で、OSCSTATのPLLRビットがセットされるまでスピンループして待つ。

②スタートコンディションの開始指示・・・SSP2CON2のSENビットをセットする。

③実際にピンからスタートコンディションの信号が出て来ないことの確認・・・RA1(SCL)とRA2(SDA)の波形を観測すると、どちらもHに張り付いたままである。ワンショットで観測してもクロックは1個も出て来ない。

④ソフトはSSP1IFがHになるのを待ち続けている。

上記①の処理を飛ばすとピンからは、下記のように期待したスタートコンディションの信号が出力される。
PIC電子オルゴールのI2C動作不良について信号波形

開発プロジェクトは ここから ダウンロードできる。
プロジェクトは I2Cng の I2Cng1822
  1. 2017/06/02(金) 11:02:09|
  2. PIC開発
  3. | コメント:0

プロフィール

大泉茂幸

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

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

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

当ブログで公開している技術情報や成果物のご利用および再配布はフリーです。読者様の技術活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。

カテゴリ

おもちゃ修理技術 (83)
¦ ・電子オルゴール+音声 (28)
¦ ・音声再生・録音再生 (4)
¦ ・2.4GHzラジコン (29)
¦ ・レガシーラジコン (12)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (3)
ツール製作 (22)
¦ ・プログラマー (15)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (4)
修理事例 (149)
¦ ・マイコン換装 (69)
¦ ・電子・電気修理 (58)
¦ ・メカ修理 (22)
製作記事 (4)
PIC開発 (4)
おもちゃ病院 (8)
ドクター研修会 (2)
未分類 (2)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

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

ブロとも申請フォーム

この人とブロともになる

QRコード

QR