主题中讨论的其他器件:TLV320AIC3100、
您好!
我们在设计中实现了以下两个组件(请参阅附件中的原理图)
- TLV320AIC3100
- TS3A225E
我们很难观察到 TS3A225E 的寄存器设置丢失。
立即写入和读取这些值是可以的、但在大多数时间100ms 后、这些值会丢失。
PS:同一 I2C 总线上的 TLV320AIC3100工作正常
你能提供建议吗?
TX
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.
您好!
我们在设计中实现了以下两个组件(请参阅附件中的原理图)
- TLV320AIC3100
- TS3A225E
我们很难观察到 TS3A225E 的寄存器设置丢失。
立即写入和读取这些值是可以的、但在大多数时间100ms 后、这些值会丢失。
PS:同一 I2C 总线上的 TLV320AIC3100工作正常
你能提供建议吗?
TX
尊敬的 Adam:
我有测试步骤、很容易重现:
1) 1)在未连接任何器件的情况下为器件加电。
2) 2)向 CTRL3 0x04寄存器写入值0x04 (作为中断)
3) 3)连接耳机。 MIC_Present 引脚变为低电平(有效)。
4) 4)读取 CTRL3、它仍然为0x04。
5) 5)断开耳机。 MIC_Present 引脚变为高电平
6) 6)读取 CTRL3、它将为0x00。 实际上、所有寄存器都是复位值、IC 似乎执行内部复位。
PS:我注意到数据表为 CTRL3提供了两个不同的地址。
在"寄存器映射"部分中、CTRL3的地址为0x04;
在下一节"寄存器说明"中、它变为"0x041"。
我认为 CTRL3的地址应该是0x04。
此致
Forrest
Adam 和 Peter、
根据我们之间的不同情况、我更详细地研究了它。
问题现已基本确定、但仍在 DET_TRIGGER 电压附近。
一旦 MIC_Present 引脚变为高电平、立即读取或写入 TS3A225E 寄存器、它就没有响应。
它会导致主机微处理器 STM32F407置位 I2C 忙标志。
之前、主机程序继续读取 TS3A225E 寄存器、而不会复位忙标志、
因此、我报告所有寄存器已复位为零。 (丢失配置)
如果在 MIC_Present 引脚变为高电平后插入大约1毫秒的延迟、则可以进行读取或写入。
为什么需要延迟? 是否有更优雅的解决方案?
PS:如果设置 CTRL3 = 0x04、MIC_Present 引脚几乎是 DET_TRIGGER 的反向器。 是这样吗?
此致
Forrest