搜索
bottom↓
回复: 29

TXS0108电平转换SPI总线的问题

[复制链接]

出0入0汤圆

发表于 2016-2-1 10:58:05 | 显示全部楼层 |阅读模式
本帖最后由 Divingbear 于 2016-2-1 11:34 编辑

主控芯片是三星的Exynos4412,CAN总线控制器MCP2515,通过SPI总线连接,因为4412是1.8V电平,MCP2515是3.3V电平
中间通过TI的TXS0108做了一个电平转换。
CAN总线控制器电路如下图

电平转换电路图如下图


在实际使用中发现,CAN总线输出数据没有问题,但是接收数据会出现问题。某些数据会变化.
原始数据
fa fb fc fd fe ff 9f 9c
收到数据
ca cb cc cd ce cf 9a 9c
有时候还会出现其他变化

mcp2515和TXS0108的spec如附件



捕获MCP2515管脚处的SPI波形如下图,其中黄色为SCLK,绿色为MOSI,蓝色为MISO,红色为CS

局部放大如下图,可以看到蓝色的SO信号不断的被拉低。SO为B端输入,A端输出,其他信号为B端输出,A端输入


怀疑是A端驱动不足,输出为高的时候,会被拉低,然后导致B端也被拉低。
尝试将此信号跨过TXS0108直接短接,发现波形正常。

也尝试过在TXS0108两端过4.3K电阻拉高,不管是同时拉高,还是A端或者B端单独拉高,都会出现持续的震荡波形,无法接受数据。

请教这种情况还有什么办法能提高TXS0108的驱动能力?
还是说只能替换为74系列?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2016-2-1 11:06:52 | 显示全部楼层
用MOS管搭吧,论坛搜AN97055

出0入0汤圆

 楼主| 发表于 2016-2-1 11:28:59 | 显示全部楼层
再补几张图
MCP2515这边发出的数据,FA FB FC FD FE FF 9F C9

过了TXS0108的数据,FA FB FC FD FE FC 1E 09

TXS0108两端SO的波形,黄色为1.8V端的波形,蓝色为3.3V端。可以看到黄色缓慢下降,在0.8V位置拉低了蓝色端

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-2-1 11:33:33 | 显示全部楼层
little_Monkey 发表于 2016-2-1 11:06
用MOS管搭吧,论坛搜AN97055

搜不到这个关键词啊。
我这个线数有点多,用MOS管搭可能占用面积有点儿大了。
倒是LCD背光驱动的电平转换我是这么用的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-2-1 11:34:59 | 显示全部楼层
示波器好

出0入0汤圆

发表于 2016-2-1 11:40:07 | 显示全部楼层
用过TXB0102. 1.8V和3.3V转换,波特率115200。之前用的双MOS管转换,但速率可能跟不上,也有可能是电压太低了不好使。所以换的这个片子。之前双MOS的上拉没去掉,导致这个片子通信也不正常。后来仔细看Datasheet后发现用这种芯片不能用上拉。

出0入0汤圆

 楼主| 发表于 2016-2-1 11:41:13 | 显示全部楼层


攻(城狮)欲善其事,必先利其器。
我来之前只有两台普源的DS1102U,
我来之后就忽悠领导批了这台安捷伦的3024T

出0入0汤圆

发表于 2016-2-1 11:41:23 | 显示全部楼层
little_Monkey 发表于 2016-2-1 11:06
用MOS管搭吧,论坛搜AN97055

双MOS没这个片子稳定。特别是速率高而电压又低的情况。之前用过NTJD4001N的双MOS,速率低点或电压高点还是好用。但用在1.8V,速率就不能太高

出0入0汤圆

 楼主| 发表于 2016-2-1 11:47:34 | 显示全部楼层
mcu_mouse 发表于 2016-2-1 11:40
用过TXB0102. 1.8V和3.3V转换,波特率115200。之前用的双MOS管转换,但速率可能跟不上,也有可能是电压太低 ...

说道波特率,你是用这个片子做UART的电平转换吧?
TXB系列没有内部上拉,不适合用与I2C和1-wire应用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-2-1 11:49:54 | 显示全部楼层
mcu_mouse 发表于 2016-2-1 11:40
用过TXB0102. 1.8V和3.3V转换,波特率115200。之前用的双MOS管转换,但速率可能跟不上,也有可能是电压太低 ...

TXS系列有智能上拉电阻,Rpua和Rpub。
但是外部上拉的话,我用了4K3的上拉后,波形自激振荡。
换用330R的强上拉,自激振荡倒是没有了,SPI配置波形错误,MCP2515不工作了。

出0入0汤圆

发表于 2016-2-1 11:57:34 | 显示全部楼层
Divingbear 发表于 2016-2-1 11:49
TXS系列有智能上拉电阻,Rpua和Rpub。
但是外部上拉的话,我用了4K3的上拉后,波形自激振荡。
换用330R的 ...

TXB的是内部推挽。不用上拉的。上拉电阻不能太小,那个会影响速率的

出0入0汤圆

发表于 2016-2-1 12:00:07 | 显示全部楼层
或者楼主可以试着断掉CAN的SI,搞个4K7的电阻到地再量下波形看。看是不是1.8V这端影响了3.3V这边

出0入0汤圆

 楼主| 发表于 2016-2-1 12:08:38 | 显示全部楼层
本帖最后由 Divingbear 于 2016-2-1 12:11 编辑
mcu_mouse 发表于 2016-2-1 12:00
或者楼主可以试着断掉CAN的SI,搞个4K7的电阻到地再量下波形看。看是不是1.8V这端影响了3.3V这边 ...


不是不想这么做,如果断掉SI的话,芯片上电无法初始化,则MCP2515完全不工作。没法测量波形。
因为每次读取数据,都是4412通过SI发送地址码和命令码,由MCP2515响应发送响应寄存器的值,所以即使初始化完成后,再断开线路都是不可行呢。

出0入0汤圆

 楼主| 发表于 2016-2-1 12:18:00 | 显示全部楼层
mcu_mouse 发表于 2016-2-1 12:00
或者楼主可以试着断掉CAN的SI,搞个4K7的电阻到地再量下波形看。看是不是1.8V这端影响了3.3V这边 ...

不过我也是这么你这么想的。
我在三楼放的第三张图,
黄色的1.8V,在缓慢下降,到0.8V的时候,我估计是芯片判断A端输入了一个低,所以把B端(3.3V)强行拉低了。

出0入0汤圆

发表于 2016-2-1 13:25:38 | 显示全部楼层
Divingbear 发表于 2016-2-1 12:18
不过我也是这么你这么想的。
我在三楼放的第三张图,
黄色的1.8V,在缓慢下降,到0.8V的时候,我估计是芯 ...

那在CAN的SI串个电容看,然后再量下波形看

出0入0汤圆

发表于 2016-2-1 14:17:45 | 显示全部楼层
little_Monkey 发表于 2016-2-1 11:06
用MOS管搭吧,论坛搜AN97055

MOS管的速率比较高的时候会有问题

出0入0汤圆

发表于 2016-2-1 14:26:14 | 显示全部楼层
sj1125055001 发表于 2016-2-1 14:17
MOS管的速率比较高的时候会有问题

我用的是104
ti的这种芯片一般来说是比较靠谱的

可以参考我的这个电路
-----------------------------------
你看到的是芯片的输出有异常
可能是芯片的问题
当然,也有可能是电路的问题
------------------------------------
你1.8v的10uf可以删掉试试

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-2-1 15:23:07 | 显示全部楼层
mcu_mouse 发表于 2016-2-1 13:25
那在CAN的SI串个电容看,然后再量下波形看

我尝试在SO过了TXS0108后,也就是在1.8V Vcca端做了一个2K的上拉,
输出到4412的数据读取正常了,但是SO电平只有0.8V。
电路改动如下

波形图

可以看到数据正常,但是SO会拉高到1.8V,然后跌落到0.8V附近,没有锯齿波了。
目前想不通为何增加2K的外部上拉,会使电压跌落到0.8V

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-2-1 10:58:06 | 显示全部楼层
Divingbear 发表于 2016-2-1 15:23
我尝试在SO过了TXS0108后,也就是在1.8V Vcca端做了一个2K的上拉,
输出到4412的数据读取正常了,但是SO ...

检查一下为什么处理器侧有一个比较大的下拉电阻?

看起来是下拉电阻拉低了1.8V侧,导致一个OneShot下拉;然后SO输出高,等一会儿一个正的Shot。

出0入0汤圆

 楼主| 发表于 2016-2-1 18:16:27 | 显示全部楼层
DR2001指出了核心问题。
通过NET NAME可以看出该SPI和I2C复用,而I2C一般都会做上拉处理。
沿着信号线往外购的核心板上追溯,发现在核心板上通过1K电阻拉到VDD18_CAM这个电平上,
而这个电平被软件关闭了,所以实际上该信号是通过1K电阻拉低了。
在焊掉这个电阻后,问题解决,波形正常且编解码正常。
但是TXS0108驱动能力弱的问题还是需要在使用时候注意,因为该核心板是外购的,我们无法控制该电阻的上建与否。
所以我们还是通过软件配置打开了这个电平,而此时量测的SO信号的低电平有380mV的上浮。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-2-1 20:55:04 | 显示全部楼层
本帖最后由 dr2001 于 2016-2-1 20:57 编辑
Divingbear 发表于 2016-2-1 18:16
DR2001指出了核心问题。
通过NET NAME可以看出该SPI和I2C复用,而I2C一般都会做上拉处理。
沿着信号线往外 ...


无方向控制引脚的双向电压转换器,必然不可能是全时PushPull输出的,否则变极性的时候就会直通。
PP输出只能用在边沿上的短时开通用于加速边沿,稳态输出只能依赖上拉下拉电阻(Bus Hold)。

所以,
# 外置的上下拉或者长时间/大幅度的过冲,都可能导致边沿检出,触发OneShot翻转。驱动器侧的信号变化单调性需要保证;外置上下拉导致的两个稳态电平也需要评估。
# 为了确保低电平足够低,转换器中间一般会有个直通的MOSFET,也就是驱动器输出低电平的时候,实际要承受两边的上拉电阻的电流。
# 如果要产生翻转,驱动器的输出电流要足够强才行。具体要看芯片手册了。

出0入0汤圆

发表于 2016-2-1 21:41:53 | 显示全部楼层
mcu_mouse 发表于 2016-2-1 11:41
双MOS没这个片子稳定。特别是速率高而电压又低的情况。之前用过NTJD4001N的双MOS,速率低点或电压高点还 ...

MOS管我试过上MHz没有问题,电压低就选低Vgs的,用在这里完全没问题

出0入0汤圆

 楼主| 发表于 2016-2-1 23:02:06 | 显示全部楼层
dr2001 发表于 2016-2-1 20:55
无方向控制引脚的双向电压转换器,必然不可能是全时PushPull输出的,否则变极性的时候就会直通。
PP输出 ...

感谢指点,你说的比较简略,大概的意思我能理解,但领悟的不是很透彻。TXS系列本身应该无法选择是PP还是OD输出吧?应根据输入信号来决定?
在我遇到的这个BUG中,SPI是PP输出,SO过TXS0108后,因为后端有1k下拉电阻所以不能保持高电平,持续下落至0.8v,反响拉低了B端的输入信号可对?
之前版本我用的74系列的电平转换芯片(型号明天查一下),同样的软硬件设置,可保持SO过电平转换后不跌落。是两种芯片的结构差异还是驱动能力差异造成不同的表现呢?
如果有相关的文档望分享学习一下。

出0入0汤圆

发表于 2016-2-2 09:12:30 | 显示全部楼层
本帖最后由 dr2001 于 2016-2-2 09:22 编辑
Divingbear 发表于 2016-2-1 23:02
感谢指点,你说的比较简略,大概的意思我能理解,但领悟的不是很透彻。TXS系列本身应该无法选择是PP还是O ...


芯片内部结构框图请参考对应芯片的手册,这样有利于理解。
这类芯片的使用上的问题来自于如何实现“自动”的双向电平转换,并且达到所需的速度。

目前没有详细的技术文档可供参考,但可以参考这些手册:
1、基于MOSFET,两侧上拉的方案:
低Vgs(th)的MOSFET独立实现,PCA9306,TI的LSF系列以及TI的74GTL系列。
2、为了让边沿更陡峭,在1的基础上,加入边沿检测和One Shot驱动器,加速边沿:
TI的TXS系列。因为有PU存在,所以可以支持OC电路。
3、取消直通的MOSFET,检测边沿并One Shot,电平保持用Bus Hold。
TI的TXB系列。因为Bus Hold,这种芯片不能支持OC,只能PP,而且对驱动强度有要求。

对TXS而言,在边沿被检测到之后,引脚是PP的,等一会儿(TXS0108手册指出约30ns,我觉得可能是笔误,从你贴的图上看可能是3ns左右的样子)就变成HiZ+PU的。PP驱动的目的是为了让边沿陡峭。

你遇到其实不是Bug,这就是“自动”双向的正确行为:只要任何一边有信号反相,这个信号就一定会被传递到另一侧。

从事件时序上看,大体是这样,仅供参考理解:
# SO输出High并且一直保持。
# TXS检测到SO侧上升沿,One Shot PP驱动开启,AP侧输出High,可观测到上升沿。

# TXS向AP侧的PP驱动结束,PU电阻开始起作用。
# AP侧强下拉,在TXS PU阶段其下拉和引线/引脚电容一起显现,TXS的AP侧引脚电压逐渐下降。
# TXS AP侧电压达到低电平阈值,TXS认为AP侧出现了低电平,开启向SO侧的One Shot PP,把低电平打过去。此时实际上是3.3V,TXS,SO,GND这样的直通,电压成什么样子就拼驱动能力了。
# 两边电平继续下降,直到一侧电压低于某个阈值,导致直连的Ron约几百Ohm的MOSFET开通;然后由低电平侧拉着对侧一起继续降。
# PP驱动关闭,PU起作用;直通MOSFET继续开启;SO依然驱动为High。这时候等于SO通过MOS给AP侧充电。
# SO侧电平持续上升,超过某个阈值,MOSFET关断。SO侧由SO的PP驱动,电压快速上升。
# SO侧检测到高电平/上升沿,AP方向的PP启动,推出AP侧的上升沿,直到高电平。
循环前边的步骤。。。


所以这种自动双向芯片对过冲什么的都可能会比较敏感。。。有可能放大影响。

出0入0汤圆

发表于 2016-2-2 14:11:04 | 显示全部楼层
dr2001 发表于 2016-2-2 09:12
芯片内部结构框图请参考对应芯片的手册,这样有利于理解。
这类芯片的使用上的问题来自于如何实现“自动 ...

牛牛,不错啊

出0入0汤圆

发表于 2017-12-13 23:31:10 | 显示全部楼层
dr2001 发表于 2016-2-1 20:55
无方向控制引脚的双向电压转换器,必然不可能是全时PushPull输出的,否则变极性的时候就会直通。
PP输出 ...

无方向控制引脚的双向电压转换器,必然不可能是全时PushPull输出的,否则变极性的时候就会直通,什么意思  手册TXB不能上拉,  TXS可以 ,保证至少2ma的电流就可以

出0入0汤圆

发表于 2018-4-16 17:47:21 | 显示全部楼层
dr2001 发表于 2016-2-2 09:12
芯片内部结构框图请参考对应芯片的手册,这样有利于理解。
这类芯片的使用上的问题来自于如何实现“自动 ...

厉害啊 学习学习一下

出0入4汤圆

发表于 2020-11-2 16:44:56 | 显示全部楼层
mark 正在使用这个芯片,学习了

出0入114汤圆

发表于 2021-6-7 16:46:22 | 显示全部楼层
用这个片子,也是spi 信号的,使用mcp2515, 3.3v转5v,1.8v转5v都是失败了,波形异常,驱动能力还是太弱了

出0入0汤圆

发表于 2023-6-7 15:10:10 | 显示全部楼层
我也用TXS0108E转SPI flash,速度上不去(不过SPI和IIC同在一个芯片转换电平),降低速度(1.625MHz)flash读写正常了。不清楚是不是推挽和开漏确定速度问题
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-21 04:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表