我们在使用TXS0104做SPI总线电平转换时,出现小概率工作不稳定情况。将原理图,现象,分析过程详述如下:
1. 原理图如下:
原理图说明:
A. 实现SPI总线电平转换,SPI MATER为1.8V, SPI SLAVE为3.3V;
B. OE采用下拉,接到MCU‘s IO,MCU电平电压是3.3V,只有在SPI通讯时才拉高OE,使之有效;
C. 实际使用的TXS0104;
2. 电气特性介绍:
A. SPI总线时钟小余1MHz;
B. 电源已经留有足够余量,LDO输出功率大于200mA,工作电流小余40mA,并且电源有很好的去耦设计;
C. SPI MASTER 选用EC20 R2.0-QuecOpe,
SPI SLAVER 电气特性如下:
3. 操作方法
每次使用SPI总线时才打开OE门
上拉电阻,我们采用多种方式测试,A. 去掉上拉,B. 10K上拉,C. 100K上拉,都有尝试,都有概率性错误;
4. 现象描述
A. 出现SPI通讯失败,具有极低的偶发率;
在目前系统测试过程中,平均连续工作9小时(通过SPI,约每2秒一次业务交互),故障时间不确定,偶发出现一次通讯错误;
B. 在出现一次通讯错误之后,在10分钟内出错概率很高(约出现70次),在10分钟内有正确情况,此后又连续工作约10小时,未见异常;
C. 在出现SPI通讯错误后,除了使用林工说的控制OE门disable/enable后能正常工作之外,还可以通过通讯双方任意一方重启的方式,再次恢复正常;
但是以上三种方式任意一种不能确保每次都能成功,如果三种方式都使用,不确定是否还会失败。
以下是测试数据:
- 编号825的设备,未挂上拉电阻,失败144次,绝大部份第二次可以恢复,有2次连续3次错误后复位SE(复位SE芯片、重新卸载、加载4G模块SPI驱动)。
- 编号818设备,不休眠,未挂上拉电阻,没有异常。
- 编号821设备,挂了100K的上拉电阻,不休眠,SE操作错误一次,第二次操作可以恢复。
- 编号819、820设备,只是通电,未挂上拉电阻,会休眠,操作SE,没有异常。
5. 我们的问题是:
A. TXB0104与TXS0104在我们目前场景中,选用哪个是合适的?
B. 目前TXS0104电路设计有什么建议,尤其是上拉电阻,OE控制方法;
C. 是否可以确定是电平转换芯片,与SPI主从这边电气性能不匹配导致问题存在?
D. 实际使用中,OE门为什么要需要有跳变成有效信号,电气性能能够恢复,这是什么机理?
Kailyn Chen:
SPI的应用,可以使用TXS0104 也可以使用TXB0104 , 如果是open drain的应用,建议是TXS010x。
对于OE的使用,正确的使用方法是,上电时, OE拉低,输出高阻抗状态,当电压起来至稳定之后,OE再拉高,输出使能enable, TXS0104 正常工作。 可以通过主控的GPIO去控制OE的时序。
kabin zhou:
回复 Kailyn Chen:
Hi, Kaily:
谢谢你的回复!
但是,你的回复对我们问题解决没有什么建设性建议,也没有解决我的疑惑。
针对当前不稳定的问题, 需要你们技术支援,需要解决问题而不是模糊的官方回应。
或者告诉我们通过什么方法有可能去除这种极低的概率性错误。
谢谢!
Kailyn Chen:
回复 kabin zhou:
您的四个问题中,前两个问题已回复,也建议OE是这样的时序去操作,因为有些客户直接在上电时,就将其拉高使能也会引起操作不正常。
第三个问题中,关于SPI主从是否匹配的问题,需要满足datasheet中Vih, Vil, Voh和Vol的门限电平标准。
第四个问题,OE跳变成有效信号,电气性能恢复,首先OE的时序在前面已介绍,那么OE的高低电平标准也需要满足VIh,VIl的要求才行。
kabin zhou:
回复 Kailyn Chen:
上拉电阻10K是否满足要求?是否需要上拉?
kabin zhou:
回复 Kailyn Chen:
另外,关于OE门的有效的正常工作电压是多少?
一端是3.3V,一端是1.8V,目前通过1.8V侧IO输出控制OE门,会不会带来不稳定性因素?
Kailyn Chen:
回复 kabin zhou:
OE 应该参考的是VCCA, 而不是VCCB, 所以当VCCA=1.8V时候,您目前通过1.8V 控制OE 是没问题的。