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



1)4線式ソフトウエア制御(SPI風)
CE、Din、Dout、CLKの4線式となります。
データシートのPage11を参照にしました。
クロックはStart,SGL,ODD,MSBF,NULL,12bitADの17bitパタパタする必要があります。

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






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

SGL/DIFF、ODD/SIGN、MSBFを全部"1"にすると「CH1」で「B11→B0」となります。
Startも"1"だし、データ出力時はDon'tCareなのでずーっと'1'は都合がいいです。
3)CE、Din、Dout、CLKの波形
3603f4e0.png

4)プログラムの例
プログラムの例はこちら
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)

間違ってたらゴメンね!
5)回路図はこちら
178e7714.png