12F509 を弄って遊んでみた

今年最後のお遊びである
一個50円で入手出来る8pinのマイクロコントローラチップである

IMGP6306

<@50円のチップ、コストパフォーマンス抜群である>

この12F509はプログラムエリアがフラッシュメモリ1024wordの容量である
メモリは41byteで、5つの入出力ポートと1つ入力専用ポートで計6ポートである
その中の3ポートを内部プルアップする事が出来るので、この手の変換には向いている

マイクロチップ社ではベースラインと位置づけれる、1命令12bitのCPUコアである
初めてベースラインのプラグラムをしてみたのであったが
以外と手強いのである….

普段使っているのは、ミッドレンジと呼ばれる1命令14bitのCPUコアなのであるが、微妙に色んな所が違うのであった
ポートの入出力設定のやり方や、メモリのマッピング等々詳細が違っている
大きな点は、ハードウェアスタックが2つしか無いので、2つ以上のネストは出来ないのと、割込みが無いのは承知であったが、微妙な所で時間が掛かってしまった

まぁ、そうは言っても@50円は魅力的である
約4MHzの内蔵RCクロックもあり、簡単な制御であれば最適のコントローラであろう (慣れないとプログラムが面倒であるが)
今回の工作は、BCDスイッチ入力を16段階でPWM出力する、PWMコンバータである
0-Fの入力で16段階でのPWM出力をするプログラムである

PWMなら12F683等のチップを使った方が効率的であるが、16段階なので手作りのソフトウェアPWMにしてみた、今回の内容はBCDスイッチの数値に合わせてPWMを出力するだけの制御である

IMGP6305

<でっち上げた、PWM評価ボード>

IMGP6304

<とりあえずは、BCDスイッチとデューティは同期OKである>

初めてのベースラインチップでのプログラムは慣れないことも有って、思った以上に時間が掛かってしまったが、とりあえずは動くモノは出来たので、ヨシとしよう

さらりと遊ぶ筈が、今年最後の嵌まりゴトになってしまったのであった

投稿者:

miniDATA

その昔PCのBIOS・デバイスドライバ等の開発と機器のファームウェア開発に従事した元技術者(主にアセンブラ)  なぜか、昔のモノが大好きで昭和時代のクルマやバイクに惹かれてしまい懐古趣味全開になりつつある自分が、怖いと感じている 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です