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.

[参考译文] MSPM0G1106:BSL 刷写

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1345341/mspm0g1106-bsl-flashing

器件型号:MSPM0G1106

您好!

我目前正努力处理通过 i2c 通过 A2B 链路进行 BSL 刷写的问题。

问题在于、从属 A2B 节点上的 i2c 外设对于 i2c 时钟延展有硬限制。 我们的设置中的限制是0.66ms (48kHz 为0.66ms、44.1kHz 为0.72ms)。

我设法按照数据表[1]在写入 BSL 命令后等待,然后开始读取 BSL 响应。 但我仍然遇到"独立验证"的问题、其中我看到了两个问题:

1.第一次"独立验证"总是返回错误的 CRC。 如果我重复"独立验证"命令、我将获得正确的 CRC。 其余的也会没问题。 由于某种原因、它只是第一个、您知道为什么吗?

2.再说一次"单机验证"、闪现后、有时 SCL 保持低电平超过0.6 ms、甚至在我等了10-20 ms 后才开始读取 BSL 的响应。 您能否分享一些有关通用时序的详细信息? 或者、您是否知道在 BSL 刷写时避免 i2c 时钟延展的更好方法?


[1]
 MSPM0G1106数据表:第7.7节:闪存特性 

www.ti.com/.../mspm0g1106.pdf

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

    尊敬的 Emil:

    当使用包含0x0至0x8的数据的 CRC 时、我们确实会看到一些问题。  高速缓存无效后、当首次读取地址0x0,0x4时、返回的数据全部为0xFF、而不是编程的数据。 0x08以外的其他地址不发生此情况。 此外、第二次读取到0x0、0x4将返回正确的数据。  您可以尝试从地址0x8执行 CRC 检查、以查看是否也有问题。

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

    您好、Gary、

    我已经尝试从地址0x08和0x10开始独立验证、只要它们是第一个被调用的、它们也会失败。 是否是一般高速缓存无效问题?  

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

    尊敬的 Emil:

    很抱歉回复太晚了、几乎不需要与您确认

    1.我们的 独立验证大小需要大于1024个,您这样做了吗?

    2.你们身边是否有逻辑分析仪 Saleae? 如果可以、您可以向我捕获波形。

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

    您好、Gary、

    是的、我进行尺寸介于1024 (1 扇区)和64扇区之间的独立验证。

    我确实连接了一个 Saleae、是的。  您只关心 I2C 分析仪输出吗? 或者您是否还需要数字和/或模拟采集?  您更喜欢使用哪种格式?

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

    使用 Saleae 的数字信号是可以的、您也可以使用示波器来显示信号质量、以查看数据是否正确传输。