PIC
Peripheral Interface Controller
Microchip社が開発しているマイクロコントローラの総称。
独自のアーキテクチャ(構造)を持ち、他社のマイコンと比べると便利で独特。
準備
準備するもの一覧
予算:5000円程度
- Pickit2(3500円)
- PIC本体(DIP型,小型のほうがお勧め,80~500円)
- ブレッドボード(マイコンのサイズに合わせて選ぶべし、8ピンのPICなら20列はほしいところ)(100円~1000円)
- 発振子(水晶発振子は高いが周波数が正確、それなりな精度で手ごろな値段のセラロックがお勧め、ただしいらないものもある)(単価20円)
- LED(なるべく省電力のものを、でかいとトランジスタが必要)(100円)
- LED保護抵抗(500~10k)(100円)
- スイッチ(電源用、DIPスイッチもあると便利)(20~100円)
その他
- パソコン(Pickit2のためにwindowsで,そんなにスペックは必要ないがUSBが必須)
- めげない信念
ライターさえ含めなければ1500円で大体いける。
PICライターは自作すれば安く、いいものなら高い。
今ならPIKkit2がお勧め、秋月で3500円です。
まずMicrochip社までお使いにいってくること。
マイコンのデータシートをダウンロードするべし。
ただしgoogleなどで型番を探してpdfをダウンロードしたほうが早い。
24F,dsPICを使うならまた今度にしてくれ。そんな高性能なもの使いにくくてしょうがない。
日本語があるなら日本語でもかまわないが、ほぼ英語と中国語しかないと思っていい。
またアセンブリ言語ならばそのままアセンブることができるソフト MPLAB IDE が手に入る。
C言語を使いたかったら、mikroelectoronika社のmicroCなんてソフトがある。もちろん解説は英語。
MPLAB IDE に他のコンパイラを混ぜて使うことも可能。ただし俺は知らない。
↓も参照するといいかも.
開発環境
わからなかったら先輩に聞くとか雑談に書き込めばいいかもしれない。
実戦(実践)
最近は秋月電子通商から3500円でPICkit2が買えるようになったため、PICでも比較的簡単に開発が可能になった。
君が今何年生であと何年やるかわからないけど、数年やるならPICのほうが安く済む。
AVRも安いっていう意見もある。
どちらがいいかなんて人それぞれ、名前がかっこいい方を使えばいいと思うよ。
まず、単純なことからやっていこう。
一つ目は、LEDを光らせてみる。
二つ目は、LEDを点滅させてみる。
三つ目は、A/D変換してみる。
四つ目は、PWM波形とか出してみる。
五つ目は、信号解析とかしてみる。
という感じでやると、何でもできるようになりそう。
使うPICは18pinのPIC16F88をお勧めする。
よくも悪くも18pin、このサイズ、この値段は便利。
ただしUARTとSPIを同時に使えない弱点もあるので注意。
初めての開発は、アセンブリとC言語だったらわかる方を使うことをお勧めする。
両方わからないならC言語のほうがおすすめ。ずっと後にも使える。
ただPICのプログラムがアセンブリで書けるなら、C言語でも余裕だと思う。
C言語での開発の場合
C言語でPICのプログラムを書く時には,主に二つの方法がある.
- レジスタの値を直接書き換える
- ライブラリを使用して書き換えてもらう
ライブラリとは,いくつかの処理を関数化することにより,引数を入れるだけで設定が終わるという便利なものの集まり.
やっていることは結局レジスタを書き換えることであり,プログラムとしてはそこまで大きな違いはない.
ただしライブラリは各マイコンごとに用意されていて,関数名や引数が同じであるのに対して,レジスタはマイコンごとに違う場合がある.
別のマイコンに乗り換えるとき,ソースを大幅に変更しないといけない場合がある.
逆にライブラリはコンパイラに依存するため,コンパイラを変更するとソースコードがまったく使えなくなる.
マイコンを使うのが自分だけなら環境はあまり変わらないので,ライブラリを使っていくほうが簡単.
一方で多人数で扱いたい場合はレジスタを書き換えたほうがいろいろと無難.
挑戦
まずは実戦を終わらせないと.
PIC12F1822
秋月で取り扱いが始まった新シリーズのPIC.
このシリーズのPICは同サイズのPICに比べ,低価格,高性能という特徴を持つ.
ということで.PIC12F1822を買ってみた.
1個80円という驚きの8ピンマイコン.
5個=400円
なんか新機能としてマイクロタッチなんてついてるけど,それはまた今度.
残念ながら,mikroCはPIC12F1822に対応していない.
今回はHI-TECH Cを使用.
最近のMPLABならコンフィグちゃんたちも設定がプログラム外でもできるので,ライブラリさえ使用しなければほぼ同じ使用感.
昔はこんな機能なかった気がする.
ということで動作実験.
最新のデバイスリストに更新しなければ,pickit2が検出できない模様.
pickit2に最新のデバイスリストがあるので,それをダウンロードして上書きする必要がある.
アップデート方法-参考資料:
PICkit2アップデート.pdf
結果:問題なくLEDが点灯.
1つのピンを入力にして論理反転してみたり.
確かにいくつかコンフィグちゃんが増えてたけど,12F683と比べればそこまで変化はない感じ.
素晴らしい機能が,機能ピンの位置を変更できる.
16F88だとSPIとUARTが被っているので,変換機として使うことはできなかったが,今回はできそう.
そのうちUART⇔SPIの回路とプログラムでも作って公開しようと思う.
最終更新:2012年01月19日 10:32