2025年3月5日水曜日

PIC10F222とPIC10F322

 先日、ちょっとしたタイミング制御回路を組む為、PICマイコンを使用。
2、3本程度の制御だったので、一番小規模のPICで十分。
秋月電子の在庫から検討すると10F222が手頃かと思いましたが、
手持ちが無かったので10F322を使いました。

量産案件ならば単価を考慮して10F222を選ぶのでしょうが、今回は単発。
送料かけて10F222を購入してたら割が合いません(笑)

 

無事、10F322で完成したわけですが、
改めて後学の為にと10F222をした場合も検討してみました。
すると!!
ビックリするほど中身が違ったんですね。
量産ならともかく、単発ならば10F322を使用して正解でした。

せっかくなので、その違いを書いておこうと思います。
なお、マイコンレビュアーではないので、
あまりに細かい点まで追求していない点をご留意願います。

 

10F222も10F322も頭は同じ10F。
小規模タイプという意味合いですね。
DIPパッケージは8ピンになっていますが、
使われていないピンが2本も有るので、
当然ながらI/Oピンも少なくなっていて、4本しかありません。

問題はその次の桁。
200番台か300番台かで、雲泥の差がありました。

大雑把に言えば、300番台品は昨今一般的な12Fや16F等の8ビット品を
シュリンクしたような代物です。
アセンブラで書くにしても、ほとんど差は感じないでしょう。

それに対し200番台品は いにしえのPICマイコンの系列と言えます。
12C508等を彷彿とさせる感じです。

Cで書くならば、案外この差は実感できないかもしれませんが、
アセンブラで書くと違いは歴然です。
そもそもこのクラスのPICマイコンはリソースの観点から
Cで書いて大丈夫?という疑念があります。


では少し具体的に差を見て行きます。

10F322の周辺機能はA/Dコンバーターを初め、
8ビットタイマーが2つ、PWMモジュールやCLC、NCO、CWGと、
小規模クラスとは思えないほど多いです。
これでも全レジスタがBANK0に収まっているのは助かりますね。 

それに対し10F222は、A/Dコンバーターこそ載ってますが、
他には8ビットタイマーが1つだけ。
この辺はさすが小規模品と納得する感じです。

そしてレジスタマップを見てみると・・・・・
    INDF
    TMR0
    PCL
    STATUS
    FSR
    OSCCAL
    GPIO
    ADCON0
    ADRES
以上の8つしかありません!

INDF~FSRはどのPICでもお馴染みですね。
それ以外は4つだけって、昨今の一般的なPICを触ってる方なら疑問を感じかと。

200番台品には、隠しレジスタが存在するのです。
それが以下の2つ。
    TRIS
    OPTION
はい、どちらも見慣れたレジスタですよね。

このレジスタの内容は300番台品とほぼ同じです。
ですが、隠しレジスタという点がやっかい。
レジスタマップ上に存在しない為、通常の命令でアクセス出来ません。

ではどうやって扱うかと言うと、専用の命令が用意されているんですね。
TRISレジスタへの書き込みはTRIS命令。
OPTIONレジスタへの書き込みはOPTION命令、という感じです。

では各々のレジスタからの読み出しは??
はい、有りません。
隠しレジスタへは書込みしか出来ないんですね。 


そした多分、200番台の一番大きな差は、割り込みが無い点かと。
割り込みなんて使わなくても書けるから別に困らんと言う方も多いかと。
実際私も割り込みは使わない様に書くことが多いです。

しかし割り込みを使わないという方でも、
割り込みフラグを使ってる方は多いのでは??
例えばタイマーで時間を作る際、タイマーが出す割り込みフラグを
ポーリングして処理する、なんてルーチンを書いたりしませんか?
200番台だと、これが出来ないんです。
割り込みフラグが存在しませんから。

ですのでタイマーを使う際は値を直接読んで処理するという、
なかなかに面倒な手間が発生するわけです。

 

他にも200番台の特徴としては
  内蔵クロック周波数が4MHzと8MHzしか選択できない点
  内蔵発振器の校正値をユーザーが処理する必要ある点
  周辺機能が外部ピンを使用する際、プライオリティが設定されてる点
などが挙げられます。

 

秋月電子での単価の差はビックリしましたが、中身を見てみると価格は納得。
よほどの事がない限り、10Fシリーズを使うならば322の方をお勧めいたします。

0 件のコメント:

コメントを投稿