主题中讨论的其他器件:TUSB8040、
使用 EEPROM 编程器用户指南: https://www.ti.com/lit/ug/sllu311/sllu311.pdf?ts=1675341419679&ref_url=https%253A%252F%252Fwww.google.com%252F、 用户会感觉到、要设置自定义序列号、需要:
*将05h 中的位6设置为1、以启用自定义序列号。
* 将 序列号的大小设置为22h,在本例中,设置为06h,即六个字节。
*在序列号寄存器中输入一个数字,30h - 4Fh。 用户指南中关于这一点的定义有点不明确:
"序列号寄存器(30h-4Fh)将定义序列号字符串中返回的数字
寄存器05h 中设置 customSernum 时字符串索引1的描述符"
这可能使人们认为,这些领域中只应存储一个数字。 但是、如果输入一个数字、例如0 (如第2点所述、在6中为00h 、在30h 至4Fh 之间的相关寄存器、稍后更多地输入特定寄存器)、然后下电上电以退出编程模式、则无法识别 TUSB4041。 此时、无法再使用 EEPROM。 如果关闭 SW1_3和 SW1_4 、绕过损坏的 EEPROM 或更换了 EEPROM、则仍然可以使用 TUSB4041。
我还尝试输入 诸如"3400300030003000"和"343030"字符串"400"的 UTF-8和 UTF-8等序列号值。 这导致 USB 设备查看器显示:
iSerialNumber:0x01
英语(美国)""
对于其他 与 UTF-8相关的 组合、此配置也保持不变。
这让我想到了与此相关的一个主要问题;鉴于 指南中提供的所有寄存器阶数都是指使用 MSB 设置的值来实现更高的寄存器编号、使用 LSB 设置的值、例如:
"TUSB8044以 txt 格式采样 EEPROM 文件。
...
01 51 01010001 'VID LSB
02 04 00000100 'VID MSB"
用户期望对序列号寄存器采用相同的顺序、即值应相对于寄存器编号以降序输入。
例如、在我的上述测试中、值 "340030003000300030003000"条目、其中6字节在寄存器22h 中表示大小、等于相应相关序列号 寄存器的以下值:
REG (十六进制) Val (十六进制)
30 00
...
4A 00
4B 30.
4C 00
4D 30.
4e 00
四.34.
USB 设备查看器仍然显示了我上面提到的内容。 非常感谢澄清应采取何种办法。
鉴于这种情况下的试错有点令人胆怯、由于 EEPROM 在输入 30h 到4Fh 之间的错误值时被打破、有关如何正确设置序列号的更详细描述将会很棒。
提前感谢您!
此致、
供电