MacでPICマイコン電子工作入門(16)

このブログ記事は、内容を更新して以下のページに移動しました。

「MacでPICマイコン入門 第16回」

通知の設定
通知タイミング
guest
35 コメント
新しい準
古い順 一番投票が多い
本文中にフィードバック
全てのコメントを見る
管理者
管理者
8 年 前

初めまして。

エラーが出て先に進まないと心が折れそうになったりしますが、電子工作やプログラミングにはエラーがつきものですので、前向きに取り組んでいきましょう! 実際、エラーを解決する過程で色々なことが習得できたりしますので、じっくり取り組んでみてください!

エラーの内容を拝見しましたが、エラーは2点あるようです。

一つは “Too much current…” で、もう一つは “Target Device ID (0x0) does not match expected Device ID (0xf80).” です。

一つ目の”Too much current…”について原因の可能性をご説明します。このエラーの意味は、PICKIT3からターゲットデバイス(書き込み先のPICマイコン)に大きな電流が流れるので、接続を確認してください」という内容です。

第16回での説明は、PICマイコンにプログラムを書き込む際に、電源をPICKIT3から供給する設定にしています。この設定の場合、書き込み時にPICKIT3から電源を供給しますが、その際に大きな電流が流れるとPICKIT3がダメージを受けてしまうため、電流が大きい場合は書き込みをストップして “Too much current…”エラーを出します。原因としては、配線に問題がある可能性が高いです。(PICKIT3を書き込みピンに挿す方向間違いや配線ミスなどです)

次に “Target Device ID (0x0) does not match expected Device ID (0xf80).”ですが、こちらは2つのエラーを含んでいます。ちょっと遠回りになりますが、詳しく説明いたします。

MPLABXでプログラムを作成する際、Fileメニューから新規プロジェクトを作成します。プロジェクトを作成する際にPICマイコンの型番を指定します。

次にこのプロジェクトでビルドしたプログラムをPICマイコンに書き込む際、PICKIT3はプロジェクトで指定したPICマイコン型番と、書き込み先のPICマイコンの型番の一致を確認します。一致しない場合、上のエラーを表示します。実際の一致のチェックは”PIC12F683″などの型番名ではなく、16進数のデバイスIDで行われています。

上のエラーの意味は「これから書き込むプログラムのデバイスIDはプロジエクト設定では0xf80だけど、書き込み先のデバイスIDは0x0だよ」という内容です。

書き込み先のデバイスIDが0x0(0番)という場合、配線ミスが原因の可能性が高いです。また、これから書き込むプログラムのデバイスIDが0xf80となっていますが、0xf80はPIC12F629のデバイスIDになります。つまり、新規プロジェクト作成時にPICマイコンの型番をPIC12F683ではなく、PIC12F629を指定した可能性があります。

エラーメッセージからわかることは、すみません、この程度になりますが、もし確認されても原因がわからない場合、ブレッドボードの画像やプロジェクトファイルをお送りいただければもう少し詳しくわかるかもしれません。必要に応じてお問い合わせフォームからご連絡いただければと思います。

第16回の動作確認がうまくいけば、あとはプログラムを理解して、自分で書き換えたりして色々試すことができるようになりますので、ぜひ一緒に頑張りましょう!!

T.Yamasaki
T.Yamasaki
8 年 前

初めまして、楽しく拝見させていただいています。
このサイトを見て電子工作に興味が湧きチャレンジしてみました。

がPickit3のMake and Program Device Main Projectの所でエラーがでます。

色々調べてみたのですがどうしても解決できず書き込ませていただきました。

配線の間違いも見直しました。

フレッドボードも問題ありません。

エラーの内容はこれです。

—————————————————

Too much current has been drawn on VDD. Please disconnect your circuit, check the CLK and DATA lines for shorts and then reconnect.

Connecting to MPLAB PICkit 3…

Currently loaded firmware on PICkit 3

Firmware Suite Version…..01.40.05

Firmware type…………..Midrange

Too much current has been drawn on VDD. Please disconnect your circuit, check the CLK and DATA lines for shorts and then reconnect.

Programmer to target power is enabled – VDD = 5.000000 volts.

Target Device ID (0x0) does not match expected Device ID (0xf80).

Target has invalid calibration data (0x00).

——————————————–

上記です。
3v付近に設定しています。
電子部品はこのサイトで紹介されているものと同一を使用しています。

何が原因かわかりましたらご教示下さい。
宜しくお願いします。

Azuma Murakami
Azuma Murakami
8 年 前

ご挨拶もしないで、コメントしてしまいました。
詳しい説明ありがとうございます。

私は、今までwindowsでMPLABXを使っていました。しかし、CPUのファンが故障し、以前からファンの音には困っていましたのでマウスコンピューターのSTICKコンピューターを買いました。しかし、他のアプリはなんとか使えるのですがMPLABXが使えません。それで、以前にMACでMPLABXを使おうとして失敗した経験があるのですが、もう一度挑戦しようと思ってやりました。今度はうまく行きました。
皆さんのおかげです。
ところが、エディター画面で文字の大きさや色を変えたいと思っていろいろ挑戦しましたが、できません。MACの場合は文字の管理をシステムでやっているのでしょうか。
いま使っているマックはMACBOOKAIR yosemite です。
ご教示いただけると感謝です。

管理者
管理者
返信  Azuma Murakami
8 年 前

こんにちは。

Macの場合、MPLABXに限らず、ほとんどのアプリケーションは、アプリケーションメニューの環境設定…で設定できます。

MPLABXでは、アプリケーションメニュー「 MPLAB X IDE」の「環境設定…」を選択すると環境設定ダイアログが表示されます。このなかに「Fonts&Colors」がありますのでここで設定できます。

Azuma Murakami
Azuma Murakami
返信  管理者
8 年 前

ありがとうございます。
なるほど、うまく行きました。
そそれにしても、windowsの場合はToolsのOptionsの中にあって、Macの場合はMPLAB X IDEのなかのPreferens..のなかにある。
しかも、Preferensをクリックすると、なんとOptionsというwindowsと同じ名前のウインドーが開く。だったら、Prefernsなどと言わずにOptionsと書くべきではないかと思います。Optionsという名前のウインドーが開くのですから。うむ——。
とにかくありがとうござました。助かりました。

Azuma Murakami
Azuma Murakami
8 年 前

偶然、このブログみました。
もう二年たってます。
windowsの場合はToolsにOptionsがあるのですが、Macにはありませんね。Fontの大きさや色を変えたいのに・・・
どうすれば良いでしょうか。

yasushi
yasushi
9 年 前

はじめまして! macで初心者向けの電子工作ページがないかなと検索してここのサイトにたどり着きました。すばらしくわかりやすい解説で、プログラミング通りに発光ダイオードが点滅して光った時は感動しました(^0^) 良い機会を与えていただきありがとうございます

管理者
管理者
返信  yasushi
9 年 前

yasushiさん、はじめまして!
コメントどうもありがとうございます! とても嬉しいです。

やはり自分で作ったものが動くのって本当に楽しいですよね。この入門編で作った回路はかなりシンプルですが、プログラムを変更するといろいろなことができると思いますよ。ぜひこの気持ちを大切にいろいろモノづくりしていきましょう!

最近は仕事が忙しくてブログ更新できませんが、今度は電子回路入門の記事を書いてみようと思っています。その時はまたぜひ宜しくお願いします!

sthr
sthr
10 年 前

claynetsさん

お久しぶりです.まだ2つ目の問題が解決しておらず,止まっている状況です.

以前のコメントではPICKITをPCに接続後,数秒でSTATUSのLEDが消灯するとのことでしたが,私の場合は点灯状態が続きます.ここに問題があると思うのですが,解決策が分かりません.またアドバイスいただけますでしょうか?

以前アドバイスしていただいたように,
 MPLABX 1.95
java 1.6.0_65
へアップデートしました.
また環境は
 MacBook Pro Mid 2009
Mac OSX 10.9
です.

管理者
管理者
返信  sthr
10 年 前

sthrさん、お久しぶりです。こんにちは。

2つ目の問題、まだ解決してなかったんですね。かなり長い間悩まれていますね。

PICKIT3のSTATUSのLEDが点いたまま、ということはUSBデバイスレベルできちんとMacが認識していないことも考えられますね。こちらで確認した状況ご報告します。

1) まず、Mac側ではMPLABXは立ち上げずに、PICKIT3をMacにつなげました。最初はPOWER、ACTIVE、STATUSの3つのLEDがそれぞれ、緑、青、オレンジで点灯します。3〜4秒経過するとSTATUSのLEDが消灯しました。

2) 次にiPhoneの充電器(AC-USBアダプタ)をコンセントに差し、PICKIT3のUSBケーブルとPICKIT3を接続しました。結果は、POWER、ACTIVE、STATUSの3つのLEDがそれぞれ、緑、青、オレンジで点灯し、そのまま3つのLEDとも点灯したままでした。

(1)ではSTATUSのLEDが消灯して、(2)では点灯したまま、というのは、(1)ではMacとPICKIT3を接続した際、お互い認識し合う動作を行い、認識ができたら通信を確立します。通信が確立できたらPICKIT3のSTATUSのLEDは消灯します。
(2)では、PICKIT3は電源の供給を受けたものの、お互いを認識し合う動作が始まらないためにSTATUSのLEDが点灯したまま、という状態になります。

Mac側の問題なのか、PICKIT3側の問題なのかを切り分けるために、他のMacあるいはPCはお持ちではないでしょうか。もし、他のMacあるいはPCにPICKIT3を接続してSTATUSのLEDが消えるのであれば、Mac側のUSBの何らかの問題の可能性が高いです。他のMacやPCに接続するとSTATUSのLEDが消えないのであれば、PICKIT3側の問題かもしれません。

なお、念のため確認いただきたいのですが、STATUSのLEDが点灯したままの状態のとき、Macが認識しているUSBデバイスはどうなっているか見ていただけないでしょうか。以下の手順です。

1) 左上のアップルメニュー(りんごマークメニュー)から、「このMacについて…」を選択
2) このMacについて、のダイアログ、下の方にある「詳しい情報…」ボタンをクリック
3) 開いたダイアログの下の方にある「システムレポート…」をクリック
4) Macの情報ダイアログが開きます
5) 情報ダイアログの左側メニュー、「ハードウエア」カテゴリの「USB」をクリックしてください
6) 右上半分の領域に表示される、「USB装置ツリー」に「PICkit 3」という名称があるか確認します

「PICkit 3」という名称があれば、認識はしているものの(つまりUSBデバイスとして認識動作は問題ないものの)、PICKIT3がなんらかの理由で定常状態になっていない、ということになります。その場合はPICKIT3のファームの入れ替え(すみません手順は確認していません)をする、というのがひとつだと思います。また「PICkit 3」という名称がなければ、やはりMacはPICKIT3をUSBデバイスとして認識できていない、ということになります。この場合は、やはり他のMacあるいはWinPCに接続して、問題の切り分けをした方がよいと思います。

すでに確認されている内容かもしれませんが、念のためご確認お願いできればと思います。

sthr
sthr
返信  管理者
10 年 前

さっそくの回答ありがとうございます.

1.MacのUSBに接続状態ですが,LEDが点灯状態で   Macの認識状態を調べる「PICkit3」は表示されて  いました.

2.今までやっていなかったのですが,PICkit3のUSB  の接続,取外しを繰り返すとSTATUSのLEDが消灯  する場合がありました(しかし書き込みの方は実行  できませんでした).

3.Macは1台しか持っておらず,他のMacでは確認出  来ませんが,windowsPCではプログラムの書き込  みができました.

という状況です.2についてはどういう場合にLEDが消灯するのか分かっていない状態です.3から考えるとPICkitではなく,Macの方の問題かなと思うのですが,どうでしょうか??

管理者
管理者
返信  sthr
10 年 前

早速お調べいただいてどうもありがとうございました。

まずMacのUSBデバイス認識はされているんですね。USB接続時のネゴシエーションはうまくいっている、ということなんですね。あと、USBケーブルの抜き差しをしてSTATUSのLEDが消える、ということは、たまにPICKIT3側もうまく動作できている、ということですね。あと、WinPCでは書き込みまでできる、ということは、PICKIT3のハード/ソフトには問題なさそうです。

となると、ちょっと厄介なのですが、USBの相性問題の可能性もあります。USB相性問題の場合、いくつか試してみる価値のある方法としては以下があります。

1) ケーブルを変えてみる
 もし他にUSBケーブルをお持ちでしたら、USBケーブルを変えてみて下さい。今はPICKIT3に付属の赤いUSBケーブルを使われていると思いますが、もしUSB3.0対応のケーブルを持っていたらそれに変えてみる、などです。

2) USBポートを変えてみる
 Macbook Proですと、USBポートは2個あると思いますので、うまくいかないポートと違うポートに何度か差してみる、という感じです。

3) USBハブを経由してみる
 外部電源供給型のUSBハブをお持ちでしたら、そのUSBハブを経由して接続を試してみて下さい。

USB相性問題の場合、原因はなかなか特定できないことが多いです。例えば、MacにiPhoneをUSBで接続してiTunesとの同期は問題ないのに、同じポートに他のUSBデバイスを接続するとうまく動かない、ということもあります。

友人にUSBの設計をしている技術者がいるのですが、その人の話によると、USBデバイスを設計する場合、USB通信処理をするICチップを配置する位置により通信に影響がでることもある、ということです。また、市場クレームなどで、そのお客さんのMacあるいはPCでしか発生しない、というケースもまれではない、とのことです。また、USBケーブルを特定のもに変えると現象がでなかったり、ということです。
あと、USB通信のパケットを解析したことがあるのですが、USBって外からみると滞りなく通信しているように見えますが、以外にエラー通信が多くてびっくりします。その場合は品質のよいUSBケーブルに変えると、そのエラーが減ったりします。

USBケーブルを品質のよいものにすると通信速度が改善する、なんてことも言われたりしますが、実際、エラー通信が減るため本当に改善するんだな、っと思いました。

ちょっと大変かもしれませんが、相性問題の可能性もありますので、お手持ちのUSB関連グッズで他にも何かあればいろいろと試してみて下さい。

あと、さらに他に原因がないか、ちょっと考えてみます。

sthr
sthr
返信  管理者
10 年 前

非常に詳しい回答ありがとうございます.

かなり複雑で簡単には解決しない問題なのですね…

2.については何度か試しており,どちらに接続したから接続が良くなるということはなく,どちらでも同様の現象が起こっています.

1.3.についてもこれから試してみます.

毎回,丁寧にアドバイスしていただき本当にありがとうございます.土,日以外は時間がとれない状況ですが,少しずつやってみたいと思っています(ここまできたら諦めきれません(笑)).また進展がありましたら報告させてもらいます!

管理者
管理者
返信  sthr
10 年 前

こんにちは。

(2)についてはすでに試されているんですね。もしかしたら専門家の方がみればすぐに分かる問題かもしれませんが、私は趣味でやっている程度なので、なかなかすぐに解決できずすみません。。。

私も時間がとれるのは週末ぐらいなので、時間がとれたときに他の可能性などいろいろ考えてみますね。

sthr
sthr
10 年 前

minosukeさん,アドバイスありがとうございました.
私の方も解決しました!これで1つの問題が解決しました.

sthr
sthr
10 年 前

こんばんは,いつもブログを楽しみに読ませていただいています.

さっそくですが,『MacでPICマイコン電子工作入門(16)』で2点質問させていただきます.

1.プログラムの部分で,コピペしたのですが,__delay_ms(950);,__delay_ms(50);の部分で赤の波線と!が表示されます.コンパイルはLoading completedとなるのですが,問題はないのでしょうか?

2.プログラムの書き込みを開始しても,OutputにConnecting to programmer…と表示されて以降,書き込みが終了しません(30分程度).もっと時間がかかるものなのでしょうか?

お忙しいとは思いますが,アドバイスよろしくお願いいたします(> <)

管理者
管理者
返信  sthr
10 年 前

こんばんは。ブログご覧いただいてどうもありがとうございます!

まず(1)についてですが、結論としては問題ありません(気持ち悪いですが…)。ビルドの最後にLoading Completedとなっいれば無事ビルドできています。
__delay_ms()に赤線と行の先頭に!マークがつく理由ですが、この関数がヘッダファイルのどこにも定義されていない、という警告メッセージになっています。確かにヘッダファイルにはこの関数定義がないので警告が出ますが、リンクするライブラリにはこの関数がありますので結果的に問題ありません。ただ気持ち悪いので、解決しておいた方がよさそうですね。今度解決方法を調べてみますね。

(2)ですが、私の環境(iMac Mid 2010)ではプログラム書き込みボタンを押してから書き込みが完了するまで30秒かからないぐらいです。Connecting to programmer…がでてから30分、というのは明らかに長いですね。すみません、今すぐ実環境で確認できないので、週末時間があるときに原因の可能性を確認してみますね。

どちらもすっきりすぐにご回答できずにスミマセン…

sthr
sthr
返信  管理者
10 年 前

早速のご回答ありがとうございます!

やはり(2)については何か問題があるのですね.それが分かっただけでもありがたいです.

自分でも解決方法を調べてみます!

ブログの更新がんばってください(^0^)

管理者
管理者
返信  sthr
10 年 前

こんにちは。

書き込み問題の件、いろいろと調べてみました。結論としては、これが原因だろう、というものはなかなか思い当たらないのですが、以下、こちらで確認した内容をご連絡します。

まず、”Connecting to programmer…”が表示されて止まったまま、ということから、以下の推測をしました。

[PICKit3は正しく認識されていると判断]
 PICKit3自体がきちんと認識されていないと、MPLABXの書き込みボタンが押せないです。”Connecting to Programmer…”が表示された、ということは、少なくともMPLABXのプログラム書き込みボタンを押した後、止まってしまう、ということだと思います。ということで、PICKit3はMacに正しく接続されていて、正しく認識されていると思います。なお、MacにPICKit3をつなぐと、LEDの点灯状態は、始めは
 -POWER : 緑
 -ACTIVE : 青
 -STATUS : オレンジ
状態で、しばらく(5秒ぐらい)すると、
 -POWER : 緑
 -ACTIVE : 青
 -STATUS : 消灯
となります。

[通信モジュールまわりに問題があるかも]
 次に、PICKit3に何も接続せず、適当なプロジェクトで書き込みを実行してみました。すると、すぐに、
Connecting to programmer…
The programmer could not be started: Could not connect to tool hardware: PICkit3PlatformTool, com.microchip.mplab.mdbcore.PICKit3Tool.PICkit3DbgToolManager
というメッセージが表示され、この後さらに書き込み処理が始まり、PICマイコンのデバイスIDが取得できない、という警告が出ました。

ここで気になるのが、Connecting to programmer…という表示で止まってしまっている、という点です。この表示で止まっている、ということは、PICkit3と通信しようとして、それができない、ということなんだと思います。ただ、何十分もそのまま、というのも不可解ですが(通常はタイムアウトしますので)、PICkit3と通信がうまく開始できないのではないかと思います。書き込みボタンを押してからPICkit3のLEDに変化がないのであれば、通信が開始されていないのだと思います。

[確認してみたほうがよい項目]
MPLABXはJavaを使いますので、その点を考慮して以下の点確認されてみるとよいと思います。

1) javaのバージョン確認
 Finderのアプリケーション→ユーティリティ→ターミナルを開いて、”java -version”と入力します。1行目にバージョンが表示されます。”java version “1.6.0_51″と表示されていれば問題ないと思います。もし問題があれば、javaのアップデートを試してみた方がよいと思います。javaのアップデートについては、
http://support.apple.com/kb/DL1572?viewlocale=ja_JP
のページをご参照ください。(MPLABXが立ち上がっていますので、java自体は正しくインストールされているはずです)

2) MPLABXの起動時のメッセージ確認
 MPLABXを立ち上げると、立ち上げ時のエラーや警告メッセージが右下のタスク領域に表示されます(Project Loading Errorというタブ)。MacのMPLABXの場合、毎回いろいろなメッセージが表示されると思います(MPLABXはWin前提で作っているようなので)。その中に、”exception”や”error”などのメッセージがないか確認します。もしあれば、それがjava関連だったり、ドライバの警告かもしれません。その場合は、手っ取り早いのが、一度MPLABXをアンインストールしてから再度イントールする方法です。なお、アンインストールはアンインストーラがMPLABXアプリと同じところにあると思いますのでそれを使用します。

ということで決定打がなくてすみませんが、まずはひとつひとつ怪しいところを確認していくのがよさそうですね。また新しい情報などありましたら書き込みいただければさらに確認してみます。(明日は1日外出しますので、ご連絡遅くなると思います)

izumi
izumi
返信  管理者
10 年 前

大変詳しく調べていただきありがとうございます.

1)についてですが,JAVAのバージョンが古かったため,1.6.0_51にアップデートしました.

しかし,状況は変わりませんでした.

次は2)について検討してみたいと思います.また何か分かりました報告させていただきます!

minosuke
minosuke
返信  sthr
10 年 前

1. と同じ問題に遭遇したので参考になればと。自分の環境では__delay_ms は pic.h内で#ifdef __PICCPRO__ の条件付きで宣言されてました。
なのでmain.c の頭(少なくともxc.hの前)に#define _PICCPRO__をつければ解決すると思います。自分の環境ではこれで解決できました。

管理者
管理者
返信  minosuke
10 年 前

minosukeさん、こんにちは!
__PICCPRO__を定義してしまう、という解決方法があったんですね。情報どうもありがとうございました!
__delay_xx関数はよく使われると思うので、xc.hで普通に定義しておいて欲しいですよね。でも、こんなことがあると、ヘッダファイル解読して勉強になったりするのでで、これはこれでいいですかね(笑)

oma
oma
10 年 前

こんにちは。
「MPLAB X for Macintoshのインストール」
で、質問させて頂いた者です。

そこで、また質問させていただきたいのですがよろしいでしょうか?
PICにコードを書き込もうとしているのですが、

Connecting to MPLAB PICkit 3…
Firmware Suite Version…..01.28.72
Firmware type…………..Midrange
Target detected

Failed to get Device ID

と、エラーが出てしまいます。
自分で原因を調べてみた所、
PICKIT3への電力供給不足
基盤上の電力不足が、考えられるとの事で、

Power target circuit from PICkit3のチェックボックスをオンにする。
Voltage Levelを3.3付近に調整する。
書き込み中も基盤に電源を供給する。
配線の修正。
MPLABがPICKIT3を認識しているかどうかの確認。
机を殴る。

などの諸対策をとってみましたが、
どうにもこうにもうまくゆきません。
立て続けに質問ばかりで申し訳ないのですが、
よろしくお願いします。

管理者
管理者
返信  oma
10 年 前

こんにちは。いろいろと頑張られていますね。

Failed to get Device ID、というエラーですが、こちらでいろいろなケースでエラーを発生させてみたところ、電源の2重供給の時に発生しました。他にも、わざと配線を取ってみたり、PICKit3/回路両方の電源をなしにして書き込んでみたりしたのですが、他のエラーでした。例えば”Target Device ID (0x0) does not match expected Device ID (0x460).”などです。

何度も確認されているようですので、なかなか原因がつかみづらいですが、念のため電源が2重供給になってないかご確認いただければと思います。

PICKit3から電源を供給する場合、3.3V付近、とのことですが、ターゲットのPICマイコンは3.3V動作のものでしょうか。いずれにしても、

・回路側の電源は外して、Power target circuit from PICkit3のチェックボックスをオン、電圧はPICマイコンの規定値に合わせる(だいたい3.3Vか5V。入門で使用しているPIC12F683は5V)
・Power target circuit from PICkit3のチェックボックスをオフにして、回路側の電源を供給する

のどちらかの状態になっているか念のため確認ですかね。

Microchip Forumをざっと確認してみたのですが、Failed to get Device IDは、誤配線か電源不良が原因のことが多いようです。あと、何人かは、PICマイコンそのものが壊れていた、というのもありましたので、もし同型のPICマイコンをお持ちでしたら、差し替えて試してみるのもよいかもしれません。

実は、次の記事は書き込みに関するもので、PICKit3からの供給のケース、回路電源からの供給のケースを説明しようとしていました。その際、エラーのケースも確認してみようと思います。何かわかりましたら書き込みしますね。

あと、10.6.8 + MPLABX1.80ですが、Forumの閲覧は多いものの(100名程度)、回答がないですね。やはりレアケースなのかもしれません。。。

oma
oma
返信  管理者
10 年 前

回答ありがとうございます。
昨日から色々と対策を施してみたのですが、
現在も解決には至っていません。
あれから、

●誤配線のチェック
●全ジャンパワイヤ、led、抵抗などの断線の確認
●回路側からのみの電源供給
●PICKIT側からのみの電源供給
●PICKIT側からの電源供給の値の調整(3.3V付近というのは、5Vから3.3Vに値を変えた所うまくいったという記事を見て参考にしたものです。)
●MPLABがPICKIT3を認識しているかどうかの確認
●各配線の抜き差し
●PIC12F683の交換
●MPLAB、PCの再起動

などなど、繰り返し行っていますが、、、という具合です。
プログラムはもちろんビルド成功しています。
何度も繰り返し書き込みを行っていると、同じ条件にもかかわらず、複数のエラーが反復して起きるようです。

●Failed to get Device ID
●Failed to program device
●Target device was not found. you must connect to a target device to use PICKit 3.
●Target Device ID (0x0) does not match expected Device ID (0x460).

などが起こります。
Target device was not found.に至ってはPICKit3のシリアルがMPLAB上で表示されているにもかかわらず起こります。

それともう一つ、数日前にもPICへの書き込みを試していた際には、結果はエラーだったのですが、MPLABのNavigator領域にPICのメモリ容量など、PICのステータスが表示されていました。これは少なからず、PICKit3がPICを認識出来ていたという事でしょうか?現在は、PICのステータスは表示されておらず、

_XTAL_FREQ
main(int argc, char** argv)
stdio.h
stdlib.h
xc,h

と、表示されています。

何か他に見落としている原因があるのでしょうか、、、
ここまでいくとPICKIT3の故障という可能性も否めないでしょうか、、、?USBのパワー供給が死んでるとも考えましたが、それならば回路側の電源供給でなんとかなりますし、、、なにとぞ御助言お願いします。。。

管理者
管理者
返信  oma
10 年 前

う〜〜ん、、、

なんだか単純な原因ではなさそうですね。特に

>何度も繰り返し書き込みを行っていると、
>同じ条件にもかかわらず、
>複数のエラーが反復して起きるようです。

とのことで、単純に何かのミス、という感じではなさそうです。配線ミスや電源ミスでしたら、毎回同じエラーですよね。

>MPLABのNavigator領域にPICの
>メモリ容量など、PICのステータスが
>表示されていました。これは少なからず、
>PICKit3がPICを認識出来ていたと
>いう事でしょうか?

たぶんDashboardウィンドウのことだと思います。Dashboardウィンドウだとすると、ここに表示される内容はあくまでプロジェクトをビルドした結果のプログラムバイナリ自体の情報で、PICマイコンの認識とは関係ないです。PICKit3が接続されていなくても表示されます。このウィンドウは、MALABXの「Window」メニューから「Dashboard」を選択すると表示されます。変なところに表示されてしまったら、ウインドウの上の部分をドラッグすることにより好きな領域に持って行けます。

あと、PICKit3がUSBデバイスとして正しく認識されていないのでは、とも思ったのですが、PICKit3が認識されていないと、そもそも”Failed to get Device ID”などのエラーなんか出ないので、USB接続の問題でもなさそうです。

外部電源でも動作しない、というのであまり関係ないとは思いますが、実はPICKit3はロット番号によってちょっと問題が出るケースがあるようです。実は自分のPICKit3も問題が出る可能性のあるものなんですが、今まで実際に問題になったことはないです。PICKit3の裏に貼ってあるシールに製造番号(Assy#と書いてあります)を確認した上で以下のサイトをみてみてください。

http://ww1.microchip.com/downloads/jp/DeviceDoc/J_ETN32_PICkit_3_Operation_at_Low_Voltage.pdf

http://airvariable.asablo.jp/blog/2012/06/20/6486454

ただ、この問題はあくまでPICkit3から電源供給する場合なので、関係ないですよね。

PICKit3とMacはUSBハブ経由とかで接続されているようでしたら、直接接続に変えてみた方がよいです。USBケーブルもPICkit3付属のものを使用されていると思いますが、もし使用されていないようでしたら、一度付属のもので試してみた方がよいと思います。(意外に相性問題もあったりしますので)

ただ、いずれにしても、エラーの内容が毎回異なる、というのはかなり不安定な状態になっているはずですので、もしUSB接続が問題なく、回路側電源供給でもエラーの内容がいろいろと変わるようであれば、やはりPICkit3の問題の可能性もでてきそうですね。

引き続き調べてみますね。

oma
oma
返信  管理者
10 年 前

うーん、、、ロットはR4ではありませんでした。勿論直接接続かつ純正のケーブルで書き込んでいます。となると、、、MacのUSBが死んでいるなんてこともあるのでしょうか、、、?(かなり古いので)後日別機で試してみます。

とくにMPLABを再起動するとエラーがよく変わるみたいです。

どうもありがとうございます。

管理者
管理者
返信  oma
10 年 前

よかったです!!!
本当によかった!!!

結構単純な原因であることも多いので、いろいろと原因を予想していたんですが、ブレッドボードだったんですね。

ところで、私が持っているブレッドボードは長い物もあるんですが、今確認したところ、つながっていました。(ブレッドボード説明のエントリでご紹介したスケルトンのヤツです)

電源がつながっていないものもあるんですね。いつも秋月で決まったものを購入することが多いので、そのようなブレッドボードがあるとは、、、そのブレッドボード、電源分断しているのであれば、そのようにマークでも書いておいてくれればいいのに、と思ってしまいます。

この入門でご紹介したブレッドボードは電源はつながっていますが、その表面にプリントしている線もつながっていることを示しているので、やはり分断されているのであれば、そのような目印があるといいですね。

私もひとつ知識が増えました。いろいろとコメント欄にご連絡いただいてどうもありがとうございました。もしかしたら他の方の役にも立つかもしれませんので!

oma
oma
返信  管理者
10 年 前

本当にお手数おかけしました。

私もあっけにとられてしまいました。ブレッドボードの断線は少し疑っていましたが、新品ですし、まさかそのような仕様のものがあるなんて心配しているはずもなく。。。しかしながら久しぶりに電子工作の恐ろしさ、想像を超えた単純なミスがあるということを思い出させられましたね。。。

参考までに私のブレッドボードの特徴を記しておきます。

秋葉原で購入した比較的安価な物で、真っ白く目印のようなものはいっさいプリントされておりません。上下の電源用の穴の列は5×2のまとまりが横に10ほど連なっていますが、真ん中の間隔が少し広い物です。

どうもありがとうございました!

管理者
管理者
返信  oma
10 年 前

いろいろと書き込みいただいて本当にどうもありがとうございました。私も同じ状況でしたらおそらくもっと時間がかかっていそうな気がします。。。とても勉強になりました!

Satoshi Yatabe
Satoshi Yatabe
10 年 前

すみません、なぜかコメントが重複してしまったので削除お願いします、お手数おかけします…

Satoshi Yatabe
Satoshi Yatabe
10 年 前

初めまして、僕は名古屋の高校生です。最近電子工作に興味を持ち、自分で(市販のキットなどを使わずに)デジタル時計を作ってみようと思い、まずはPICを使った簡単な電子工作を、と思いネットをさまよっているうちにこのサイトに出会いました。使っているOSがMACでして、MAC用に電子工作やプログラムの基礎解説をしている説明をしているサイトが少なくて困っていた中このツール・ラボさんに出会えて本当に嬉しかったです。とても助かっています。

本題です。Google Chrome で閲覧しているのですが、プログラムの#include の後にあるはずの(スクリーンショット画像にはちゃんと表示されている)が正しく表示されていなかったのでエラーとなり、びっくりしました。改善よろしくお願いします。

次回も楽しみにしています。

Guest
Guest
10 年 前

初めまして、最近電子工作に興味を持ち、自分で(市販のキットなどを使わずに)デジタル時計を作ってみようと思い、まずはPICを使った簡単な電子工作を、と思いネットをさまよっているうちにこのサイトに出会いました。使っているOSがMACでして、MAC用に電子工作やプログラムの基礎解説をしている説明をしているサイトが少なくて困っていた中このツール・ラボさんに出会えて本当に嬉しかったです。とても助かっています。

本題です。Google Chrome で閲覧しているのですが、プログラムの#include の後にあるはずの(スクリーンショット画像にはちゃんと表示されている)が正しく表示されていなかったのでエラーとなり、びっくりしました。改善よろしくお願いします。

次回も楽しみにしています。

Guest
Guest
10 年 前

初めまして、僕は名古屋の高校生です。最近電子工作に興味を持ち、自分で(市販のキットなどを使わずに)デジタル時計を作ってみようと思い、まずはPICを使った簡単な電子工作を、と思いネットをさまよっているうちにこのサイトに出会いました。使っているOSがMACでして、MAC用に電子工作やプログラムの基礎解説をしている説明をしているサイトが少なくて困っていた中このツール・ラボさんに出会えて本当に嬉しかったです。とても助かっています。

本題です。Google Chrome で閲覧しているのですが、プログラムの#include の後にあるはずの(スクリーンショット画像にはちゃんと表示されている)が正しく表示されていなかったのでエラーとなり、びっくりしました。改善よろしくお願いします。

次回も楽しみにしています。

管理者
管理者
返信  Guest
10 年 前

はじめまして。
アクセスいただきどうもありがとうございます。高校生の方なんですね。この入門記事を書いたのは、ひとつは高校生の方や大学生の方にモノづくりに興味を持っていただいければな、と思っていましたので、アクセスいただいてとてもうれしいです。ぜひ自分の力でデジタル時計作りに挑戦してみてください。いろいろな課題にぶつかるかもしれませんが、それを乗り越えればお金では買うことのできない、一生使えるツールが身につきますよ。
ところで、ご指摘の件、すみませんでした。確かに#includeの後消えてしまっていますね。HTMLソースを確認結果したのですが、ソース上では#include と書いてありました。ただ、 の “”はHTMLのタグとして認識されてしまうんですね。あとで修正しておきます。ご指摘いただきどうもありがとうございました。助かりました。
記事ですが、今、WWDCに参加していますので、今週末の更新はおやすみいただく予定です。再来週からプログラムの詳細を解説していきますので、またアクセスいただければと思います。よろしくお願いします。

目次