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を使っている上では、気にする必要はない。

0 件のコメント:

コメントを投稿

※ コメントは管理者の確認後に表示されます

関連記事


この記事へのリンク by 関連記事、被リンク記事をリストアップする」記事
Related Posts Plugin for WordPress, Blogger...

ブログ アーカイブ