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.

[参考译文] MSP430F67791A:SD24_B、电源和运行条件

Guru**** 2482105 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1257964/msp430f67791a-sd24_b-power-supply-and-operating-conditions

器件型号:MSP430F67791A

针对指定性能的差分输入电压(1):根据数据手册第页(编号:54)、我们给出了增益的默认设置、如 SD24BINCTL0 = SD24GAIN_1;这意味着工作电压应该如  

±900mV。 但我的控制器在高达 ±450的范围内工作。 如何解决问题。 请告知我们 SD24_B 是否需要任何其它配置。  

谢谢。

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

    您好!

    如果您在+/- 450mV 电压处加满、则增益设置会以某种方式设置为2、可能在代码中的其他位置。 采样 ADC 之后在代码中放置一个断点、并再次检查 SD24BINCTL0 寄存器。 或者您的基准是您认为它的值的一半。  

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

    Jace、您好!

    感谢您的答复。

    我们在调试模式下进行了验证、并验证了  SD24BINCTL0 寄存器的值。  但是、增益设置为1且 Vref = 1.15V。

    共享我们在代码中设置的 SD_24初始化设置:

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    SD24BCTL0 = SD24REFS | SD24SSEL_1|SD24PDIV0|SD24PDIV0;
    SD24BCCTL0 = SD24SCS_GROUP0|SD24DF_1;//组0
    SD24BCCTL1 = SD24SCS_GROUP0|SD24DF_1;//组0
    SD24BCCTL2 = SD24SCS_GROUP0|SD24DF_1;
    SD24BCCTL3 = SD24SCS_GROUP0|SD24DF_1;
    SD24BCCTL4 = SD24SCS_GROUP0|SD24DF_1;
    SD24BCCTL5 = SD24SCS_GROUP0|SD24DF_1;
    SD24BCCTL6 = SD24SCS_GROUP0|SD24DF_1;


    SD24BOSR0=245 - 1;
    SD24BOSR1=245 - 1;
    SD24BOSR2=245 - 1;
    SD24BOSR3=245 - 1;
    SD24BOSR4=245 - 1;
    SD24BOSR5=245 - 1;
    SD24BOSR6=245 - 1;

    SD24BPRE3=0xE2;/250;//0xE2;/226
    SD24BPRE4=0xE2;//0xE2;/226
    SD24BPRE5=0xE2;

    SD24BPRE0 = 26;//SD24BPRE0=26;SD24BPRE0
    SD24BPRE1 = 26;
    SD24BPRE2 = 26;

    SD24BCCTL0|= SD24SC;
    SD24BCCTL1|= SD24SC;
    SD24BCCTL2|= SD24SC;
    SD24BCCTL3|= SD24SC;
    SD24BCCTL4|= SD24SC;
    SD24BCCTL5|= SD24SC;
    SD24BCCTL6|= SD24SC;


    SD24BIE = SD24IE1;//启用通道1中断
    __delay_cycles (0x3600);

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

     

    请建议会提高我们 FSR 的任何修改。

    此致

    GVS

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

    大家好、

    请告诉我们是否需要对上述代码进行修改、以便将 SD24_B 的满标量程增加到100%。

    此致

    GVS

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

    大家好、

    我还尝试在 SD24BINCTLx 寄存器中添加 INTDLYx 位、但没有帮助。 如有任何修改、请提供建议。

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

    您好、GVS:

    我在过去的一周已经不在办公室了。 我可以在本周晚些时候或下周早些时候进一步探讨这一问题。 到9月4日、您将看到我的一些更新。  

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

    Jace、您好!

    感谢您确认我的消息。
    我所使用的应用测量三相电压和电流。
    我参考了以下 TI 精密实验室视频和 E2E 页面、其中包含您对类似问题的答复:

    youtu.be/CLN7VdJ5agg
    e2e.ti.com/.../msp430f6736a-understanding-sd24-datasheet

    这两种资源都建议修改增益设置。 我尝试了增益值1、2、3和延迟设置(INTDLY 位)来提高 SD24B 的输入范围。 但输出没有变化。

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

    GVS、

    您是如何解读 ADC 代码的?  目前您已将其设置为二进制补码形式。 您是否考虑到这一点?

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

    Jace、您好!  

    可以。 我们设置 DF_1、即二进制补码。 我们声明了两个数组、并将 ADC MEM 寄存器值复制到其中、如下所示:

    int16_t A_Sample[3];
    int16_t B_Sample[4];

    ADC_SAMPLE=SD24BMEMH6;
    ADC_SAMPLE<<=8;
    A_Sample[2]=ADC_SAMPLE|(SD24BMEML6&0xFF00)>>8);//V3

    ADC_SAMPLE=SD24BMEMH5;//V2
    ADC_SAMPLE<<=8;
    A_Sample[1]=ADC_SAMPLE|((SD24BMEML5&0xFF00)>>8);

    ADC_SAMPLE=SD24BMEMH4;//V1
    ADC_SAMPLE<<=8;
    A_Sample[0]=ADC_SAMPLE|(SD24BMEML4&0xFF00)>>8);


    ADC_SAMPLE=SD24BMEMH0;//I1
    ADC_SAMPLE<<=8;
    b_Sample[0]=ADC_SAMPLE|(SD24BMEML0&0xFF00)>>8);

    ADC_SAMPLE=SD24BMEMH1;//I2
    ADC_SAMPLE<<=8;
    b_Sample[1]=ADC_SAMPLE|(SD24BMEML1&0xFF00)>>8);

    ADC_SAMPLE=SD24BMEMH2;//I3
    ADC_SAMPLE<<=8;
    b_Sample[2]=ADC_SAMPLE|(SD24BMEML2&0xFF00)>>8);

    ADC_SAMPLE=SD24BMEMH3;//I4
    ADC_SAMPLE<<=8;
    b_Sample[3]=ADC_SAMPLE|(SD24BMEML3&0xFF00)>>8);

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

    GVS、

    我认为您的数学运算不适合您的设置。 仅当数据左对齐时才需要进行移位。 默认设置为右对齐。 如果您要将其置于左对齐位置、则对于二进制补码、您需要为所选的 OSR 移位7。 有关详细信息,请参阅表29-2。  

    话虽如此、由于您要进行电表应用、因此一种更简单的方法是直接使用我们的 电能测量设计中心(EMDC) 来设置系统和电能计量应用。  

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

    Jace、您好!

    感谢您指出位移。 我很快会检查并回复。 此外、我们还处于探索 EMDC 的过程中。

    谢谢你。

    此致

    GVS

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

    Jace、您好!

    通过移动7位而不是8位、可以将电压和电流测量为原始值的一半。 240V 的测量电压为120v、对于相应的负载电流也是相同的。

    此致

    GVS

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

    粘贴我在此处所做的更改:

    SD24BCCTL0 = SD24SCS_GROUP0|SD24DF_1|SD24ALGN;//组0
    SD24BCCTL1 = SD24SCS_GROUP0|SD24DF_1|SD24ALGN;//组0
    SD24BCCTL2 = SD24SCS_GROUP0|SD24DF_1|SD24ALGN;
    SD24BCCTL3 = SD24SCS_GROUP0|SD24DF_1|SD24ALGN;
    SD24BCCTL4 = SD24SCS_GROUP0|SD24DF_1|SD24ALGN;
    SD24BCCTL5 = SD24SCS_GROUP0|SD24DF_1|SD24ALGN;
    SD24BCCTL6 = SD24SCS_GROUP0|SD24DF_1|SD24ALGN;

    ADC_SAMPLE=SD24BMEMH6;
    ADC_SAMPLE<<=7;
    A_Sample[2]=ADC_SAMPLE|(SD24BMEML6&0xFF00>>7);//V3

    ADC_SAMPLE=SD24BMEMH5;//V2
    ADC_SAMPLE<<=8;
    A_Sample[1]=ADC_SAMPLE|((SD24BMEML5&0xFF00)>>7);

    ADC_SAMPLE=SD24BMEMH4;//V1
    ADC_SAMPLE<<=8;
    A_Sample[0]=ADC_SAMPLE|(SD24BMEML4&0xFF00)>>7);


    ADC_SAMPLE=SD24BMEMH0;//I1
    ADC_SAMPLE<<=8;
    b_Sample[0]=ADC_SAMPLE|(SD24BMEML0&0xFF00)>>7);

    ADC_SAMPLE=SD24BMEMH1;//I2
    ADC_SAMPLE<<=8;
    b_Sample[1]=ADC_SAMPLE|(SD24BMEML1&0xFF00)>>7);

    ADC_SAMPLE=SD24BMEMH2;//I3
    ADC_SAMPLE<<=8;
    b_Sample[2]=ADC_SAMPLE|(SD24BMEML2&0xFF00)>>7);

    ADC_SAMPLE=SD24BMEMH3;//I4
    ADC_SAMPLE<<=8;
    b_Sample[3]=ADC_SAMPLE|(SD24BMEML3&0xFF00)>>7);

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

    GVS、

    请在此使用 EMDC 作为起点。 不幸的是,这是我在这个时候给予了同样多的支持。  

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

    Jace、您好!

    非常感谢您到目前为止的支持。