尊敬的专家:
我的客户使用 FR5992创建了一个电路板。 在正常情况下、可以定期传输 I2C 通信、但当施加静电时、不会执行 I2C 通信。
由于不能每次都重复这一现象,因此欢迎就反措施提出任何建议。
问:如果您知道除下面列出的方法之外的其他有效对策、您能告诉我吗?
- 在启动 I2C 通信之前、每次都会复位 eUSCI 寄存器。
- 由 RST/NMI、PMMSWBOR 复位
- 重新为器件供电
- 硬件对 ESD 本身的对抗
约为1.
它们正在执行以下代码、但没有效果。 它们通过切换空闲 GPIO 来确认代码已执行。
(仅练习模块和引脚设置。)
VOID USCI_i2c_MasterSndStart() { PJOUT |= (1U<<0); UCB2CTLW0 |= UCSWRST; /* I2C in to reset mode */ P7DIR &= 0xFCU; /* Reset GPIO */ P7SEL1 &= 0xFCU; P7SEL0 &= 0xFCU; /* GPIO to I2C */ P7SEL1 |= 0x00U; P7SEL0 |= 0x03U; /* Reset Pull-up register */ P7REN &= 0xFCU; /* USCI reset */ UCB2CTLW0 = ( UCMST | UCMODE_3 | UCSYNC | UCSSEL__SMCLK | UCSWRST ); /* 7bit-Addr, Master, SMCLK */ UCB2BRW = F_UCBxBRW; /* Release I2C from reset mode */ UCB2CTLW0 &= ~UCSWRST; /* Set Address */ UCB2IFG &= (~(UCTXIFG0|UCRXIFG0)); UCB2IE |= UCTXIE; UCB2CTLW0 |= ( UCTR | UCTXSTT ); PJOUT &= ~(1U<<0); }
约2.
只复位 MSP430可通过恢复系统。 但是、由于产品使用规格的原因、他们无法考虑这一点。
约3.
由于产品使用的规格、他们无法考虑这一点。
约4.
如果没有其他方法、他们将根据以下文档尽可能实施硬件措施。
MSP430系统级 ESD 注意事项(修订版 B)
附录
FR5992仅通过 I2C 连接到另一个器件。
出现此问题时、通信线路(SDA 或 SLC 为未知)似乎卡在低电平。
由于静电测试、我们无法连接仿真器、也无法在问题发生时检查每个寄存器的值。
此致、
还可以