PICの小部屋 独断と体当たりで、PICなるものを成敗しようとたくらむページです |
簡易ライターがありましたが、ポピュラーな(と思う?)16F84Aへの書き込みが出来ませんでした。12Fxxには書いてたんですけど。思い切って清水の舞台から(?)と、市販のライターを購入しました。一般的には秋月のライターでしょうが、バージョンアップキットまで考えると結構高い買い物になります。というわけでマルツのキットにしてみました。![]() |
これが完成した状態です。秋月よりちょっとコンパクトかもしれません。下は、書き込み後のテストのためのLEDちかちかです。![]() |
![]() |
左は同じく、マルツで売ってる入門キットです。PICはもちろんブレッドボードもついていて、すぐに使え...ません!? この本のライターはマルツのもう少し高いライタで書かれていて、そのままソースをコンパイルしても動きません。こっちは貧乏ライタとフリーのIProgPICWiterです。このライタは、コンフィグの書き込みは基本的にできません。ソースにちゃんとコンフィグの設定をしないとダメです。ここまで判るのに1週間かかりました。ライタ買った次の土曜日にマルツのにーちゃんに相談したら、左の売り物のマニュアルを開いてくれて、これじゃぁないですかねと、教えてくれたわけで。自力ではありません。 |
![]() |
LEDちかちかをやってみましたが、上記のブレッドボードだと動くんですが、こっちの(左:秋月製)では動作しません。はて?下の黒いプレートに指をつけると動きます。接触不良?安物買いで失敗!でも右上にヤスリで塗装を剥がして、ワニ口をかませ、その反対側に指を触れると動きます。さらに、はてな?アース不良?いろいろ調べた結果リセット端子がオープンではダメそうです。10Kでプルアップしたら安定動作しました。入門変をちまちまと作ってみましたが、飽きてしまいました。 以前作った周波数特性の測定器のDDS部分(これも秋月6400円)をPICでやってみよーということにします。 |
実は、上の写真はそのDDS回路です。回路図なんてありません。8ビットデジタルをR−2Rのラダー抵抗でアナログ変換するというものです。以前DACを作った時の1Kと2Kのあまり物の抵抗で作ってあります。画面右下の抵抗群がそれです。右にテストプログラムを記載しました。ウエイト無しの100サンプリングのSIN波データを出力するものです。![]() こんな感じの波形です。う〜ん。汚い!抵抗の制度の問題でしょうか?詳しくは大御所の上野さんに聞いてみることにしましょう。 ちょっと、コンデンサを出力とグランド間に付けてみました。 ![]() |
#include<pic.h> #include"delay.h" __CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT); void ioport(void); void main() { unsigned char i; const unsigned char wav[]={128,134,140,146,152,158,164,170,176,181,186, 191,196,200,205,208,212,215,218,220,223,224, 226,227,227,227,227,227,226,224,223,221,218, 215,212,208,205,200,196,191,186,181,176,170, 164,159,153,146,140,134,128,121,115,109,103, 97,91,85,79,74,69,64,59,55,51,47,43,40,37,35, 32,31,29,28,28,28,28,28,29,31,32,34,37,40,43, 46,50,54,59,64,68,74,79,85,90,96,102,108,115, 121,127,133 }; ioport(); while(1) { for(i=0;i<101;i++) { PORTB=wav[i]; } } } void ioport(void) { TRISA=0x0f; TRISB=0; } 赤字部分が問題のコンフィギュレーションレジスタの設定。ここで記述しないと IProgPICWriterでは書き込みエラーとなります。 |
うん。これならきれいかも。でもこれって1周期350マイクロ秒くらいです。測定レンジは0.1mSです。2.8KHzくらいになりそうです。![]() |
左は、古い周波数カウンタ(これも秋月キット1992年作成)で、2.92KHzとほぼ計算どおりです。 下は数年前に買った秋月のデジタルテスタ。低い周波数なら、ばっちりです。一桁多く表示しています。科学の進歩はすざましいです。う〜ん。inspiring ![]() |
![]() |
左は、トラ技8月号のdsPICです。これなら、どうなんでしょうか。30KHz出せるか?AVRではどうなの?テストプログラムのLEDちかちかは確認できました。 小さいICは16F84Aです。こっちはLCDとボタン読み込みのテストをやってみたいです。でもPIC1個で10Hzから3KHzまでのSIN波の発信機(超安定!)ケースに入れえてみようかな? BASCOM−AVRでも比べてみたいです。 それと、アセンブラも試してみたい。とにかく300円PICで6400円DDSを脅かしたいのです。トラ技のPICだとマルツで1980円(トラ技があるうちはトラ技を買うべし?2冊買いました。) |