PICに入門し始めた

組み込みを以前からやりたいと思っていたのですが、ついにやる気が出てPICを始めました。最初はコンピュータ入門もかねてアセンブリでやろうかと思っていたのですが、さすがに組込入門とPICアーキテクチャ入門を同時にやるのは厳しいので、先にCで普通にかけるようになってからにします。PICはAVRよりも細かい品種が多数あって、特定用途に特化したチップが極めて安いのがポイントかと思います。

初心者によるメモなので、これは決して参考にしないように。あくまでも自分向けのログです。
購入したのはPICKit3です。買った翌週に4がでましたが、初心者なので気にしないことにします。Linuxでも一応開発はできるようですが、ひとまずWindowsで開発することとします。

チップは値段だけ見て適当に買ったPIC16F677というものです。I/Oが多いのがポイントらしいですが、現状特に活かしていません。また、入門書を参考にしてはいません。したほうがいいのかもしれないけど、気にいるものが今のところ見つかっていなくて…

  • ハマったところは以下の2点です
    PICKitからの給電は、設定で有効にしないとされない
  • __delay_ms() はインライン関数でコンパイラの時点で展開されてしまうので、定数のみ受け入れる。コンパイル時に特にエラーは出ないで静かに動かなくなる

ちょうど所属している鉄道研究会の新歓時だったので、ドアスイッチの接点状態が変化するとE233系などのドア上ランプと同じく0.3秒点滅を5回するものをつくってみました。こちらは内蔵クリスタルを使用しているため、回路が極めてシンプルです。

今後はハードウェアPWMをマスターして、Nゲージ鉄道模型を高精度に駆動できるコントローラを制作したいです。また、ソレノイドバルブ(電磁弁)を制御してエアシリンダを駆動できるものもそのうち作るつもりです。高精度で駆動するには外部Xtalが必要ですが、キャパシタが別途必要なのを失念していました。準備しないとー

ハードウェアPWMはなかなか鬼門で、PICの品種によって命令が全く異なります。結局は英文データシートを見てレジスタ構成を自分で把握して書いていく必要があります。ゆるりと頑張っていきたいです

広告
カテゴリー: 鉄道, 電気電子 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中