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.

[参考译文] MSP430FR5.9691万:BSL写入检查失败

Guru**** 2382260 points
Other Parts Discussed in Thread: MSP-TS430RGZ48C, MSPBSL, MSP430FR5969, MSP-FET
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/584603/msp430fr59691-bsl-write-check-failed

部件号:MSP430FR5.9691万
主题中讨论的其他部件: MSP-TS430RGZ48CMSPBSLMSP430FR5969MSP-FET

您好,

我想通过i2c BSL对MSP430FR5.9691万进行编程。 通信正常,但我有两个问题。  

 n´t,我遇到了很多“闪存写入检查失败”错误,我不知道如何解决。  

其次,我从RX数据块获得了没有发生错误的响应,但当我读出内存(使用elpotronic FET-Pro430)时,我看到了很多0xFF,其中我得到了BSL的积极响应。 在不是0xFF的情况下,它只是一些与我传输的数据无关的数据。  

除了使用BSL-脚本(n´t它能正常工作)之外,我能做什么吗?  

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

    对于没有闪存的MSP430FR5.9691万,您不应该得到“闪存写入检查错误”。 您是否通过脚本程序向设备发出了正确的设置命令? 是否可以为脚本提供日志文件?

    在MSP430上读取内存时,无法读取的内存部分将被视为0xFF。 此外,根据您的设置,在编程时,内存的空白部分也可以作为0xFF写入。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     

    我得到了BSL回复。 并且SLAU550显示MSG = 0x01表示"Flash wirte check failed"(刷新wirte检查失败)

    我已n´t不同的线程发送此邮件,并建议查看连接和上拉,但我看不出有任何错误。 顺便说一下,我使用MSP-TS430RGZ48C。

    我知道内存的某些部分无法读取,但是如果我通过JTAG/SBW对MSP进行编程,然后读取内存,我会看到完整的代码。 使用BSL,它看起来更像垃圾或虚拟数据。  

    这是我尝试传输的程序。 直至Adress FFCC的行始终获得正BSL响应,但内存中没有实际数据。 FFCC之后,我几乎总是收到上述"闪存写入检查失败"错误

    :2.044亿F1403431F426E063F821A243F800E000E242F831E201F422A1C5F02924F1E1C4D.</s>140.3431万 0.2924万    
    :2.04420004亿E0692532A1CB2F0EFFFF4006123C1F42281C5F029F424C06001C9253281C093C16</s>69.2532万 40061234228106001925.3281万
    :2044400082432A1C8243281CB2C26C06B1C0100004000F16001381000024B113D0010C93CC</s>824.3281万 0100004000160013810000240010
    :20.446万000224B11300000C43B1136C00B113D4019253241C8263261C001332D01000FD3F8D</s>0.0224万 1130万11364019253241826.3261万0013320.1万
    :2044.8万80010100CA010100B801010001010400200001000000000000280000008C44F4</s>8001.01万 1.01万80.101万0.101万40.02万0.1万0万0.028万0.0008万
    :0E44A0000000281C000098440000001C0000D2</s>0.9844万 0.0001万0000
    :04FF8000FFFFFF81.
    :04FF8400FFFFFF7D
    :08FF8800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79
    :02FFCC007A4475
    :02FFCE007A4473
    :02FFD0007A4471</s>4471
    :02FD2007A446F
    :02FD4007A446D.
    :02FFD6007A446B
    :02FD8007A4469</s>4469
    :02FFDA007A4467
    :02FDC007A4465
    :02FFDE007A4463
    :02FFE0007A4461</s>4461
    :02FFE2007A445F
    :02FFE4007A445D.
    :02FFE6007A445B.
    :02FFE8007A4459.</s>4459.
    :02FFEA70.4461万
    :02FFEC007A4455
    :02FFEE0.0044万CD
    :02FFF0007A4451</s>4451
    :02FFF2007A444F
    :02FFF4007A444d
    :02FFF6007A444B
    :02FFF8007A4449</s>4449
    :02FFFA007A4447
    :02FFFC007A4445
    :02FFFE5.6467万
    :2万040001F9</s>4.0001万
    :2亿A1440181A425C014018B240805A5C018F0080449F008C44132489009E44880024</s>144.0181万 1.4018万2408058.0449万44.1324万8.9009万4488.0024万
    :2000AE440C3C0C097F4C5F0600185F4F8044A90004000D094F13A9000400D908F223EF</s>60.0185万 80449000.4万900.04万
    :2.00040007亿AC23AD0085A4018824A5C018F0000009F00000009248A000000033C6A13AA002C</s>0085 401.8824万0.0009万0万0.9248万3.3亿
    :2000600004009A000000FA2328161001B240805A5C01D2D30402F2D0C0000C0292C330018C</s>0万 23281610012408053.0402万0000029233.0018万
    :2000.8万F240A5006101A2436201B2403301640182436601C243610192D34006B2D000078D</s>500.6101万 243.6201万24033016401824366012.43610192亿34006000078
    :2000A0004006B2F0EFFFF4006B2D06C045406F2400A004606C243470692C34006B2400B0066</s>0.4006万 40064.5406万24000.4606万2434706923400624000066
    :2000C0006A068243281C034332D018000343B1133E01FD3F03431A147A4C243CAC0001007B</s>0006 0.68243281亿0343320.18000343亿11330.3431万0.1007万
    :2000E0000E930D243F9000010A2C29434F4F8F107B4C0FDB1983FA23023C2F9202287B4C25</s>0000 900.001万2.9434万19832.3023万920.2287万
    :20.01万00013CCB0A1F833F930D244B4BAD000100CD4BFFFFFF1F833F93F923043CAD00010050</s>0.0013万 0.01万92.3043万1.005万
    :2001.2万CD4FFFFFFF7F4C0F9AF9237F4C0F93E5237F4C8F106B4C0F5BD123191610018293CC</s>9237 52371231.9161万1.8293万
    :20.014万00281C1D20B2904600001C0720B24010001E1C8243001CD2E30202B2904900001CD6.</s>0.0281万 290460000107202401.0001万824.3001万3.0202万29.049亿
    :20.016万000520B24049001E1C8243001CB2904200001C052032C203433F4000104F13100103</s>0.052万 2404.9001万824.3001万2904200001052032203433400.0104万1310.0103万
    :200180001F4C01001E4C03000E9302200F930924AD000100CD43FFFFFF1F830E73F9230F9357</s>01001 03000930.22万93.0924万0.01万92309357
    :2001A000F7231001CF0C0E930624AF000100FF4DFFFFFF1E83FA231001CF0CCC0DCD0FAD0068</s>723.1001万 93.0624万0.01万23.1001万0068
    :1801C00005001E4F01008001A4011E438001D6001C4310010343FF3FE2</s>0.5001万 100.8001万401143.8001万60014310010343
    :0.0001万FF

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

    请提供您使用BSL脚本对设备进行编程所使用的脚本。 确保在脚本开头添加命令"Log",并提供附带的日志文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    BSLSCRIPT

    日志
    模式msp430frxx i2c 10万 COM14
    TX_BSL_VERSION
    质量_擦除
    Rx_password pass32_default.txt
    2000年延迟
    Rx_password pass32_default.txt
    RX_DATA_BLOCK blinkLED_FR6989.txt
    crc_check 0x4400 0x0020
    Set_PC 0x4400

    日志

    ----------------------------------
    BSL脚本化程序3.2 Tm1
    用于BSL编程的PC软件
    2017年3月30日09:14:14
    ----------------------------------
    输入文件脚本为:C:\Program Files/BSL/MSPBSL_Scripter_win/MSPBSL.txt
    模式msp430frxx i2c 10万 COM14
    TX_BSL_VERSION
    [ACK_ERROR_MESSAGE]未知的ACK值!
    质量_擦除
    [ACK_ERROR_MESSAGE]未知的ACK值!
    Rx_password pass32_default.txt
    读取txt文件:C:\Program Files\BSL\MSPBSL_Scripter_win\pass32_default.txt

    2000年延迟
    延迟2000毫秒
    Rx_password pass32_default.txt
    读取txt文件:C:\Program Files\BSL\MSPBSL_Scripter_win\pass32_default.txt
    [ACK_ERROR_MESSAGE]未知的ACK值!
    RX_DATA_BLOCK blinkLED_FR6989.txt
    读取txt文件:C:\Program Files\BSL\MSPBSL_Scripter_win\blinkLED_FR6989.txt
    [ACK_ERROR_MESSAGE]未知的ACK值!
    写入32字节所经过的时间:0.003 秒
    写入数据的速度:10.42 (KB/s)
    crc_check 0x4400 0x0020
    [ACK_ERROR_MESSAGE]未知的ACK值!
    Set_PC 0x4400

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

    当我试图在我的终端上也这样做时,我看到了一个问题。 让我与BSLScriptter开发人员商议并回复您。 请注意,这可能需要一些时间,因为我的同事正在休假,直到4月3日。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Martin,

    我在这里快速更新。 我尝试使用不同版本的BSLScipter (UART.MSP) 0.0 ,并且能够使用3.1 版本与430FR5969通信。 您是否可以为I2C接口尝试使用较早版本的BSLScriptter? 链接如下:

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

    我n´t“Unknown ACK Error”(未知ACK错误)消息,一切都正常。 但程序不是使用SET_PC启动的。  

    读出内存会产生我期望的结果--> 0xFF无处不在。 实际上,我认为没有从《圣经》中传递任何命令。 甚至MassErase也无法正常工作

    e2e.ti.com/.../MSPBSL_5F00_2017Mar30_5F00_091414.log</s>9.1414万

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

    Martin,

    您可以通过将PC设置为程序的起始地址从BSL启动应用程序。 但是,大多数程序都假定冷启动,BSL设置的某些外围设备和时钟与冷启动不同。 这意味着您可以看到设置PC后发生的情况与下载的应用程序在冷启动时的外观不一致。 BSL脚本用户指南( )为确保一切正常工作,我建议重新启动设备。 这可以通过将RST线路保持在低电平~2us,短时间断开电源来完成,或者您可以将PC地址设置为会导致POR的内存区域,例如看门狗密码寄存器或外围存储器的其他部分。

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

    我评估了您的脚本并对以下内容做了一些修改:
    日志
    模式msp430frxx i2c 10万 COM14
    RX_password pass32_wrong.txt //这将执行mass清除
    Delay 2000 //由于BSL不会从RX_password pass32_wrong.txt返回响应,因此我们会在之后等待2秒
    RX_password pass32_default.txt //解锁BSL
    RX_DATA_BLOCK blinkLED_FR6989.txt
    TX_DATA_BLOCK 0x4400 0x00C0 READ_1.HEX //您可以添加此参数以回读内存,查看是否已对其进行编程
    TX_DATA_BLOCK 0x80 0x0020 READ_2.HEX
    TX_DATA_BLOCK 0x0036 READ_3.HEX
    crc_check 0x4400 0x0020
    Set_PC 0x4400

    这应该是可行的。
    与BSL沟通的重要事项是我们遵循以下步骤:
    1.按模式设置通信和设备类型
    2.解锁BSL,但我们可以通过发送错误密码来使用,因此内存的所有部分都将被擦除
    3. MSP430FR5969/6959中6959中的mass清除不会发回响应,也不会重置设备。 因此,如果您这样做,请再次重复步骤1和2
    4. BSL解锁后,您可以启动程序并重新读取设备。

    我使用同样具有I2C BSL的MSP430FR5.9921万对此进行了测试。 我尝试了相应的设备闪烁应用程序并回读内存,一切正常工作。

    请告诉我这是否仍然不适合您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Martin,

    我注意到您正在使用MSP-TS430RGZ48C目标插座板。 这没有I2C_SDA和I2C_SCL的上拉电阻。 如果您使用的是MSP-BSL"Rocket ",则可以将上拉电阻器放在Rocket上。 MSP-FET没有它,因此您必须添加它。 我认为这也可能是I2C不进行通信的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢大家,  

    我尝试了您的脚本,它现在可以与BSL版本3.2 1和3.1 .0一起使用。 对我来说,你必须发送一个错误的密码,而不是批量擦除,然后再发送一个正确的密码,好的。

    我打开这个问题的原因不是因为脚本工具的问题。  

    我通过I2C与MSP430FR5.9691万连接了一个微控制器,并尝试使用实施的BSL进行固件更新。 通信工作正常,但在执行了一些“RX数据块”命令后,我从BSL得到了响应,看起来像:00 80 02 00 3B 01 41 D4。 根据 SLAU550E,写入闪存失败。  

    我自己解决了这个问题。 因为未知的原因,我交换了地址的低字节和高字节。 这就是为什么我有时会收到此错误消息的原因。  


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

    您好,Martin,


    感谢您的确认,我很高兴现在一切都在为您服务!

    是的,最好在MSP430FR5969中发送始终错误的密码以执行批量擦除,这是我的建议。