主题中讨论的其他器件: EV2400、 BQSTUDIO
我无法对几个电路板上的闪存进行写入。 我尝试了所有通常的事情,建议像解封等。 这一切都不起作用、因为我在尝试访问闪存的所有内容上都获得了 NACK。 请参阅下面的波形。


是否有建议、说明哪些因素会导致芯片拒绝对闪存的访问? 它不是密封的、都是出厂默认设置。
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.
这是定制设计。 它是定制 MCU。 我正在尝试写入闪存的一个32字节块。 我尝试写入的确切数据包如下所示:
0x44、0x22、0xC0、0x48、0x87、 0x51、0x5E、0x10、0x25、0x10、 0xFD、0x0F、0xF4、0x0F、0xEC、 0x0F、0xE8、0x0F、
0xE2、0x0F、0xCA、0x0F、0xBB、 0x0F、0x8C、0x0F、0x75、0x0F、 0x58、0x0F、0x42、0x0F、0x30、 0x0F、0x10、0x0F、0xE5
关键是我在0x44之后的第一个字节上获得一个 NACK。 我甚至没有到达
因为我有一个 NACK。 那么、哪些因素会导致 BQ40Z80始终 NACK? ITS 响应
(Aacking) SMBus 地址和0x44。 它拒绝了我、拒绝了我访问任何制造信息。
器件从未被密封。 我可以将其连接到 BQStudio 并读取一些寄存器。 但一旦 BQStudio
尝试执行制造访问读取。 它会永久 NACK。 在我看来、这会把我锁定在
制造访问隔离开来。
以下是成功读取的示例。 使用 BQStudio 和 EV2400
但下面是使用 BQStudio 读取制造访问失败的情况。 我把它分解成了三张图片、这样您就可以看到
细节时钟延展结束后、您可以看到它一直 NACK。 BQStudio 永不放弃
我必须关闭 BQStudio、然后拔下 EV2400、这样才能停止无限制地等待0xFF NACK。
无论它是我的定制 MCU 还是带 EV2400的 BQStudio、都没有关系。 所有制造访问都失败。
我使用的是 BQStudio 1.3.124
尊敬的 Chet:
感谢您提供的细节、我认为如果我们可以 在 bqStudio 上对其进行调试、那么调试 MCU 的问题将会更清晰。
关于 bqStudio 中如何传达此信息、您能否告诉我编写过程? 下面是我写入0x4000的示例。

使用了命令44、同时将数据开头的寄存器寻址为00 40、然后是要写入的其余数据。
执行此操作时、请确保 bqStudio 中的"Auto-Refresh"已关闭。

您还能告诉我您在以上示例中尝试写入哪个寄存器吗?
此致、
安东尼·巴尔迪诺
尊敬的 Chet:
我看到在处于不良状态的单元上存在"与器件通信的超时或意外响应"错误。 下面是另一个 E2E 主题、在这个主题中、使用 bq40z80的人能够减轻同样的错误。
如果这个解决方案不起作用、请告诉我、我们可以进一步研究。
此致、
安东尼·巴尔迪诺
我现在可以使用 bqstudio 并对砖型电路板中的固件进行重新编程。 这是有点古怪的,我怎么做。 如果我尝试只是对它进行编程、它总是会被拒绝并出现 CRC 错误。 如果我尝试在0x44执行读取块、它将进入 NACK 的永恒循环、但当它位于 NACK 的永恒循环中时、我可以点击程序按钮、它将找出内容并对固件进行编程。 我通过试错找到了这个解决方案。


有什么想法,这是神奇的组合,让这个东西重新编程?
您是否有关于如何对 BQ40Z80进行编程、使其独立于 bqStudio 和 EV2400进行编程的文档? 大规模生产中使用 bqstudio 和 EV2400并不现实。
尊敬的 Chet:
我以前没有看到这个解决方案,让砖板编程,我会看看这.
关于在不使用 bqStudio 或 EV2400的情况下对 bq40z80单元进行编程、可以使用闪存流文件。 这将允许通过.bq.fs 文件对监测计固件和配置文件进行编程。 可以在下面的监测计通信文档中找到更多信息:
https://www.ti.com/lit/pdf/slua801
此致、
安东尼·巴尔迪诺
slua801文档有一页、其中没有详细介绍闪存流文件格式。 您是否有介绍.bq.fs 文件中所有命令的文档? 我发现类似的东西 这里 和 这里 . 这些链接提供了更多有用信息、但似乎没有最新信息。 我有一个 golden .bq.fs 文件、下面是一个片段:
;-------------------------------------------------------- ;Go To ROM Mode ;-------------------------------------------------------- SWB: 16 44 00 0F X: 1000 ;Clear Tokens by poking 00 to both locations ;Set Address to 0x0000 SWW: 16 09 00 00 ;Read Value at address 0x0000 ;SCW: 16 0B ;Clear bit 3 and write value to address 0 ;dataUpdate = (dataRead & 0xff) | 0x8;Instead setting hardcoded value that works SWW: 16 0A 02 00 ;Set Address to 0x0002 SWW: 16 09 02 00 ;Write Value 00 to 0x0002 SWW: 16 0A 00 00 SWW: 16 00 00 00 SWW: 16 1A DE 83 SWW: 16 06 00 00 X: 250 SWW: 16 00 80 00 SWW: 16 1A DE 83 SWW: 16 06 80 00 X: 250 ;Set Field Updater tokens by poking 08 to 0000 and B8 to 0002 ;Set Address to 0x0000 SWW: 16 09 00 00 ;Read Value at address 0x0000 ;SCW: 16 0B ;Set bit 3 and write value to address 0 ;dataUpdate = (dataRead & 0xff) | 0x8; Instead setting hardcoded value that works SWW: 16 0A 0A 00 ;Set Address to 0x0002 SWW: 16 09 02 00 ;Write Value B8 to 0x0002 SWW: 16 0A B8 00 SWW: 16 00 80 01 SWW: 16 1A DE 83 SWW: 16 06 80 01 X: 250 ;Clear Tokens by poking 00 to both locations ;Set Address to 0x0000 SWW: 16 09 00 00 ;Read Value at address 0x0000 ;SCW: 16 0B ;Clear bit 3 and write value to address 0 ;dataUpdate = (dataRead & 0xff) | 0x8;Instead setting hardcoded value that works SWW: 16 0A 02 00 ;Set Address to 0x0002 SWW: 16 09 02 00 ;Write Value 00 to 0x0002 SWW: 16 0A 00 00 SWW: 16 11 DE 83 X: 400 SWW: 16 07 DE 83 X: 250 SWB: 16 0F 00 40 76 2F 76 A9 C8 90 0B 7E ED 3F 53 1B 07 49 00 00 40 00 00 00 00 00 00 00 00 BC A2 FF FF FF FF FF X: 3 SWB: 16 0F 20 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF X: 3 SWB: 16 0F 40 40 20 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 7A 78 79 30 31 32 33 34 X: 3 SWB: 16 0F 60 40 35 20 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 7A 78 79 30 31 32 33 X: 3
我正在为可以读取此文件并进行固件更新的生产测试装置编写一个解析器。 您能否找到有关闪存流文件格式的确定性文档? 我已经用我的逻辑分析仪捕获了这个被写入 BQ40Z80的文件。 您能否为我提供最终文档、以便我不必对逻辑分析仪捕获和.bq.fs 文件执行逆向工程、知道每个命令的含义? 谢谢。
尊敬的 Chet:
我认为该邮件中发送的两个文档和主题适用于使用 I2C/HDQ 的电量监测计。 下面是使用 SMBus 的电量监测计的.bq.fs 命令细目表、它应该与上面的.bq.fs 更正确地匹配。
我不认为我们有针对闪存流格式的每一个命令的指定文件,但我将继续站在我们一边,能够回答出现的任何问题。
此致、
安东尼·巴尔迪诺
我还在尝试弄清楚闪存为什么会随机损坏、我需要刷新固件来恢复芯片。 我正在对器件进行校准。 当我执行校准时、我写入从地址0x4000开始的校准数据闪存区域。 一次写入该区域的一个寄存器是否会出现问题? 例如、我向从0x4000开始的电池增益寄存器写入2个字节的有效载荷。 如果我在电流校准的情况下一次写入两个寄存器、情况会怎样? 从地址0x4006开始写入8个字节的有效载荷、然后在同一次写入中写入 ccgain 和 Capacity Gain。 这会引发危险信号吗?