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.

[参考译文] MSP430FR2032:来自VLO的ACLK -是否支持? Driverlib写入已保留? 位

Guru**** 2511985 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/633089/msp430fr2032-aclk-from-vlo---supported-or-not-driverlib-write-reserved-bit

部件号:MSP430FR2032

MSPFR4xxx_FR2xxx系列用户指南( SLAU445G )将CSCTL4位9记录为只读位。

"MSP430FR2xx_4xx" DriverLib´s CS_initClockSignal的cs.c实现如果与CS_ACLK,CS_VLOCLK_SELECT一起调用,则清晰地将1写入其中。

 此外:如果使用其他源之一调用,它将清除该位,因为"&=~(拉美经济体系)"仅掩码CSCTL4位8。

那么:此芯片系列是否实际上支持CSCTL4 位9,还是这只是DriverLib中未发现的错误?

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

    PS:这是有问题的DriverLibs源代码:

    void CS_initClockSignal (uint8_t selectedClockSignal,
    UINT16_t时钟源,
    UINT16_t clockSourceDivider)
    {
    uINT16_t临时;
    开关(选定时钟信号)
    {
    案例CS_ACLK:
    
    HWREG16 (CS_BASE + OFS_CSCTL4)&=~(拉美经济体系);
    
    IF (clockSource == CS_XT1CLK_SELECT)
    {
    ClockSource = 0x0;
    }
    否则,如果(CclockSource == CS_REFOCLK_SELECT)
    {
    ClockSource = 0x1;
    }
    否则,如果(CclockSource == CS_VLOCLK_SELECT)
    {
    ClockSource = 0x2;
    }
    clockSource = clockSource <<8;
    
    HWREG16 (CS_BASE + OFS_CSCTL4)||(时钟源);
    

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

    VLO不是ACLK的有效时钟源;不允许此参数组合。 对于XT1/REFO,此功能正常工作。

    此函数在版本2.80 中的此位置未提及CS_VLOCLK_SELECT;似乎修订历史记录中的条目"在内部对MSP430FR2xx_4xx/initFLL函数系列进行了一些更改以使其更一致(无功能更改)"仅在技术上是正确的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这也是我的想法(基于数据表),直到我阅读DriverLibs Imlementation。

    由于DriverLib不应写入保留位(imho),我仍然希望TI回答这是Driverlib中的错误还是未正确记录位9。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    答案不是DriverLib错误。 某些MSP430FR4xx/FR2xx器件支持通过VLO进行ACLK源,并在CSCTL4中选择第8和第9位,但这不是MSP430FR2xx/4xx的选项。 Driverlib可能需要使用#defines来区分设备变体,也可能需要尝试写入只读位。 由于后者不会影响操作,因此特意选择后者是为了简化代码,因此 目前使用CS_VLOCLK_SELECT将ACLK源设置为REFO。

    编辑:修改答案

    此致,
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此,这些“某些MSP430FR4xx/FR2xx器件”具有另一个“MSPFR4xxx_FR2xxx系列用户指南( SLAU445G )”? 8-/
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    啊,我的错。 包含VLOCLK的Driverlib cs.c源代码必须是来自不同设备系列的复制和粘贴错误。 我将提交一份软件错误报告,以便在更高的DriverLib版本中解决此问题。

    此致,
    Ryan