This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR6989:ADC测量与MSP430FR6988不同

Guru**** 2394305 points
Other Parts Discussed in Thread: MSP430FR6989, MSP430FR6988, MSP-FET

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/663035/msp430fr6989-adc-measurement-differs-from-msp430fr6988

部件号:MSP430FR6989
主题中讨论的其他部件: MSP430FR6988,MSP-FET

团队,

我的客户使用MSP430FR6989,他们在比较ADC12测量值与使用MSP430FR6988的测量值时看到差异
在两种情况下,它们都在测量蓄电池电压。 MSP430FR6989提供的电压比MSP430FR6988低大约200mV

两台设备使用完全相同的SW映像。 结果可在两种设备上重现。 MSP430FR6989的故障测量值也可复制到另一个器件上。

据我理解,应该没有任何区别。
您能否给出可能导致这种情况的提示?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    FRAMziskus,您好!
    实际ADC代码有何区别?

    他们是否使用TLV进行校准?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    采样频率是多少?

    他们可以尝试增加这一问题,看看这是否也有帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Cameron,

    代码没有区别,我使用完全相同的二进制代码,是的,我使用TLV进行校准。

    以下是代码:

    #define CAL_ADC_20VREF_factor *((unsigned int *) 0x1A2A)//< REF 2.0 -V参考
    #define CAL_ADC_GANGE_factor *((unsigned int *) 0x1A16)//< ADC Gain Factor
    #define CAL_ADC_OFFSET *((unsigned int *) 0x1A18)//< ADC Offset

    TLV - MSP430FR6988:0x01A00h: 06 06 23 CD A8 81 30 20 08 0A 8e A5 2b 1c 00 15 00 F8 Fe 11 10 Fe 7f 00 00 6a 0A 3D 0c 3D 06 56 07 fb 04 db 05 12 06 8f 81 F4 80 04 81 15 10 79 5e 45 66 80 23 83 86 a0 6a B5 AC 48 12 80 bc.

    TLV - MSP430FR6989:0x01A00h: 06 06 AB 7e A7 81 30 20 08 0A 84 da 0c 2c 3a 00 2a 00 F8 Fe 11 10 ff 7f 00 03 0A dc 0b 00 06 1D 07 cc 04 af 05 12 06 BA 7f E1 7f 0e 80 15 10 49 62 F9 83 9c 89 a6 69 57 3e b9 e9 30 72 39 93

    作废电池_测量(作废)

    无符号的long ulAdcCorrected;


    //打开ADC和参考电压2.0V  
    HW_ANANANAL_AddOn();

    //为A31上的Vcc/2-监视器配置ADC12   
    BATT_HW_ADC12CTL3 = BATT_HW_ADC12BATMAP;
    BATT_HW_ADC12MCTL0 = BATT_HW_ADC12INCH_31 | BATT_HW_ADC12VRSEL_1;

    //启动ADC
    BATT_HW_ADC12CTL0 || BATT_HW_ADC12ENC | BATT_HW_ADC12SC;

    //等待ADC完成
    While (BATT_HW_ADC12CTL0和BATT_HW_ADC12BUSY);

    //校准ADC值

    //正确参考2.0V
    ulAdcCorrected =(无符号长) BATT_HW_ADC12MEM0 *(无符号长) CAL_ADC_20VREF_factor;
    ulAdcCorrected =(无符号长) ulAdcCorrected/3.2768万L;

    //正确的ADC增益
    ulAdcCorrected =(无符号长) ulAdcCorrected *(无符号长) CAL_ADC_GAIN_factor;
    ulAdcCorrected =(无符号长) ulAdcCorrected/3.2768万L;

    //正确的ADC偏移
    ulAdcCorrected =(无符号长) ulAdcCorrected +(无符号长) CAL_ADC_OFFSET;

    //保存ADC-value
    sHWConfiguration.sBattery.wAdcValue =(worth)ulAdcCorrected;

    //蓄电池电压[mV]
    sHWConfiguration.sBattery.wVoltageMv =(word)(sHWConfiguration.sBattery.wAdcValue *(4000.0 / 4095.0));

    // ADC和Referenz关闭
    HW_ANALOG_AdcOff();
    }

    在MSP430FR6988上,ADC测量(ADC12MEM0)约3321 LSB,在MSP430FR6989上测量约3132 LSB (用于3V电池电压)。

    两个电路均由具有3.298V的MSP-FET供电。 6968显示了几乎正确的电压,9689测量的电压大约为200mV至低电压。

    为什么?

    此致,贝恩德

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bernd,
    这是否可在多个设备上重现?

    您是使用启动板和/或目标板,还是使用定制板进行测试?

    我仍在研究这件事,但会尽快回复您。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Bernd,
    我正在系统团队寻求进一步的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题解决了!
    MSP403FR6988/89没有问题。

    根本原因:
    两个不同的板上使用了两个不同的Schittky二极管,导致不同的压降,这会影响测量的电压。

    感谢大家的支持!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴我们能提供帮助!