趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
出先でちょっとPIC焼きたいなあ、というときのため(だけではないが)に買った激安FHD液晶ノートPC、EZbook2であるが、pickit2が使えない。pickit3はMPLABからであれば焼けるがPICkit3 Programmerからは焼けない。どちらも、PICkit 2 not found. Check USB connections and use Tools->Check Communication to retry. のようなメッセージが表示される。
Windows10(64bit)はダメなのか??そんなことねーよな??どうしよう、、、MikroCで作ったHEXを焼くためだけにMPLABのプロジェクト化しないといけないのか???
ということで、いろいろ調べてみた。
pickit2はVID:04D8、PID:0033なので、ここらへんからDevice ManagerのHuman Interface Devicesを見ていくと、該当するUSB Input DeviceにDevice not migrated (デバイスは移行されませんでした。) のエラーが発生していた。イベントビュアにもERROR 441( Device .... could not be migrated)が記録されている。でも、なぜか、This device is working properly.(このデバイスは正常に動作しています。)なのだ。これが原因かどうかは判らないが、疑わしい、ということで、この解決方法を調査した。
。。。。どこにも回答がない。だれも解決できていない????
ということで、俺的解決方法を備忘メモとして残しておく。
まずは、以下の情報が表示されているとする。
デバイス USB\VID_04D8&PID_0033\5&28e25a0d&0&1 を移行できませんでした。
最後のデバイス インスタンス ID: USB\VID_04B4&PID_6022\5&28E25A0D&0&1
クラス GUID: {79046022-7904-7904-1980-198007056022}
場所のパス: PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(1)
移行ランク: 0xF000FFFFFFFF0023
存在: false
状態: 0xC0000719
で、これが出た場合、悪いのは04D8:0033のpickit2ではなく、 04B4:6022なのだ。よって、この場合は04B4:6022のデバイスを消せばいいのだが、デバイスマネージャで探しても見つからない。よってregeditで該当レジストリを消す。
具体的には、下記のレジストリを消せばいい。(ControlSet001の001は002などかもしれない)
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceMigration
\Devices\USB\VID_04B4&PID_6022]
これを消したら、次はまた別の原因でDevice not migratedエラーが出るかもしれないが、エラーが出なくなるまで繰り返すべし、と。
さてと、これでpickit2使えるかな。。。。。
!!!???
使えない!何も変わらない!!残念!!
Device not migratedは犯人じゃ無かった!!冤罪でした。
悔しいです!!
あまりに悔しいので、気合入れて20時間ぐらい調べて、ようやく原因が判明した。
まず、EZbook2でPICkit2が使えない原因であるが、これはWindows10でも64bitでもなく、このPCが大量のHIDインターフェース機器を内蔵しているからである。
こんな感じ。
で、なぜ大量だとダメかというと、PICkit2 programmerはHIDデバイス20個までしか対応していないから。もし21個HIDデバイスがあって、その21個目がpickit2だとすると、残念ながらPICkit2 programmer は、pickit2を発見することができない。
対処方法は、ただ一つ。ソースコードを書き換えてビルドする。
ソースコードはMicrochipのサイトからダウンロードできる。ビルドはVisualStudio Community版(無償)でOK
修正箇所はUSB.csの
for (int l_loop = 0; l_loop < 20; l_loop++)
というところ。まあ、次のように、200個くらいにすれば、まず大丈夫だろう。
for (int l_loop = 0; l_loop < 200; l_loop++)
ちなみに、大きくし過ぎると、アプリが起動しなくなるので、ほどほどに。
一応、こんな感じでビルドしたものを下記に置いときます(当然無保証)。こんなものでよければご自由にどうぞ。
Tuning Factory UNTRUST download site
Windows10(64bit)はダメなのか??そんなことねーよな??どうしよう、、、MikroCで作ったHEXを焼くためだけにMPLABのプロジェクト化しないといけないのか???
ということで、いろいろ調べてみた。
pickit2はVID:04D8、PID:0033なので、ここらへんからDevice ManagerのHuman Interface Devicesを見ていくと、該当するUSB Input DeviceにDevice not migrated (デバイスは移行されませんでした。) のエラーが発生していた。イベントビュアにもERROR 441( Device .... could not be migrated)が記録されている。でも、なぜか、This device is working properly.(このデバイスは正常に動作しています。)なのだ。これが原因かどうかは判らないが、疑わしい、ということで、この解決方法を調査した。
。。。。どこにも回答がない。だれも解決できていない????
ということで、俺的解決方法を備忘メモとして残しておく。
まずは、以下の情報が表示されているとする。
デバイス USB\VID_04D8&PID_0033\5&28e25a0d&0&1 を移行できませんでした。
最後のデバイス インスタンス ID: USB\VID_04B4&PID_6022\5&28E25A0D&0&1
クラス GUID: {79046022-7904-7904-1980-198007056022}
場所のパス: PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(1)
移行ランク: 0xF000FFFFFFFF0023
存在: false
状態: 0xC0000719
で、これが出た場合、悪いのは04D8:0033のpickit2ではなく、 04B4:6022なのだ。よって、この場合は04B4:6022のデバイスを消せばいいのだが、デバイスマネージャで探しても見つからない。よってregeditで該当レジストリを消す。
具体的には、下記のレジストリを消せばいい。(ControlSet001の001は002などかもしれない)
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceMigration
\Devices\USB\VID_04B4&PID_6022]
これを消したら、次はまた別の原因でDevice not migratedエラーが出るかもしれないが、エラーが出なくなるまで繰り返すべし、と。
さてと、これでpickit2使えるかな。。。。。
!!!???
使えない!何も変わらない!!残念!!
Device not migratedは犯人じゃ無かった!!冤罪でした。
悔しいです!!
あまりに悔しいので、気合入れて20時間ぐらい調べて、ようやく原因が判明した。
まず、EZbook2でPICkit2が使えない原因であるが、これはWindows10でも64bitでもなく、このPCが大量のHIDインターフェース機器を内蔵しているからである。
こんな感じ。
で、なぜ大量だとダメかというと、PICkit2 programmerはHIDデバイス20個までしか対応していないから。もし21個HIDデバイスがあって、その21個目がpickit2だとすると、残念ながらPICkit2 programmer は、pickit2を発見することができない。
対処方法は、ただ一つ。ソースコードを書き換えてビルドする。
ソースコードはMicrochipのサイトからダウンロードできる。ビルドはVisualStudio Community版(無償)でOK
修正箇所はUSB.csの
for (int l_loop = 0; l_loop < 20; l_loop++)
というところ。まあ、次のように、200個くらいにすれば、まず大丈夫だろう。
for (int l_loop = 0; l_loop < 200; l_loop++)
ちなみに、大きくし過ぎると、アプリが起動しなくなるので、ほどほどに。
一応、こんな感じでビルドしたものを下記に置いときます(当然無保証)。こんなものでよければご自由にどうぞ。
Tuning Factory UNTRUST download site
PR
この記事にコメントする
Re:起動しました
>ありがとうございました。
>無事に起動しました。
>Win10では動くPCと動かないPCがあると載っていましたが、このページがもっと上にくるといいですね。
お役に立てて、なによりです。
あまり参照されることのないページなので、検索に引っ掛かりにくいようです。
>無事に起動しました。
>Win10では動くPCと動かないPCがあると載っていましたが、このページがもっと上にくるといいですね。
お役に立てて、なによりです。
あまり参照されることのないページなので、検索に引っ掛かりにくいようです。
助かりました
このページを発見するまで、Surface Pro 5 で Pickit2 を認識しておりませんでした。
「USB\VID_04D8&PID_0033\5&28e25a0d&0&1 を移行できませんでした。」と、
HIDデバイスが多いPCでは動かないのは気づいていましたが、
PCに詳しくないので、諦めていました。
このページで紹介している PICkit2V2kai.exe で認識しました。
秋月のPickit2互換のボード「AKI-PIC2プログラマボード(PICkit2互換)[AE-PICPGM USB]」
も認識できるようになりました。
とても助かりました。ありがとうございました。
「USB\VID_04D8&PID_0033\5&28e25a0d&0&1 を移行できませんでした。」と、
HIDデバイスが多いPCでは動かないのは気づいていましたが、
PCに詳しくないので、諦めていました。
このページで紹介している PICkit2V2kai.exe で認識しました。
秋月のPickit2互換のボード「AKI-PIC2プログラマボード(PICkit2互換)[AE-PICPGM USB]」
も認識できるようになりました。
とても助かりました。ありがとうございました。
Re:助かりました
お役にたてて何よりです。
この件で困っている人、けっこういると思うのですが、不思議とまったく話題になりません。
>このページを発見するまで、Surface Pro 5 で Pickit2 を認識しておりませんでした。
>「USB\VID_04D8&PID_0033\5&28e25a0d&0&1 を移行できませんでした。」と、
>HIDデバイスが多いPCでは動かないのは気づいていましたが、
>PCに詳しくないので、諦めていました。
>このページで紹介している PICkit2V2kai.exe で認識しました。
>秋月のPickit2互換のボード「AKI-PIC2プログラマボード(PICkit2互換)[AE-PICPGM USB]」
>も認識できるようになりました。
>とても助かりました。ありがとうございました。
この件で困っている人、けっこういると思うのですが、不思議とまったく話題になりません。
>このページを発見するまで、Surface Pro 5 で Pickit2 を認識しておりませんでした。
>「USB\VID_04D8&PID_0033\5&28e25a0d&0&1 を移行できませんでした。」と、
>HIDデバイスが多いPCでは動かないのは気づいていましたが、
>PCに詳しくないので、諦めていました。
>このページで紹介している PICkit2V2kai.exe で認識しました。
>秋月のPickit2互換のボード「AKI-PIC2プログラマボード(PICkit2互換)[AE-PICPGM USB]」
>も認識できるようになりました。
>とても助かりました。ありがとうございました。
助かりました
このページを発見するまで、Surface Pro 5 で Pickit2 を認識しておりませんでした。
「USB\VID_04D8&PID_0033\5&28e25a0d&0&1 を移行できませんでした。」と、
HIDデバイスが多いPCでは動かないのは気づいていましたが、
PCに詳しくないので、諦めていました。
このページで紹介している PICkit2V2kai.exe で認識しました。
秋月のPickit2互換のボード「AKI-PIC2プログラマボード(PICkit2互換)[AE-PICPGM USB]」
も認識できるようになりました。
とても助かりました。ありがとうございました。
「USB\VID_04D8&PID_0033\5&28e25a0d&0&1 を移行できませんでした。」と、
HIDデバイスが多いPCでは動かないのは気づいていましたが、
PCに詳しくないので、諦めていました。
このページで紹介している PICkit2V2kai.exe で認識しました。
秋月のPickit2互換のボード「AKI-PIC2プログラマボード(PICkit2互換)[AE-PICPGM USB]」
も認識できるようになりました。
とても助かりました。ありがとうございました。