大家好,团队
客户提出的问题可能需要您的帮助:
根据数据表,BSL 的工作频率必须低于8 MHz 的主频率。 但客户在主板上的调试结果如下:
如果芯片始终在8 MHz (包括8 MHz)范围内运行,则 BSL 不会出现问题。 但是,如果芯片先以16 MHz 运行,然后在 BSL 之前降至8 MHz 以下,则 BSL 将失败。
发送默认密码时,将报告以下错误:
[ACK_ERROR_MESSAGE]未知的 ACK 值!
客户希望知道如何解决此问题。 请帮您检查此案例? 谢谢。
此致,
樱桃
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.
大家好,团队
客户提出的问题可能需要您的帮助:
根据数据表,BSL 的工作频率必须低于8 MHz 的主频率。 但客户在主板上的调试结果如下:
如果芯片始终在8 MHz (包括8 MHz)范围内运行,则 BSL 不会出现问题。 但是,如果芯片先以16 MHz 运行,然后在 BSL 之前降至8 MHz 以下,则 BSL 将失败。
发送默认密码时,将报告以下错误:
[ACK_ERROR_MESSAGE]未知的 ACK 值!
客户希望知道如何解决此问题。 请帮您检查此案例? 谢谢。
此致,
樱桃
您好,丹尼斯,
感谢你的帮助。
[引用 userid="114745" url="~ë/support/microsofts/MSP-low-Power-microsoft-group/MSP4E/f/MSP-low-Power-microcontroller-forum/1080289/msp430fr5043-BSL-frequence-issue/3999654#3999654"]客户如何验证主频率是否为8MHz[从16MHz/16MHz]客户使用 MSP430库中的 CS_getMCLK()函数验证频率。 修改频率后的轻微延迟表明该函数返回8000000。
在使用 MSP432之前,他们一直使用这种方法来监控单片频率,并且它可以正常工作。
另外还有一个问题:
尝试使用外部16 MHz 晶体,结果是如果您使用 HFXT,BSL 无论如何都不会成功,并且必须满足以下条件,BSL 才能成功:
A.在 BSL 之前,以8 MHz 切换到 DCO 和 MCLK。
B. 单片机不能随时使用 HFXT,并将 MCLK 设置为16 MHz (即,它可以使用 HFXT 和8 MHz MCLK 初始化,并在需要 BSL 时切换到 DCO)。
MCLK/SMCLK/ACLK 直接从单片针脚输出的频率是正确的,BSL 是通过程序中的软件调用输入的。
谢谢,此致,
樱桃
您好,丹尼斯,
系统初始化如下:
CS_setDCOFreq (CS_DCORLSE_1,CS_DCOFFSEL_4);//高范围和16MHz
cs_initBlockSignal (CS_MCLK,CS_DCOCLK_SELECT,CS_clock _diver_1);
cs_initBlockSignal (CS_SMCLK,CS_DCOCLK_SELECT,CS_clock _diver_2);
FRCTL0 =(FRCTLPW | NWITS_1);
…………………………………………………………………………
当需要 BSL 时,在降低频率后,等待状态已重置为0。 但问题仍然存在,BSL 仍然无法运行。 代码如下:
CS_setDCOFreq (CS_DCORLSE_1,CS_DCOFFSEL_3);//高范围和8MHz
cs_initBlockSignal (CS_MCLK,CS_DCOCLK_SELECT,CS_clock _diver_1);
cs_initBlockSignal (CS_SMCLK,CS_DCOCLK_SELECT,CS_clock _diver_1);
//配置等待状态以使用8 MHz MCLK
FRCTL0 =(FRCTLPW | NWITS_0);
__delay_cycles (16000);
__disable_interrupt ();//消除 INT8_ts 的回波
((void (*)) 0x1000);//跳到 BSL 的 Z 区域
谢谢,此致,
樱桃
你好,Cherry,
由于我无法重复此问题,客户能否尝试将代码大小降至绝对最小值,并查看问题是否仍然存在。 我附上了我的项目作为示例。