主题中讨论的其他器件: MSP430F5438A
尊敬的 TI 团队:
我们使用 MSP430与 AMBA SoC 进行通信、通信接口为 UART。
当 SOC 升级 MCU 时、与 SOC 通信的代码是 BSL 模式代码。
我阅读了有关 BSL 的文档、其中指出 BSL 的 UART 设置是偶校验设置。
但我们 SoC 终端的 UART 设置没有奇偶校验。
我们想知道他们为什么仍然能够正常通信和升级?
Kirk Zhang /司机团队
串行通信
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.
尊敬的 TI 团队:
我们使用 MSP430与 AMBA SoC 进行通信、通信接口为 UART。
当 SOC 升级 MCU 时、与 SOC 通信的代码是 BSL 模式代码。
我阅读了有关 BSL 的文档、其中指出 BSL 的 UART 设置是偶校验设置。
但我们 SoC 终端的 UART 设置没有奇偶校验。
我们想知道他们为什么仍然能够正常通信和升级?
Kirk Zhang /司机团队
串行通信
你(们)好、Kirk
我已经使用 BSL 源代码重新检查了、似乎我们没有检查奇偶校验位。 这是数据接收源代码。 它使用的是计时器 A、而不是硬件 UART
char receiveByte()
{
int bitCount = 9;//加载位计数器
int dataByte = 0;
TZNCCTL_RX = SCS + OUTMOD0 + CM1 + CAP;//同步、负边沿、电容
while (!(TZNCCTL_RX & CCIFG));//等待第一个字符
TZNCCTL_RX &=~Ω(CAP+CCIFG);//从捕捉切换到比较模式,关闭中断
TZNCCR_RX += BitTime_5;
while (bitCount >0)
{
TZNCCR_RX +=位时间;
TZNCCTL_RX &=~CCIFG;
while (!(TZNCCTL_RX & CCIFG));//超时一个字符
dataByte = dataByte >> 1;
IF (TZNCCTL_RX 和 SCCI)//获取接收锁存中的等待位
{
dataByte |= 0x100;
}
bitCount --;
}
返回(dataByte&0xFF);
}
是的、BSL 位于闪存存储器中、可对其进行重新编程。 我们还提供 BSL 的源代码,您可以更改 BSL 源代码并将其编程到 BSL 闪存中,有关操作步骤,请参阅文档
e2e.ti.com/.../Download-_5F00_new_5F00_BSL_5F00_F5xx6xx.pdfe2e.ti.com/.../7077.Download_5F00_custom_5F00_BSL.pdf
你(们)好、Kirk
源代码位于此处 https://www.ti.com/tool/download/MSPBSL_CUSTOMBSL430
您可以使用 位于 C:\Myworks\Image_download\BSL\F5XX6XX_BSL\MSP430BSL_1_02_00_01\IAR_BSL_Source\IAR_v6_MSP430F543xA_TA_UART 的此版本
你(们)好、Kirk
您可以尝试 访问 e2e.ti.com/.../MSP430F543xA_5F00_TA_5F00_UART.txt
我没有时间对其进行测试、您能帮您进行测试吗?
这就是我在代码中更改的内容
void sendByte (字符数据)
{
Int tempData;
int parity 掩码= 0x200;
char bitCount = 0xA;//加载位计数器、8个数据+ ST/SP +奇偶校验
TZNCCR_TX = TZNR;// TA 计数器的当前状态
TZNCCR_TX +=位时间;
// tempData = 0x200 +(int) data;//向数据添加标记停止位
tempData =(int) data;//向数据添加标记停止位
tempData = tempData << 1;
//TZNCCTL_TX = OUTMOD0;
while (bitCount!= 0)
{
while (!(TZNCCTL_TX 和 CCIFG));
TZNCCTL_TX &=~CCIFG;
TZNCCR_TX +=位时间;
TZNCCTL_TX |= OUTMOD2;// TX '0'
IF (tempData & 0x01)
{
// tempData ^=奇偶校验掩码;
TZNCCTL_TX &=~ OUTMOD2;// TX '1'
}
//奇偶校验掩码=奇偶校验掩码>> 1;
tempData = tempData >> 1;
bitCount --;
}
while (!(TZNCCTL_TX 和 CCIFG));//等待计时器
}
源代码位于此处 C:\Myworks\Image_download\BSL\F5XX6XX_BSL\MSP430BSL_1_02_00_01\IAR_BSL_Source\IAR_v6_MSP430F543xA_TA_UART
您好、Gary、
我使用 您提供的映像和路径:C:\Users\11489\Desktop\MSP430BSL_1_02_00_01\Released_BSL_Images\MSP430F5438A_Family\BSL.00.07.05.04.txt、这两个映像甚至无法打开我们的摄像头 。 我们使用的 MCU 是 MSP430F5172、我是否应该使用 MSP430F5438A 中的内容? 我认为目前 BSL 似乎存在一些问题。
该图像