ちょっとは人のためになる事をしないとインターネットコミュニティーの皆様に申し訳がないかと思いながら、自分の備忘録ていどでしかなく、実際の所たいした情報も提供できないでいるブログ
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
PICライターとPIC12F629(練習用)、PIC16F818を購入。まずは簡単なところでデジタル時計作成を視野にPICプログラミング研究中。いままでわかったこと。
7セグ表示: 8080時代のマイコンよろしくダイナミック表示にせざるをえまい。この方式、中学生の頃見たときはなんて面倒なことするのだと驚いていたのだが(キーボードマトリクスもね)、長生きしていろいろな物を見てきたおかげで、まあ普通じゃんって感じです(笑) LEDに10mAを流した場合、コモン側は最大70mAになる。PIC16F818のPORTA, PORTBのソース・シンク最大電流(Maximum current sunk/sourced by PORTA/B) 100mA 7セグLEDはGL9A040Gを購入。 VF=1.7(TYP) IF=10mA 電源電圧5Vより、制限抵抗=(5.0V-1.7V)*0.010A=330Ω 計時: 当初はAKI-H8 3048Fでコントロールした実績があるRTCモジュールを使う予定だったが、200円のPICに500円のRTC?と疑問になり、RTCは使わない方向に。 PICのデータシートにかかれているように、32.768KHzのクリスタルを使えば簡単だが(タイマー割り込みの整数倍が1秒になる)、なかなか安く手に入らない。 そこで60KHzのクリスタルを購入(100円@秋月)。これを非同期カウンタで入力し、割り込み毎にタイマーレジスタを調整する方式とする。 PIC自体は内蔵オシレーターで4MHz動作させる。 クリスタル発振60KHzをプリスケーラで1/8分周して7500Hzで使う。 4MHz動作のコアからみた7500Hzは非常に遅い。 CPUの533クロック(4000000÷7500=533.333…)で非同期カウンタが1進む。 タイマーレジスタオーバーフローの割り込みから非同期カウンタが1進む前にタイマーレジスタを再設定すればレジスタ書き換えの遅延の影響をうけずに計時できる。 533クロックあれば大余裕。 割り込み毎のタイマーレジスタの初期値は 65536-7500=58036=0xE2b4 クリスタルに付けるコンデンサの容量: Capacitive Loading Specs on Output Pins: OSC2 15pF 60KHzクリスタルの負荷容量 12.5pF (秋月のホームページ) 外付けコンデンサなしでいけるってことかな。むしろ容量減らしたいくらい。直列に75pFでもつないだほうがいいのかな。 実際、コンデンサ付けずにOSC1/OSC2にクリスタルをつないだだけで発振してる。 コンデンサなしでよさげ。 PR |
カレンダー
カテゴリー
フリーエリア
最新CM
[02/07 @naoshi65536]
[02/07 忍]
[09/18 とおりすがり]
[06/26 ilmare]
[03/16 とおりすがり]
最新記事
(01/30)
(01/30)
(08/13)
(05/26)
(04/08)
最新TB
ブログ内検索
カウンター
アクセス解析
|