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冊買いました。)