今まで、PIC16F1827を主に利用していましたが、18pinだと少々IOが足りなくなってきました。また、MCCを使っていると4kWordのメモリでは少々厳しい状況になってきました。そこで、今後利用するPICを検討してみます。
検討のメモ程度なので、参考程度に見てください。
プラモデルの電飾
基本的にはプラモデルの電飾をするためのシステムを構築する目的でPICを利用します。
プラモデルの種類はカーモデルを中心にガンプラにも手を出そうと思っています。
基本的なコンセプトは「使用済みの電池を最後まで使い切る」です。家電で使い古した電池でも、1.2v程度の電圧があるものがほとんどです。その残りのエネルギーを徹底的に使いきってから電池を廃棄しようという試みです。
仕様
- 電池で駆動する
- 使い古した電池で動作する
- 電源電圧の低いPICを利用する(LED駆動を考えると3v程度まで)
- 使い古した電池で動作する
- 人感で動作する
- 人感センサー or 音感センサーの割り込みで動作する
- 通常はSleep状態で待機する
- 電池の残量をチェックする
- 直列電池の個々の電圧をチェックする(転極検出)
- 古い電池を直列で使っていると、1本の電池が急激に容量が減ることがあります。
3本の電池を利用する予定なので、各電池の電圧を定期的に測定するためにADC入力を最低2ケ使います。
- 古い電池を直列で使っていると、1本の電池が急激に容量が減ることがあります。
- 直列電池の個々の電圧をチェックする(転極検出)
選定条件
- PIC16F1827を基準にして、価格、プログラムメモリ、ピン数でつり合いが取れそうなPICを選定する。
- 駆動電源が3v以下のものを抽出する。
- XLPテクノロジー(超低消費電力)のものを選定する。
- 購入は入手しやすい秋月電子通商とする。
- 価格は秋月電子通商しらべ
- MCC(MPLAB Code Configurator)を使うとプログラムサイズが大きくなる。
- プログラムメモリが4kWordでは少々心元ないので、8kWord以上のPICを選定する。
- モデル1つにつき1個必要なため、単価ができるだけ安いものにする。
- 8bit MPUを前提にする。
- 基本的には低周波クロックで動作させる。
- 31kHz(LFINTOSC)を使い省電力で使う。(状況によっては31.25kHz MFITNOSC))
- 開発ツールはPicKit3を使う。PicKit3でサポートされているものを使うこと。
比較表
入手先は秋月電子通商が一番楽なので、秋月電子通商で取り扱っているPICを検討します。
価格は秋月電子通商しらべ(24/9/1現在)
パッケージ | 型式 | 電源電圧(min) | プログラムメモリ(word) | ROM | I/O | ADC | CCP/PWM | 単価 | 備考 |
---|---|---|---|---|---|---|---|---|---|
DIP8 | PIC12F1822 | 1.8 | 2k | 3.75k | 6 | 4 | 1/0 | 200 | |
DIP14 | PIC16F1823 | 1.8 | 2k | 3.75k | 12 | 8 | 1/0 | 220 | |
DIP18 | PIC16F1827 | 1.8 | 4k | 7.25k | 16 | 12 | 4/0 | 260 | 基準にするPIC |
パッケージ | 型式 | 電源電圧(min) | プログラムメモリ(word) | ROM | I/O | ADC | CCP/PWM | 単価 | 備考 |
---|---|---|---|---|---|---|---|---|---|
DIP20 | PIC16F1509 | 2.3 | 8k | 14k | 18 | 12 | 0/4 | 270 | ◎十分なスペックで1827と同等の価格 |
DIP20 | PIC16F1829 | 1.8 | 8k | 14.25k | 18 | 12 | 4/0 | 350 | |
DIP20 | PIC16F18346 | 2.3 | 16k | 28.25k | 18 | 17 | 4/2 | 300 | 〇 |
パッケージ | 型式 | 電源電圧(min) | プログラムメモリ(word) | ROM | I/O | ADC | CCP/PWM | 単価 | 備考 |
---|---|---|---|---|---|---|---|---|---|
DIP28 | PIC16F1933 | 1.8 | 4k | 7.25k | 25 | 11 | ? | 330 | |
DIP28 | PIC16F1936 | 1.8 | 8k | 14.25k | 25 | 11 | ? | 360 | |
DIP28 | PIC16F1938 | 1.8 | 16k | 28.25k | 25 | 11 | 5/0 | 360 | 〇 |
DIP28 | PIC16F18857 | 2.3 | 32k | 56k | 25 | 24 | 5/2 | 330 | ◎28pinではスペック、価格とも最良 |
パッケージ | 型式 | 電源電圧(min) | プログラムメモリ(word) | ROM | I/O | ADC | CCP/PWM | 単価 | 備考 |
---|---|---|---|---|---|---|---|---|---|
DIP40 | PIC16F1937 | 1.8 | 8k | 14.25k | 36 | 14 | ? | 410 | |
DIP40 | PIC16F1939 | 1.8 | 16k | 28.25k | 36 | 14 | 5/0 | 410 | 〇 |
DIP40 | PIC16F18877 | 2.3 | 32k | 56.25k | 36 | 35 | 5/2 | 370 | ◎40pinではスペック、価格とも最良 |
採用PIC
パッケージ | PIC型式 | 採用理由 |
---|---|---|
DIP20 | PIC16F1509 | 価格 |
DIP20 | PIC16F18346 | プログラム開発用 プログラムメモリサイズ |
DIP28 | PIC16F18857 | 価格、プログラムメモリサイズ |
DIP40 | PIC16F18877 | 価格、プログラムメモリサイズ |
ピンアサインは各DIP毎ではほぼ互換がありそうです。回路を設計するときに各機能で互換が取れるように設計する必要があります。互換が取れるような回路にすることにより、PICの載せ替えを可能にします。
DIP20ではプログラム開発用にPIC16F18346を使おうと思います。MCC(MPLAB Code Configurator)を利用するとプログラムサイズが大きくなる傾向があるのでメモリサイズの大きいPICで開発します。プログラムが固まったら、直にCコーディングしなおそうと思います。MCCでの開発は各段に開発工数を減らせますので、MCCでの初期開発は必須だと思っています。
以上 なにかのお役に立てれば幸いです。
リンク
リンク