我创建了一个基于 MCU 的电路、并已成功使用它通过卡边缘连接器初始化 M96C46 EEPROM。 参考随附的原理图可以执行此操作、我的 MCU 将集线器通过 J6E 保持在复位状态、并驱动 J6K (片选)以及时钟和数据信号。 然后、我断开了这个 MCU 电路、并将集线器直接连接到 Windows PC 上的 USB 端口。
由于集线器数据表建议100µs 复位时间为1ms ~、因此我测得200µs 800µs 的 R2/C5集线器复位电平< 0.8Vdc (最大 VIL)、RESET 达到 VIH 最小值(1.8V)、大约为3.3VDC 电源轨的"砖墙"电压上升时间。 请注意、3.3V 电压轨是由具有 Vbus 的 LDO 产生的、用于 Vin。 C4和 C11旁路电容器的安装与原理图相反。 不过、在此复位时序下、集线器无法与 EEPROM 通信、但除了向 Windows 设备管理器报告错误的 VID = 0x0000和 PID = 0x0000之外、它也能正常运行。 推测集线器被配置为"成组"过流保护(位于 EEPROM 地址0x0000)、因为这是针对 EEPROM/PID 所报告的 VID 情况。 用于参考的 EEPROM 数据表 https://www.st.com/resource/en/datasheet/m93c46-w.pdf
我将 R2从10K 更改为100K、并在"砖墙" 3.3V 电源出现后的6.7ms 内观察到 EEPROM 通信。 设备管理器报告集线器 MCU/PID、我之前使用我的 VID 电路写入 EEPROM。
但从 EEPROM 通信的角度来看、我也担心复位时间过长(除了过短)。 我还尝试了 R2 = 100K 和 C5 = 1µF、这会产生正确的 VID / PID。 然而、我已经两次观察到正确的初始化 VID、但是对于 PID、在两个不同的单元上未加电时为0x0000。 在随后发生断开/重新连接事件时、两个单元似乎都报告了正确的 VID / PID。
因此、EEPROM 通信似乎有一个关键的时序窗口、需要在集线器 USB 响应时间和 EEPROM 通信之间进行权衡; 我担心可靠性。
Schematic 您能否提供任何见解和指导?