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.

[参考译文] TUSB8041-Q1:EEPROM 访问

Guru**** 2760915 points

Other Parts Discussed in Thread: TUSB8041-Q1, TUSB8041

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/882907/tusb8041-q1-eeprom-access

器件型号:TUSB8041-Q1
主题中讨论的其他器件: TUSB8041

您好!

我们将在我们的设计中使用此芯片、但您能告诉我、一旦将其嵌入到设计中、我们是否仍然可以通过 USB2主机接口对连接的 EPROM 进行编程?

因此、连接将是:

USB2.0主机(USB2.0链接)--> TUSB8041-Q1 --> EPROM (通过 I2C)

原因是、我们希望将来能够随时对 EPROM 进行重新编程、具体取决于具体情况。

谢谢、

埃尔顿

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

    您好、Elton、

    是的、EEPROM 可以通过 USB 2.0重新编程、但它确实需要使用 EEPROM 编程工具并将驱动程序加载到集线器上。  您有实用程序吗?  如果您需要该实用程序、请接受我的朋友的请求并向我发送消息。

    此致、

    JMMN

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

    JMMN、您好!

    我确实拥有该工具、是的、但我如何使用它? 这是否用于工作台编程、因此需要有人在那里进行物理操作? 如果是、这不是我的意思。 很明显、任何涉及某人的场景都没有用处。 我们需要现场编程的选项。  

    谢谢、

    埃尔顿

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

    JMMN、您好、我能不能在需要继续操作并决定如何在现场对器件进行编程时得到答案。  

    如果我们无法通过 USB 进行更新、则必须使用 I2C/SMBus 接口、但我也对此有疑问。

    如文档中所述、"I2C 支持单个主器件..." 专用 I2C EEPROM 的连接..."。

    "专用"一词意味着集线器只能连接到一个器件、并且该器件必须是 EEPROM -这是正确的吗?  

    我之所以提出这一要求、是因为我一直在努力将处理器置于从模式、并使用集线器从其获取更新。  

    您认为这是可能的吗? (为清晰起见、您能否确认它肯定不能是多主控设置的一部分?)  

    因此、如果我们无法使用 I2C、则存在 SMBus、但在文档中、它仅表示它支持读取块和写入块协议、

    那么、这是否意味着它不支持单次读取和写入?  

    很抱歉、我不想为您带来太多问题。 我只想清楚地了解我们在实际中将如何控制该器件。

    因此、如果您有编程指南或有关该内容实际工作原理的更详细的信息、我将不胜感激。  

    非常感谢、

    埃尔顿

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

    您好、Elton、

    通过 USB 对 EEPROM 重新编程需要手动安装驱动程序、因此需要用户参与。

    当集线器处于 I2C 主模式时、它只需要连接一个 EEPROM、而只在复位后检查 EEPROM。  如果 EEPROM 在此之后更新或更改、则在 下一次复位后集线器才会看到它。   

    使用 SMBus 主机通常是支持 TUSB8041寄存器值可能需要更改的应用的最简单方法。  同样、集线器的设计实际上仅在复位时进行配置、因此在不至少强制通过 SMBus 进行软复位的情况下无法动态重新配置集线器。

    此致、

    JMMN

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

    JMMN、您好、感谢您回来。  

    我现在也有同样的看法、认为 SMBus 从设备是前进的道路。 不过、要做出最终决定、您能否确认器件是否支持单字节读取/写入、而不仅仅是块读取/写入? 我觉得我们只需要更改大约7个寄存器、因此可以轻松地一次更改一个寄存器。  

    您所说的"至少通过 SMBus 强制软复位"是有趣的。 这表示我们可以避免完全硬复位是吗? 那么、我们如何"通过 SMBus"实现软休息呢? 是否有特定的寄存器或位控制此操作? 我们可以执行硬复位、我只是想用另一种方式进行复位。 选项总是很好的。

    如果您不介意、还有一个更详细的信息-我们是否可以使用附加功能配置中的 stsOutputEn 位。 寄存器 以屏蔽外部配置。 电阻器拉取? 例如、复位时、SMBUSz 引脚具有一个电阻器拉电阻器、可将器件设置为 SMBus 从器件、但我们进入并将 stsOutputEn 位置为将 HS/SS 和 HS/SS_SUSPEND 输出(SS_SUSPEND = SMBUSz)三态、 然后重新启动器件、使其忽略外部拉电阻并使用内部拉电阻器成为 I2C 主器件?

    非常感谢、

    埃尔顿

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

    您好、Elton、

    我将跟踪数据表中"块协议"注释的设计、因为我通常只在 SMBus 模式下写入/读取单个寄存器、而不会出现任何问题。  请注意、默认情况下、集线器将按引脚配置中的设置加载、然后 SMBus 主机在 SMBus 模式下可以覆盖这些设置。  此外、一旦启用 SMBUSz 模式、集线器将不会作为集线器运行、直到寄存器中的 cfgActive 位置位。

    寄存器中没有真正的软复位、但有一个 SMBus 复位、它将寄存器设置回其默认状态、然后可以重新配置集线器。  仍然最好执行硬复位、然后配置 SMBus 以确保集线器断开连接并使用加载的最新配置重新枚举。

    遗憾的是、无法屏蔽引脚配置设置。  集线器经过硬编码、可对引脚进行采样、因为它退出复位并在内部锁存这些值、然后引脚成为状态输出或其辅助功能的任何内容。

    此致、

    JMMN

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

    AH、块读取/写入访问是对单个读取/写入访问的支持。  数据表中应更清楚地说明这一点。

    此致、

    JMMN

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

    JMMN、您好!

    感谢您的帮助和解答我的问题。  

    因此、如果您不介意、我可以澄清更改寄存器时的正确步骤:

    正常引导-->加载引脚配置设置(启用 SMBus)-->更改设置(通过 SMBus)-->重新引导

    是这样吗?

    如果是、第一个问题是、重新启动后、集线器是否会再次重新加载引脚配置设置、并将内容恢复为平方1?

    如果不需要重新启动、是否只是设置 cfgActive 位而不是重新启动的情况、然后器件将关闭并运行?

    非常感谢、

    埃尔顿

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

    您好、Elton、

    这里是集线器在各种模式下加载值的方式。  一旦启动并运行并连接到系统、在下一次 GRSTz 置位后、集线器将不会看到任何 I2C 或引脚配置更改。  SMBus 主机可以在集线器连接时更改寄存器、但无法保证值将加载到下一次重新枚举集线器之前、因此最干净的方法是从 GRSTz 声明开始。  正确的做法是、在加载值后进行重置只会再次将其清除。

    SMBus 模式:

    • GRSTz 断言结束
    • 引脚配置加载到集线器中
    • 集线器发现 SMBUSz 处于低电平并进入编程模式
    • SMBus 主机配置集线器
    • SMBus 主机设置 cfgActive 位
    • 集线器使用最新值连接到主机。

    I2C 模式:

    • GRSTz 断言结束
    • 集线器确定 EEPROM 已连接
    • 集线器从 EEPROM 加载值
    • 集线器使用最新值连接到主机、

    引脚配置模式:

    • GRSTz 断言结束
    • 引脚配置加载到集线器中
    • 集线器使用最新值连接到主机。

    此致、

    JMMN

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

    JMMN、您好、非常感谢您的详细介绍。  

    好的、老实说、我现在不知道该怎么做。 因此、我们可以更改设置并希望它们保持不变、也可以进行重置

    并保证它们不会!  

    这既是滑稽又不是滑稽的,同时都是:(

    那么、我们有哪些选择呢? 嗯...

    我想我们可以从一开始就让设置变得完美。 我可以借用 TI 公司的计时器来度过周末吗?

    或者器件状态和命令寄存器中的 smbusRst 位如何-它是怎么做的?

    您之前提到过的"软"复位是否存在?  

    我能否与您一起检查以下几件事:

    此时它的接线方式、我将切换内核1V1电源以进行复位、因为全局复位是以不同的方式使用的。  

    这是否正常、并具有与切换 GRSTz 相同的效果?

    它不会在芯片中引入任何 POR 问题、因为3V3将保持不变?

    -默认的寄存器设置是什么? 我可以有一个列表吗?

    OTP 的大小是多少,你能确认它肯定是空的吗?

    再次感谢、

    埃尔顿

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

    让我澄清一下、只要您通过 SMBus 写入寄存器、您写入的值就会加载到集线器中、但主机控制器在下一次 USB 枚举事件之前不会输出并读取集线器描述符。  在 连接的系统中从集线器强制执行枚举事件的唯一方法是使集线器复位。  这就是为什么我建议从复位开始、设置所有值、然后主机将枚举集线器。并读取最新值。  

    TUSB8041是基于状态机的设计、具有有限的配置选项、因此我们没有太多客户在开发阶段之外调整寄存器值。  您认为哪些价值观可能会改变?  数据表中列出了默认寄存器值、本文档提供了一些有关寄存器的附加信息:

    将1.1V 拉至低电平不会可靠地复位集线器、只有将 GRSTz 拉至低电平才能实现这一目的。   

    数据表中的第8.3.3节介绍了可使用 OTP 进行控制的内容。  OTP 位被清零、但它们只能用于调整极性、VID/PID、不可拆卸状态和一些其他选项。

    此致、

    JMMN

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

    JMMN、您好、再次感谢您的帮助和澄清。 这更有意义、我很高兴听到这一点、因为我们现在已经设计好了!

    我/我们真的不知道线路上可能会有什么进一步的变化、因为此集线器为我们的"未来扩展"端口提供 USB、以容纳插卡。

    其中一些是现成的参考设计、但我们可能会设计自己的、例如、我们可能希望开启电池充电或成组电源功能。

    我们只是不知道。

    我们可能不会这样做、但这一切都是为了让我们的选项保持开放。  

    如果我可以再问几个问题、我认为我已经完成了:

    只是为了澄清 OTP 是一次性可编程的是吗? 只是有几个冲突引用似乎表明它不是一次性的、并且你已经完成了。

    JMMN 代表什么?! )  

    谢谢、

    埃尔顿

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

    您好、Elton、

    好的、有必要保持寄存器设置的选项处于打开状态。  我只是想确保您没有尝试支持集线器并非真正设计用于支持的功能。  听起来您倾向于使用 SMBus 模式进行寄存器访问、但我确实想重申、如果您使用 I2C 模式并保留安装空白 EEPROM、则集线器实际上将默认为编程模式、并且不会将上行端口作为集线器进行连接。  我们已让客户在其设计中添加了一个未使用的 EEPROM、以满足未来需求、并将其运行。

    OTP 实际上是一次性可编程的、因为如果您设置了某个位、则无法取消设置该位、但您始终可以设置以前未设置的位。

    JMMN 是我的首字母缩写、我在10年前设置了我的账户、当时我们都使用了首字母缩写/昵称、我想我从未更新过?

    此致、

    Julie

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

    Julie。 您好... 很高兴有一个名称,而不是字母数字:)  

    感谢您的关注。 很高兴听到这个消息、因为我以前没有真正选择过 USB 集线器、因此提出了所有问题。

    感谢您在 EPROM 上发出警告。 我在那里留下了一个 EPROM、以防万一、但为了澄清一下、如果我在 SMBUSz 上有下拉电阻器将其置于 SMBus 模式、

    它将始终引导至 SMBus 从模式、永远不会进入 I2C 主模式正确吗?

    如果是正确的、很好、但是您是否 会说、如果进一步往下、我们的设置是稳定的、并且如果 PROM 为空、我们只希望让集线器从 PROM 引导

    集线器将进入编程模式、只需坐在那里?

    谢谢、

    埃尔顿

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

    您好、Elton、

    它将始终引导至 SMBus 从模式、永远不会进入 I2C 主模式正确吗?

    是的、如果 SMBUSz 被置为有效、那么集线器将进入 SMBus 从模式、而不是 I2C 主模式。

    如果是正确的、很好、但是您是否 会说、如果进一步往下、我们的设置是稳定的、并且如果 PROM 为空、我们只希望让集线器从 PROM 引导

    集线器将进入编程模式、只需坐在那里?

    是的、如果您将一个空 EEPROM 连接到集线器、它将自动进入编程模式并保持在该模式。  这是为了让生产线上的客户更轻松地完成工作、但我们发现、有些客户安装了空白 EEPROM、以防他们稍后想要更改某些内容、即使他们使用的是引脚配置也是如此。  在这种情况下、客户必须对 EEPROM 进行编程或将其移除、或移除 SDA/SCL 上的上拉电阻。

    此致、

    Julie

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

    为了让 Julie 清晰明了、即使我们有 SMBus 从机模式下拉电阻器、如果还连接了 EPROM、它仍会进入编程模式?

    因此 EPROM 的存在将覆盖下拉电阻。

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

    否、如果 SMBus 被置位、集线器将不会进入 I2C 模式。 我是按顺序回答您的问题、我编辑了上述帖子、以便更清楚地说明这一点。

    此致、

    Julie

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

    您好、Julie、是一位快速感谢您的所有帮助的人。  

    谢谢。

    埃尔顿