since 2007.8 by K-ichi

先日の7bit LFSRを16bit化してみた。ガロアタイプはプログラムとの相性がよく、マクロは2命令の追加のみ。ループあたり10命令分の処理増加でできてしまった。
7bit版は周期が127しかなく、100Hzでも1秒あまりで回ってしまったが、16bit版は65535もあるので655秒、1kHz LFSRでも1分以上かかる。聞いても周期は感じられない。

PIC12F675/12F629用、アセンブラソース+HEXファイル

ちなみに前回、「処理」由来ではないかと考えた140Hzのモコモコは見られなかった。やはり「波」由来だったのかもしれない。

16bit化した結果をまた撮ってみた。





デバイスと一緒にPICkit 3を購入
PCを変え、シリアルポートが無くなったために購入したPICkit 3。ゼロプレッシャーソケットが付いた、いかにもなライタではなく、スレンダーな体躯の先に、ICSP(In-Circuit Serial Programming、ISP:In-System Programmingとも)用の1×6の角ピンコネクタが付いている。
簡易DAC回路は、回路的にも物理的にもICSPが難しそうなので、PICkitにソケットを接続し、回路から差し替えて書き込みをすることにした。

購入はmicrochip DIRECTから。80円を切る超絶円高のころで、秋月よりも安く買えた。同時にいくつかデバイスも購入したが、PICkit 3はアリゾナ工場からFedExで、デバイスは2便に分けてタイからDHLで届いた。工場毎の発送なのかもしれない。いずれも発注から1週間もかからなかった。

ソケット周りの接続は、各種PICに対応できるようにと、RCDライタなどと同じ配線にしてある。1ピン側に詰めて刺せば、20ピンあたりまではそのまま使えるはず。ただし、実際に確認したのは、8ピンの12F675のみ。

ソケットは、大昔に秋月で16C84などを購入したときに、オマケでついてきたもの。板バネ式だが、大振りで意外と使いやすい。6ピンの角ピンコネクタは、一般的な2列のものを割って並べて使用。配線は、RCDライタ回路図およびPICkit 3のマニュアルで確認する。代表的な回路例にあったため、MCLRは10kΩでVDDに接続してある。


ソケット基板

基板の配線

ソケットと接続した様子


MPLAB IDEのメニュー

電源設定ダイアログ
PICkit 3は、基本的には回路側で電源を入れた状態でICSPを行う。回路側は、3Vでも5Vでも問題なく、PICkit側で検出して調整してくれる。
今回のようにICSPでない場合は、PICkit側から電源を供給することもできる。ただし、30mAまでと制限がある。普通に書き込む分には、この制限は問題にならないはず。

PICkitから電源を供給するには、[Programmer]-[Select Programmer]でPICkit 3を選択した後、[Programmer]-[Settings...]で設定をする。
[Power target circuit from PICkit 3]にチェックを入れ、スライダで電圧設定をする。このとき、必ず、2段階下げた4.750Vに設定する。3Vデバイスなどでは、当然定格まで下げなければいけないが、5Vデバイスでも5.000Vではまともに動作しない。

某国民的掲示板でも「バグだ」と言われているようで、実際に2~3回書き込みをしただけでデバイスIDが読めなくなり、読みも書きも消しも何もできなくなる。デバイスは壊れたわけではなく、上記のように電圧を下げれば普通に使えるようになる。理由は不明だが、RCDライタで「12F675は気難しい」と言われることに関係しているのかもしれない。


電圧に関する注意書き
電源設定を変えたりPICkitをつないだときなど、頻繁に注意書きが現れる。

「挿してあるデバイスを確認しろ。5V設定で3.3Vデバイスが挿さっていると、デバイスIDを調べただけで壊れるかも。」ということなので、5Vデバイスの12F675を使っている上では、気にする必要はない。


2019/6/9 追記

現在もPICkit3から電源供給して書き込みを行っているが、次のようなエラーが出ることがあった。
PICkit 3 is trying to supply 5.000000 volts from the USB port, but the target VDD is measured to be 4.875000 volts. This could be due to the USB port power capabilities or the target circuitry affecting the measured VDD.

The target circuit may require more power than the debug tool can provide. An external power supply might be necessary.
Connection Failed.

どうやら、USBの電源供給が間に合ってないらしい。
ターゲット回路は無いので、USB側の問題になる。ただしUSBの規格上、電源容量的には問題は無い。ありあわせのケーブルを使っているためだろうか。PICkit3に昇圧レギュレータが内蔵されていないのなら、そもそもUSBの電圧が低めなのかもしれない。
いずれにせよ、4.75V設定にすることで書き込みはできている。

たいていの場合、
Unable to connect to the target device.
Failed to get Device ID
という素っ気ないメッセージしか出ないので、ずっと謎のままだった。

ちなみに、何度か6ピンコネクタを逆挿ししてしまったが、ライタもデバイスも壊れることはなかった。

0 件のコメント:

コメントを投稿

.

関連記事


この記事へのリンク by 関連記事、被リンク記事をリストアップする」記事

ブログ アーカイブ