JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

PIC16F1705 OPアンプテストその1

2019-04-13 11:16:47 | PIC16F1705

 PIB16F1705には2つのOPアンプが内蔵されています。これは、このPICの大きな特徴です。

 OPアンプのテスト1として、PIC内のFVR(Fixed Voltage Reference)の電圧、1.024V,2.048V,4.096VをOPA1をボルテージフォロアにして、外部に取り出してみます。

 OPAモジュールは、下の図のような構造になっています。設定は、OPAxCONで行います。(x=1,2)

 

 OPA1を有効にするには、OPA1CONレジスタのbit7(OPA1EN)=1とします。

 OPA1をFVR Buffer2に接続するには、OPA1CONレジスタのbit1:0=11とします。

 OPA1をボルテージフォロア接続にするには、OPA1CONレジスタのbit4(OPA1UG)=1とします。

 今回は、OPアンプのスピードは関係ないので、OPA1SP=0(Low Speed)とします。

 次に、FVRの設定は、FVRCONレジスタで行います。

 FVRCONレジスタのbi7(FVREN)=1として、FVRを有効にします。

 参照電圧は、FVRCONレジスタのbit3:2(CDAFVR)で行い、

 01=1.024V

 10=2.048V

 11=4.096V

 となります。

 CDAFVRの値を変えて、出力(OPA1OUT=RC2)を測定してみました。

 CDFVR=01=1.024Vの時

 

 CDAFVR=10=2.048Vの時 

 CDAFVR=11=4.096Vの時

 FVR(固定参照電圧)を外部に取り出すことができました。(かなり正確です)

 メイン関数だけを示します。(今回は、内部クロック8MHzとしています。CDAFVRは、4.096V出力になっています。)

void main() {
    OSCCON = 0b01110010 ;     // 内部クロック8MHz
    ANSELA = 0b00000000 ;     // アナログ使わない
    ANSELC = 0b00000000 ;     //
    TRISA  = 0b00000000 ;     // 全て出力
    TRISC  = 0b00000000 ;     // 全て出力
    PORTA  = 0b00000000 ;     // PORTAクリア
    PORTC  = 0b00000000 ;     // PORTCクリア
   
    OPA1CON = 0b10010011;   //OPA1EN=1,OPA1UG=1,OPA1NCH=11
    FVRCON = 0b10001100;    //FVREN=1,CDAFVR=11
   
   
    while(1){
      
    }
}


最新の画像もっと見る

コメントを投稿