FC2カウンター FPGAの部屋 2009年04月08日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

PICマイコンを使った

前はH8だったが、お仕事でPICマイコンを使うことになった。用途としては、水晶発振器の代替ICだ。
CMOS ICでタイマーを作る学生実験をしていて、今まではEPSONのSPG8650Bを使って100Hzのクロックを出していたのだが、ディスコンで代替品を探す必要が出てきた。
そこで、いろいろ探していたが、ある先生からPICはどうだろうということで提案を受けた。実際にプログラムしていただいたのだった。それは1年ほど前のことなのだが、今年から発信器を8ピンのPIC(PIC12F683)に変更することになった。
秋月電子からAKI-PICプログラマー Ver.4を購入してあったので、これでPIC12F683を書き込むことにした。
まずはMicrochipのサイトからMPLAB8.3をダウンロードしてインストールした。うまくC言語がインストールできない。いいやということでアセンブラのみでやることにする。(Freeのところにチェックを入れずにデフォルトでインストールしたら出来ました)
PIC_1_090407.png

PICで遊ぶ電子工作さんのところにPIC12F683の情報が満載なので、これでお勉強。よく書かれていて本当に助かりました。ありがとうございました。
”内部クロックで動作させる”を参考に、0.5秒間隔でLED点滅を5msでGPIOを1、0反転に書き換えさせていただいた。これでプログラムをビルドして、HEXファイルを作ることができた。
さてAKI-PICプログラマー Ver.4で書き込もうと、パソコンにインストールしてあるPICプログラマーVer.6.5を立ち上げて、HEXファイルを読み込み、プログラムしたら最後でオーバーロードというエラーダイアログが出て異常終了。
一応、書き込んだPIC12F683を動作させてみたら、一応100Hz付近のクロックは出るのだが、たまに異常な波形が出ている。やはりだめそうだ。PIC12F683をAKI-PICプログラマー Ver.4をリードするとCONFIGが書き込まれていないみたい。
これではだめだと、PICプログラマ Ver.4 beta6.72 を秋月電子のサイトからダウンロードしてインストールを試みるが、どうしてもDLLがあって再起動しろというダイアログが表示されて、永久にインストールできない。
しょうがないので、ほかのバージョンはないかとCDを探ってみるとPICプログラマ Ver.4 beta6.70があったので、インストールしてみると、インストールできました。何回かやりなおしましたが、ファームウェアもアップデートできました。よかった。
PIC_2_090407.png

これで正常に書き込みができた。出力クロックを測ると99.87Hz?(だったかな)になっていて、少し低いので、ループの中のカウントを1つ減らしたのだけど、今度は周波数が高すぎたので、ループでないところにNOPを2つ入れたらちょうど良くなった。100.06Hz。こんなもんでしょう。
この周波数は電源電圧5Vでの値なので、電圧を変化させると、一旦は周波数が下がって、また上がって、さらに下がるという結果になった。だいたい2.5Vまではそれほど、出力周波数の変動がなさそうので、大丈夫そう。。。
あとは、あと2つ程度、どのくらい周波数に変差があるか調査予定。変動がある場合は1つずつNOPの数の調整が必要だろうか?
しかし、このマイコンいろいろ機能があって面白そう。いろいろ試してみても良いかもしれないと思った。

2009/04/08:追記
5つのPICを上と同様のプログラムを入れて出力周波数を測ってみた。電源電圧4.5Vでの結果は以下の通り。
100.03Hz, 99.89Hz, 99.58Hz, 99.98Hz, 99.59Hz

最初のPICマイコンでだいたい100Hzに合わせたので、こうなった。最初のPICマイコンは動作周波数が高い方だったようだ。電源電圧変動を最初のPICマイコンで調べると以下のようになった。
5V 100.06Hz
4.5V 100.03Hz
4V 100.00Hz
3.5V 99.99Hz
3V 100.05Hz
2.5V 100.11Hz
2V 99.90Hz
追加で2つほど、電源電圧―出力周波数特性を測ったが、だいたい同じ傾向だった。

100Hzからの偏差を少なくするために、プログラムでNOPを2つ入れたのを抜いたら、最初のPICの出力周波数が100.26Hz、最後のPICの出力周波数は99.88Hzとなった。
100.26Hzだと、出来上がったタイマーで約6分カウントすると1秒狂うという精度。まあまあかな???
  1. 2009年04月08日 06:13 |
  2. マイコン関連
  3. | トラックバック:0
  4. | コメント:0