MAX10のボードがやっと動いた
そんなわけで、PIC書き込みのシーケンスを徹底的にデバッグすることにしました。
PICの各端子をオシロで見たところ、MCLR、PGM、PGC、PGDの波形は正常に来ていました。付録の本を読むと、LVPビットが0クリアされていると低電圧モードが使えないということが書いてあります。予想される原因は、最初にFPGAとつないだときの書き込みで失敗して、LVPビットも含めて様々なコントロールレジスタに全部0が書き込まれてしまった、のではないかということです。(LEDの点滅がそのときだけ変だった)
全身の秘孔をすべて突かれたようなものですね。あたたた
早速、秋月に行って交換用のPIC18F14K50と、何かに使うかもしれないと思いPICKIT3と、ICソケットを買ってきました。
そして、MAX10-JB基板からPICを外してICソケットを付けました。DIP20ピンを外すのは結構大変でしたよ。
しかし、焦りすぎたせいか、うっかりPGCの端子を5Vにショートさせてしまいました。5Vの安定化電源がブーンと怒ったような音を上げて、1.36Aくらいの電流が流れてFPGAがお亡くなりになりました。
マルツに再び行って、2冊目の本とFB基板セットを買って帰ります。夜、家に帰ってきてから再チャレンジです。
5Vがショートしていないことを確かめて、新しいFPGA基板と、新しいPICで、期待に震えながら電源ON!!
おおっ、LEDが緑色に光って書き込みが完了したではないですか!!
そして、古いPICに差し替えてみると起動しない。失敗を示す白の点滅だ。
これで、PICに書き込めない原因はPICの個体の問題であることがはっきりしました。
PICKIT3を使って、書き込めないほうのPICを調べてみました。
やはりBlack Checkが通りません。Not Blankです。何かが書き込まれているようです。
なんと、EraseしたらMAX10-FBとJBボードでも書き込みができるようになりました。昨日の苦労が嘘のようです。
推測は正しかったようです。何らかの原因で、FPGAからPICへの書き込みに失敗してVCPビットが0になってしまい、低電圧プログラミングモードに移行できなくなっていたようです。
どういう原因でVCP=0となるほど激しく書き込みが失敗するのかはわかりませんが、ひとつだけ、確実にわかったことがあります。
J1~J4をショートしたまま(PICへの書き込み用の状態)で、少なくとも私の使っているPCのUSBポートに挿すと、PICに変なデータが書き込まれて、起動しなくなってしまう。
再度安定化電源から5Vを供給すれば治るのですが、昨日のこういう波形
が送られてPICがメチャクチャな動作をするのでしょう。
そもそも、FPGAが起動したら問答無用で即PICに書き込みにいくのではなく、押しボタンスイッチを押したら書き込む・・とか、ちょっとのゆとりが欲しかったですね。そうすれば、こんな1日半の苦労もしなかったと思います。
おかげでPICの書き込みシーケンスには詳しくなれました。(なりたくない)
あと、5Vのショートする危険があると思う箇所があります。
このポリスイッチです。足がくねくねとしてバネ状になっていますね。
この状態なら大丈夫なのですが、基板を裏返したりして机に押し付けると・・
あっ!
ごらんのとおり容易に寝てしまいます。このポリスイッチには5Vが来ているのです。VIO5というのは、FPGAボードの3.3V電源につながっているのですから・・・恐いですね。5VがFPGAの電源につながって、一瞬でパーです。
だから、この基板に限っては、ポリスイッチの足はしっかりと伸ばしてから奥まで挿して倒れないようにしたほうがよいでしょう。
ポリスイッチは温度で抵抗値が変わるデバイスですから、足を短くして基板に近づけると温度が上がりにくくなってトリップしにくくなるかもしれません。もしかすると、がっちりと固定すると割れたりするのかもしれません。
でも、そんなことにこだわってショートさせることのほうがよっぽど危険です。過電流に対する感度や信頼性を優先させるか、それともうっかりFPGAを壊して2冊目の本を買う可能性を減らすか、あなたらなどちらを選択しますか?
私なら迷わず足を短くします。
今日の成果をまとめると、
- FPGAからの書き込みに失敗した際に、PICが低電圧プログラムモードができない状態になってしまっていた
- PICKIT3でEraseしたら復活した
- ICソケットは使ったほうがいい。書き込み失敗して直せなくなる可能性があるから。
- J1~J4をつないだままパソコンのUSBポートに挿すとプログラムが破壊された
- FPGAのIOに5Vが加わると壊れる。俺は2冊目を買った。Chick show !
- ポリスイッチの足は短くしたほうがよい
おかげでたっぷり楽しむことができましたが、せっかくなら書き込み済みのPICで販売してほしかったです。
| 固定リンク
コメント
ご苦労様でした。
私は携帯機器アダプターを使いましたが、うまくいかず、PCのUSB端子でなぜか完了したのに納得せず、再度挑戦してしまい、とどめを刺してしまいました。
基板を新調してICソケットをつけて新品のPICにiPhoneのアダプターでやっと完了することができました。 PICは直につけてしまうと、取り外すのが困難ですね。
圓山さんの情報を見ていると苦心されているケースがままあるように思われます。
投稿: | 2016.05.10 13:19
USB充電器もD+/D-のプルアップ/プルダウンや、内部に終端抵抗が入っているとか、いろいろやっていると思います。
PICの取り外しは大変でした。
取り外しをせずに書き換えられなくなったPICを復活させるためには、MCLRに9V加えればいいと思うので、006Pを買ってきたのですが、まだ試してはいません。
006P技が成功すれば多くの人が助かると思います。
投稿: なひたふ | 2016.05.11 08:21
アダプターの挙動がわからない時は、ポリスイッチのところで5Vを供給するか、VCC33から3.3Vを供給するかした方が安心ですね。
^MCLRは…理解できてません。 調べています。
投稿: | 2016.05.11 11:41
CQ出版のサイトでも記載されていますがPCからの給電はNGとのことです。
今回の件は、基板というかシステムとしてはUSB BCのDCPのみを想定していたようです。
以上、ご参考まで。
投稿: watari | 2016.05.17 21:50
人柱によってバグレポートが溜まっていくのです
微力ながら貢献できたかしら
投稿: なひたふ | 2016.05.18 10:54
今更ですがこの書籍を購入したので記事を読みました。
fpga逝かれてしまったのは笑ってしまいました。
参考にさせていただきます。
投稿: | 2017.03.08 09:50
趣味勉強用にオールイン版を買おうか迷ってたんで参考になります.
ボードは個別に買った方がよさそうですな..
投稿: cartman | 2018.07.31 17:06
私も、PIC書き込みが出来ず、相当なやみました。ジャンパーの接触も含め、回路図と基板パターンで断線がないか、調べましたが、まさか電源品質に依存するは。
幸いだったのは、PICは初めからICソケットを使った事です。テキストには「背が高くなるから勧めない。」と意図不明なコメントがありましたが、無視してICソケット使ってよかったです。
この なひたふ氏の記事を発見しなかったら、とっくに挫折してたでしょうね。助かりました。ありがとうございました。
そうそう、波形解析されたデジタルオシロの型番を教えていただけると幸いです。
投稿: テラ | 2019.02.06 21:10
今更ながらMAX10を使ってみようと思ってFPGA電子工作スーパーキットを購入し、マルツのパーツを買って組み立てたのですが、PICに書き込めませんでした。はんだ付け不良を疑って全部半田ごてを当てなおしたり、信号の波形をオシロで確認したり(2016.05.06のブログは見ていました)、電源を様々なACアダプタや安定化電源やモバイルバッテリーに変えたりと、どうやっても動作せず、Webで検索したところ、この記事に行き当たりました。
書かれていた通り、PICをPICKitでEraseしたら、一発動作しました。
この情報が無かったら、あきらめていたかもしれません。重要な情報を載せていただき、大変感謝しています。
投稿: dad | 2021.11.14 15:30