過去の質問を見ましたが、解決策が見つからなかったため質問させていただきました。

PCにMPLABX IDEをインストールし、PICkit3を接続してマイコン(PIC18F4553)に書き込み、デバッグをしたいと思っています。

MPLABX IDEでコンパイルは正常に行えましたが、書き込みが出来ない状態です。
MPLABXの画面にPICkit3のシリアル番号は出てきていますが、connection failedと出ており、書き込む以前にPICkit3との接続がうまく行っていないのではないかと思っています。

なお、一緒にインストールされたswitcherも念のため操作してみましたが、こちらもエラーメッセージが出て切り替えも正常に出来ていません。

ちなみに、PICkit3 programmerではマイコンへの書き込みは行えました。ただし、programmer終了時にはエラーメッセージが出ています。マイコンの動作は正常でしたので書き込み動作自体は出来ているようです。

接続するUSBポートは全て試しています。マウスとPICkit3しか使っていない状況です。

何度か再インストールもしてみましたが、同じ結果です。
PICkit3使用で、気を付けなければいけないこと、原因と疑われるようなこと、がありましたらご教授お願いします。

よろしくお願いいたします。

A 回答 (6件)

質問に回答させていただきます。



>恥ずかしながらPICkit3のOS切り替えが必要というのが目からウロコだったのですが、
>このOS切り替えは基本中の基本、当たり前のことなのでしょうか?

PICKit2とはチップも違いますので、PICKit3はそういう仕様だと思ってます。
あまりこの点についてはネットでも書かれているところは少ないので、PICKit3 Programmerを使っている人はあまり居ないのかもしれません。
(私はロジアナを使いたいときだけProgrammerを使ってますが)

PICKit3 Programmerに付属のアプリケーションマニュアルPDFより抜粋

「Revert to MPLAB mode - the PICkit 3 cannot operate in the Programmer Application and MPLAB IDE modes simultaneously.
Selecting this option returns the PICkit 3 to bootloader mode so that the MPLAB IDE can update the PICkit 3 with compatible firmware.」

とありますように同時には動作させることは出来ないとあります。
PICKit3ファームをMPLABで更新可能なブートローダモードへ戻す、ということなので、ブートローダの仕様が異なっているためでしょう。
(PICKit2ProgrammerアプリとPICKit2用のOSをそのままベースにしてPICKit3用に改良した為、新旧2つの方式に切り替えて対応できるブートローダが載っているのかなと想像してますが)

>またOS切り替えはProgrammerからは行えましたが、MPLABX IDEからは行えないのでしょうか?
>(MPLABを使用する際には、OS切り替えのためだけにProgrammerの実行が必須?)

面倒ですがそうなってしまいます。
PICKit3 Programmerアプリによる書き込みは、既にアップデート対象から外れており、メーカはMPLAB X IPEを推奨しています。そのためMPLABでそういう機能がサポートされることは無いと思います。(MPLAB X IPEは、そのまま使えるプログラマです)

既にご存じのように、ボタンを押しながらUSBへ繋ぐと元のブートローダに戻ります。
(私もアプリからしか操作出来ないと思ってましたが、後に知りました)

>そもそも通常出荷時は、どちらのモードになっているものなんでしょうか?

出荷時は、MPLABモードですので、最初にPICKit3 Programmerを立ち上げた際は、
画面上に「OSをダウンロードしてください」とのメッセージが表示されます。

MPLABモードとありますが便宜上、そう呼んでいるものと思います。PICKit3においてはMPLABで認識できる状態が標準のブートローダで、Programmerが対応しているブートローダはあくまで特殊なモードということになりますので。
    • good
    • 1
この回答へのお礼

ご丁寧に教えていただきありがとうございます。
おかげ様で理解が深まりました(まだまだ浅いと思いますが)。

私の場合、最初にMPLABで繋がらず、じゃあという事でPICkit3 Programmerを試してみたのですが、
元々(何故か)ProgrammerModeになっていたか、
最初MPLABに繋がらなかったのは他の理由で、PICkit3 Programmerを試した時に、OSを切り替えてしまって深みにはまったか、
どちらかが原因のようですね。

いずれにせよ、やっと先に進むことができそうです。
どうもありがとうございました。

この場をお借りしますが、他のご回答者の方々も色々とコメントいただきましてありがとうございました。

お礼日時:2013/09/26 20:01

時間が経ってるため、既に解決してるかもしれませんが。

。。

お礼の回答にて「ProgrammerからPICKit3を選択」とのことですが、これが
MPLABの「Programmer」メニューから「PICKit3」を選択したという事と解釈した上で

>PK3Err0033: 4 bytes expected, 0 bytes received
のメッセージが出ると言うことでしょうか?

基本確認ですが、PICKit3はPICkit3 Programmerアプリを使うときと、MPLAB(X)上でデバッガ
(+プログラマ)を使うときで実行するダウンロードされ、起動するOSが別物ですが、モードの切替
を正しく行った上でしょうか?

PICkit3 Programmerでは認識するとのことですので、上記のエラーメッセージを見る限り
PICkit3 Programmer用のOSが動作したPICKitへMPLABから接続を試みてる感じがします。

PICkit3 Programmerアプリ上でモードをMPLABモードに戻してもダメでしょうか?
(Tools > Revert To MPLAB Mode)

MPLABモードではPICkit3 Programmerは動作しませんし、PICkit3 Programmerモード
(Tools > Download PICKit OS)にするとMPLABからの認識はできません。


また、確認でAKI-PICの場合PWR LEDが実装されてますが、書き込みの際、全く点灯しなければ
単純にチップ電源が供給されていないことになります。
その場合はMPLABのPower設定でPICKit3から供給するようにするか、USBを繋ぐなどして
Tagetの電源を入れた上で書き込み&デバッグをする必要があります。

この回答への補足

ご回答いただきましてありがとうごいます。
まだ解決していませんでしたが、そろそろ閉じないといけないかな、、と思っていたところです。

結論から申しまして、ご指摘いただいたOS切り替えでMPLABX IDEから書き込みできました!

ご回答いただいた、ProgrammerのToolでRevert to MPLAB modeを選択した後、
MPLABX IDEを起動⇒ビルド・書き込みで、正常に動作しました。

どうもありがとうございました。
お礼方々、後学の意味で以下質問させてください。

恥ずかしながらPICkit3のOS切り替えが必要というのが目からウロコだったのですが、
このOS切り替えは基本中の基本、当たり前のことなのでしょうか?
改めて、秋月の添付資料やPICkit3ユーザーマニュアル等を見返してみましたが、
そのような記載が見当たらなかったのですが、、、。

またOS切り替えはProgrammerからは行えましたが、MPLABX IDEからは行えないのでしょうか?
(MPLABを使用する際には、OS切り替えのためだけにProgrammerの実行が必須?)
(あ、たった今、MPLAB modeへの復帰が「ボタン押しながらUSB接続」でも出来ました。。)
そもそも通常出荷時は、どちらのモードになっているものなんでしょうか?

どうぞよろしくお願いいたします。

補足日時:2013/09/25 22:08
    • good
    • 0

ハードウエアが正しくセッティングされているかどうか確かめてみましょう。


PICkit3 と 基板を接続し電源を入れる。

ファームウエアを最新にするために、
Programmer -> PICkit3 を選択
Programmer -> Settings -> Configuration -> Manual Download を実行

電源の設定をする。
Programmer -> Power を選択
□Power Terget circuit from PICkit 3 のチェックを外す。
Voltageの表示が適切になっていることを確認。

リコネクトして見る。
Programmer -> Recconect を選択
Outputウインドーに
PICkit 3 detected
....
....
PICkit 3 Connected
Target Detected
Device ID Revision = xxxxxx
と出ればOK、出ない場合は、Program タブの Hold In Rest をクリックしてから、再度レコネクトを実行してみてください。
これでうまくいかないようであれば、PICkit 3 または基板の不良が考えられます。
その場合は、PICkit 3 を別のPICマイコンに接続して様子を見るなどが必要でしょう。
Outputウインドーに出たメッセージ全てをそのままに示してください。
    • good
    • 0
この回答へのお礼

ご回答いただきましてありがとうございます。お返事が遅くなり申し訳ありません。
別のPCで試してみました。結果は同じでしたのでご報告させていただきます。

<ProgrammerからPICkit3を選択した時のoutputウィンドウ>
PICkit 3 detected Connecting to PICkit 3...
PK3Err0033: 4 bytes expected, 0 bytes received

Failed to properly connect to PICkit 3

<ファームウェアを手動ダウンロードした時>
Downloading Firmware...
PK3Err0038: Failed to initialize PICkit 3.

Failed to properly connect to PICkit 3

PK3Err0075: Unable to set power.

<Powerにチェックを入れた時に出てきた警告メッセージ>
Voltage Caution
CAUSION:Check that the device selected in MPLAB IDE (pic18F4553) is the same one that is physically attached to the debug tool. Selecting a 5V device when a 3.3V device is connected can result in damage to the device when the debugger checks the device ID.
ここでOKとしても次に見るとチェックが消えています。
<Powerにチェックを入れた時に出てきたOutputウィンドウのメッセージ>
PK3Err0075: Unable to set power.

ずっとMPLABX IDEを使用していましたので、エラーコードが出てきていませんでしたが、
エラーコードから原因が特定できる可能性があるのでしょうか。

PICkit3もしくは基板の不良が考えられますが、PICkit 3 v3.10というプログラミングツールでは、
正常に書き込み出来ています。(プログラム終了時にエラーは出ますが、書き込み自体は終了している)
(ちなみにMPLAB IPEではconnecting errorが出ます)
書き込み後、基板単体でプログラミングした通りの動作を確認しています(LEDのON/OFFプログラムですが)。

コメントいただけましたら幸いです。
どうぞよろしくお願いいたします。

お礼日時:2013/09/14 17:39

PICマイコンでデバッグを行う時には、発振回路が正常に動作していないとデバッグ出来ない事が有ります。



発振のコンフィギュレーション(OSCILLATOR CONFIGURATIONS)の設定はどうなっていますか?
型番がAE-USBPIC44であれば、HSを選択する必要が有ります。
(INTIO1またはINTIO2 でもデバッグは可能です)
    • good
    • 0
この回答へのお礼

ご回答いただきましてありがとうございます。

現在、プログラムは製品付属のサンプルプログラムを使用しています。
ご指摘の点ですが、下のようになっていました。
#pragma config PLLDIV = 5 // (20MHz crystal)
#pragma config CPUDIV = OSC1_PLL2
#pragma config USBDIV = 2 // Clock source from 96MHz PLL/2
#pragma config FOSC = HSPLL_HS

試しにFOSCをHSにしてトライしてみましたが、同じ結果でした。

下記、状況を補足させていただきます。

なお、PICkit3にターゲットを接続していた場合と、ターゲットを接続しない(PICkit3のみUSB接続)場合で書き込み動作してみましたが、
どちらもconnection failed(メッセージは前記同様)になります。
ターゲットが間違っている場合は、Target device was not found. といったメッセージが出るようですが、
これは出ません(ターゲット未接続状態での結果なので別問題かも知れませんが)。

またPICkit3のStatusLEDは、見ている限りbusy等の点灯(点滅)がありません。
programmer使用時は点灯、点滅していました。

どうぞよろしくお願いいたします。

お礼日時:2013/09/11 21:38

エラーメッセージをきちんと補足して欲しいのですが、状況から見ますとPICkit3とターゲットとの間で不具合があるのではないかと思われます。


書き込めた後のエラーならベリファイ時の問題、ターゲットからの読み込みが正常にできていないのではないでしょうか。
PB6とPB7に何か接続していませんか?

この回答への補足

再度レスいただきありがとうございます。

エラーメッセージは、
Connecting to programmer...
The programmer could not be started: Could not connect to tool hardware: PICkit3PlatformTool, com.microchip.mplab.mdbcore.PICKit3Tool.PICkit3DbgToolManager
と出ています。

書き込み時の画面をググってみますと、
Connecting to programmer...
の後に、Firmware・・・といったファームウェアのバージョンか何かを示すメッセージが出るようですが、
ここまで行かず、上記のような接続できなかったというエラーになっています。

PB6,7には何も繋がっていません。コネクタの4,5ピンと接続されているだけでした。

本日、最新のMPLABX IDE(V1.9)で再インストールしましたが、同じ結果でした。

なお、試しにPICkit3を接続せずに書き込みしてみると、何に書き込むのか、という画面が出てきます。
PICkit3を接続しているとこの画面は出ないので、一応認識はされているみたいです。

やはりターゲット側なのでしょうか。
何かお気づきの事がありましたら、お教えください。どうぞよろしくお願いいたします。

補足日時:2013/09/10 19:34
    • good
    • 0

RESETピンやその他のICSP用のピンに大きなコンデンサや負荷が接続されていませんか?

    • good
    • 0
この回答へのお礼

早々のご返事ありがとうございます。

ご指摘の点ですが、回路は秋月電子のマイコンボードを使用しています。
(型番はAE-USBPIC44(PIC18F4553)です)
記載してなくて申し訳ありません。

回路図上では、ICSPコネクタは1ピンが100Ωを介してマイコンのVpp端子およびリセットボタン、
2ピンが電源ライン、3ピンがGND、4ピンがマイコンのPGD端子、5ピンがマイコンのPGC端子につながっており、6ピンは未使用です。

programmerでは(取りあえず)書き込み出来たことから、ボード側ではなく、PCの設定の設定に問題があると思っていましたが、ボード側の不具合が原因ということも考えられるのでしょうか。

お礼日時:2013/09/09 21:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

今、見られている記事はコレ!

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ