TIのMSP430を使用してパワーデバイスの電圧を測定しようとしています。電圧源は、ターゲットボードのA1(つまりP4)とグランド(つまりP1)に接続されています。
関連するコードは次のとおりです。
ADC10CTL1 = INCH_1 + CONSEQ_0; //A1, single measurement
ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE + ADC10SR; //same as sample temperature sensor code
ADC10CTL1 &= ~ADC10DF; //setting binary format for ADC10MEM
ADC10CTL0 |= ENC + ADC10SC; //Sampling and conversion start
__bis_SR_register(CPUOFF + GIE); // LPM0 with interrupts enabled
//read result
次の問題が発生しています。
ADC10MEMの内容をAPに出力していますが、ADC10MEMの先頭の6ビットが0ではなくすべて1であることがわかります。同じ理由を取得できません。
ADC10MEMの最後の10ビットだけを考慮すると、値は電圧の上昇と下降に伴って増減することがわかりますが、次の式を使用してVinを取得すると次のようになります。
N = 1023 *((Vin --VR-)/(VR + --VR-))、正しい値が得られません。(VR + = 1.5V、VR- = 0V、バッテリーがターゲットボードに電力を供給するため)N:ADC10MEMの値(10進数)
どこが間違っているのかわかりません。アナログ入力(ADC10AE0 | = 0x10)のピンを有効にし、方向(P4DIR | = 0x01)も設定する必要がありますか?
ありがとう!