« vmwareのその後の後日談 | Main | 今月のラーメン »

2010.08.28

PICの覚え書き

最近、仕事でPICのプログラムなんてやってます。

んで、ちょっと引っかかったトコを覚え書き。
(ド初心者丸出しですな)

●pic16f84aを16f648Aへ置き換えるための16f648Aの設定及びプログラムの変更点

1.データ用メモリでユーザーが使える範囲が違う。

16F84Aはバンク0 0x0C,バンク1 0x8Cから、16F648Aはバンク0-0x20,バンク1-0xA0から。 データメモリマップを確認すること。

2. コンフィギュレーションが違う

 PICの型番にあわせて、コンフィギュレーションを変更する必要あり。

 16F84Aを16F648Aに変更する場合、LVP等をオフにする必要あり。 
    _CP_OFF            コードプロテクト
    _WDT_OFF        watch dog timer
    _PWRTE_ON        power up timer
    _INTRC_OSC_NOCLKOUT    発振器指定
                以上4項目は84Aと同じ(内容は変更)
    _BODEN_OFF        ブラウンアウトリセット
    _DATA_CP_OFF        データプロテクト
    _LVP_OFF            低電圧プログラミング
    _MCLRE_ON        マスタ・クリアピン有効
                以上4項目は84Aにはなかったので追加

3.初期設定

 16F84Aを16F648Aに変更する場合、最初にコンパレータをオフするなど、初期設定が必要な場合があり。
リセット直後、デジタルポートRA<3:0>は無効にされ、アナログポートが有効になっています。コンパレータの入力はグランドに落とされます。デジタルポートを有効にするにはCMCONに0x07を書き込む必要がある。 リセット直後はVrefは無効になっています。
    CMCON : Comparator Control register
    VRCON : Voltage Reference Control register)

4.レジスタのアドレスが変更
 16F84AではEEPROMを使用するためのレジスタはバンク0、16F648Aではバンク1になっているので、バンク切換えが必要。他の84Aにあるレジスタは648Aでも同じアドレスにある。

●pic16f873aのプログラムを16f886へ換えるための変更点

1. コンフィギュレーションが違う

 PICの型番にあわせて、コンフィギュレーションを変更する必要あり。

2.初期設定

・アナログポートの設定
 アナログポートはデフォルトでアクティブ。デジタルI/Oとして使うには設定が必要。
 873AはADCON0,ADCON1を設定するが、886はさらにANSEL,ANSELHの設定が必要。
 特にANSELHは、これを設定しないとポートBをデジタルI/Oとして使えないので注意。

|

« vmwareのその後の後日談 | Main | 今月のラーメン »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/14163/49272841

Listed below are links to weblogs that reference PICの覚え書き:

« vmwareのその後の後日談 | Main | 今月のラーメン »