【PIC24FJ64GA002】12bitAD2chコンバータLTC1298を使ってみる。

2021年2月21日

秋月電商で買った12bitAD2chLTC1298をPIC24FJ64GA002で動かしてみました。

4線式ソフトウエア制御

SPI制御に似ていますが12bitAD変換なので工夫が必要となります。
CE、Din、Dout、CLKの4線式となります。
データシートのPage11を参照にしました。
クロックはStart,SGL,ODD,MSBF,NULL,12bitADの17bitパタパタする必要があります。

仕様

AD変換の仕様はDinで設定することが可能です。

各BITSGL/DIFFODD/SIGNMSBF結果
内容入力チャンネル設定B11 to B0/B0 to B11—-
設定例111CH1(B11 to B0)

SGL/DIFF、ODD/SIGN、MSBFを全部"1"にすると「CH1」で「B11→B0」となります。
Startも"1″だし、データ出力時はDon’tCareなのでずーっと’1’は都合がいいです。

オシロスコープで各ピンの出力確認

CEピン、Dinピン、Doutピン、CLKピンをオシロスコープで確認してみます。

3603f4e0.png

ソース

プログラムの例はこちら

float LTC1298_CALL(void)
{
unsigned short int ad_data;      //AD変換
ad_data = 0;                    //クリア
LTC_HIZ_OUT = 1;                //入力
LTC1298_CE = 0;               //START
delay_us(1);
//== START_BIT ========================
LTC1298_IN = 1;               //START_BIT
LTC1298_CLK = 0;                //極切り替え
delay_us(1);
LTC1298_CLK = 1;
delay_us(1);
//== SGL_DIFF =========================
LTC1298_IN = 1;               //SINGLE
LTC1298_CLK = 0;                //極切り替え
delay_us(1);
LTC1298_CLK = 1;
delay_us(1);
//== ODD_SIGN ========================
LTC1298_IN = 1;               //CH1
LTC1298_CLK = 0;                //極切り替え
delay_us(1);
LTC1298_CLK = 1;
delay_us(1);
//== MSBF ============================
LTC1298_IN = 1;               //B11→B0
LTC1298_CLK = 0;                //極切り替え
delay_us(1);
LTC1298_CLK = 1;
delay_us(1);
//== NULL_BIT ========================
LTC1298_CLK = 0;                //極切り替え
delay_us(1);
LTC1298_CLK = 1;
delay_us(1);
//== 12BIT ===========================
char i;                     //charで十分
LTC_HIZ_OUT = 1;                //入力
for(i=0; i<12; i++)
{
//== クロック =======================
LTC1298_CLK = 0;        //極切り替え
delay_us(1);
LTC1298_CLK = 1;
delay_us(1);
//== Dout_check ==================
ad_data <<= 1;      //シフト
if(LTC1298_OUT == 1)
{ad_data+=1;}  //'1'set
else{}          //none
}//for(i=0; i<12; i++)
LTC1298_CE = 1;               //END
delay_us(1);
LTC_HIZ_OUT = 0;                //出力
return(ad_data);                //戻り値
}//float LTC1298_CALL(void)

回路図

178e7714.png

よろしければバナーをクリックお願いします!