找回密码
 注册
关于网站域名变更的通知
查看: 1753|回复: 17
打印 上一主题 下一主题

接入电平转换芯片造成SPI复用不能正常通讯的疑问

[复制链接]
  • TA的每日心情
    开心
    2021-9-18 15:22
  • 签到天数: 30 天

    [LV.5]常住居民I

    跳转到指定楼层
    1#
    发表于 2021-7-23 09:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    过程描述:一个mcu和两个外设公用一组SPI进行通信,其中外设2由于电源电压不同,SPI数据线使用了电平转换芯片,目前的问题是MCU与外设1进行SPI通讯,MCU的数据输入SDI始终为低电平,当断开与外设2连接的SDI连线后,MCU与外设1的通讯就正常了。疑问:现象上看是由于连接的电平转换芯片对SDI信号线上造成了影响,但是外设2的SPI片选信号已经设置为高电平,也就是没有工作,为什么还会影响外设1的通讯,电平转换信号型号为74LVC2T45DC,请各位高手帮忙分析一下。
    3 S. l" Z# |8 `" U
    & _, A' y' I+ R$ |2 k! G

    评分

    参与人数 1威望 +1 收起 理由
    zhizhong_0404 + 1

    查看全部评分

    该用户从未签到

    推荐
    发表于 2021-7-23 16:05 | 只看该作者
    tfjiangqi 发表于 2021-7-23 15:584 a) K6 {- ^! j
    主要是两端的电平不匹配,所以才用这个芯片,而且之前看芯片手册里没有说这个输出是推挽输出的
    4 w' g& v5 z7 N1 H' O
    所以说你们拍脑袋, 你们这用法,应该先使用4052 或者 SPI  Swtich芯片,把出来的信号一切二,然后做电平转化。这样就没问题聊3 T- f$ b0 `" q3 v, R+ q* \
  • TA的每日心情
    开心
    2021-9-18 15:22
  • 签到天数: 30 天

    [LV.5]常住居民I

    推荐
     楼主| 发表于 2021-7-23 17:29 | 只看该作者
    myiccdream 发表于 2021-7-23 16:05
    7 N) G* M2 v7 ^2 Z" Q所以说你们拍脑袋, 你们这用法,应该先使用4052 或者 SPI  Swtich芯片,把出来的信号一切二,然后做电平 ...
    8 `4 X# i6 H1 Z
    这不是拍脑袋,我这项目选型受很多限制,需要尽量用公司库的元器件,MCU的GPIO资源也没有富余,之所以DIR的控制脚直接固定接地,就是因为现在的MCU可用的GPIO全都用满了,一个剩余都没有,最早考虑使用专用的SPI转换芯片,可惜项目不让用,没处在当中当然不会理解。% }: `( f3 [7 ^& m1 U

    点评

    电平转换芯片的dir方向管脚,你可以用外设2的片选信号来控啊。。当外设2没被使能的时候,让电平转换芯片的方向变一下,外设2的端口电平就不会影响到你的MCU端口了。  详情 回复 发表于 2021-7-23 21:42

    该用户从未签到

    推荐
    发表于 2021-7-23 14:44 | 只看该作者
    tfjiangqi 发表于 2021-7-23 14:23
    " w+ ]) k9 v8 \. k外设2是AD7927,试过将AD7927端的SDI上拉,结果MCU和外设1进行SPI通讯时,SDI就一直是高电平,感觉是电平 ...
    : Z  I8 y4 ~2 O( T. n
    你们这是拍脑袋上芯片?+ ?+ X  z0 D% j0 w0 h
    SPI 的 MISO。一般空闲都是低电平吧。 你这能想通吧?
    & X8 }* ]+ O) I/ N5 `1 G你中间加一个74LVC2T45。 74LVC2T45 一看这输入为低电平,那我输出必须为低。
    % x! ]8 K; {5 \8 F7 Z6 v5 z如果74LVC2T45输出低是高阻,那就不会对你总线造成影响。但是如果不是哩,如果2T45是推挽输出哩? 那你就坑了. ^/ g: G" o! g  V2 l
  • TA的每日心情
    开心
    2021-2-25 15:13
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    2#
    发表于 2021-7-23 10:09 | 只看该作者
    2个信号同时输入到MCU,其中一个断开或高阻态才可以,最好的办法,这个MCU输入信号各自1根线

    点评

    由于MCU的资源有限,只能复用一组SPI,外设2未使用时,电平转换芯片的输入端应该是无输入,电平转换芯片到MCU的输出端应该也是高阻状态  详情 回复 发表于 2021-7-23 10:26
  • TA的每日心情
    开心
    2021-9-18 15:22
  • 签到天数: 30 天

    [LV.5]常住居民I

    3#
     楼主| 发表于 2021-7-23 10:26 | 只看该作者
    startostar 发表于 2021-7-23 10:09
    2 n$ I# s" {) r- x$ |2个信号同时输入到MCU,其中一个断开或高阻态才可以,最好的办法,这个MCU输入信号各自1根线

    3 f2 _2 x" `$ d4 I" y" w" v& F由于MCU的资源有限,只能复用一组SPI,外设2未使用时,电平转换芯片的输入端应该是无输入,电平转换芯片到MCU的输出端应该也是高阻状态

    点评

    你上原理图吧,我觉得你的转换芯片控制高阻肯定不对  详情 回复 发表于 2021-7-23 11:05

    该用户从未签到

    4#
    发表于 2021-7-23 10:29 | 只看该作者
    “外设2的SPI设为高电平,外设2没工作”,你要先确认,当外设2处于未选中状态,他的SDO管脚是否为低电平。如果是低电平,那么你MCU的SDI管脚确实会被拉到低。因为你用的电平转换芯片是带缓冲功能的,输出能力很强哦。建议你看下外设2的规格书,看看他未被选中时,芯片的输出是什么形式的,如果只是下拉输出,那么你可以外置一个上拉电阻使得其默认电平是高电平。

    点评

    外设2是AD7927,试过将AD7927端的SDI上拉,结果MCU和外设1进行SPI通讯时,SDI就一直是高电平,感觉是电平转换芯片的输入是高,输出就会强拉为高电平,电平转换没有输入时, 输出就会强拉为低电平,导致互联的SDI无法  详情 回复 发表于 2021-7-23 14:23
  • TA的每日心情
    开心
    2021-2-25 15:13
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    5#
    发表于 2021-7-23 11:05 | 只看该作者
    tfjiangqi 发表于 2021-7-23 10:26; d& G9 _; {! {  @9 d" U
    由于MCU的资源有限,只能复用一组SPI,外设2未使用时,电平转换芯片的输入端应该是无输入,电平转换芯片 ...
    % O! J1 v2 l6 {8 C6 Y. Z9 V- \
    你上原理图吧,我觉得你的转换芯片控制高阻肯定不对
    + f  B" t, g$ y4 s, G, G
  • TA的每日心情
    开心
    2021-9-18 15:22
  • 签到天数: 30 天

    [LV.5]常住居民I

    6#
     楼主| 发表于 2021-7-23 14:23 | 只看该作者
    xidian123 发表于 2021-7-23 10:29, K+ Y( E% z# K& E0 n9 q; d
    “外设2的SPI设为高电平,外设2没工作”,你要先确认,当外设2处于未选中状态,他的SDO管脚是否为低电平。 ...

    4 A; E6 n6 a( ?1 b8 o外设2是AD7927,试过将AD7927端的SDI上拉,结果MCU和外设1进行SPI通讯时,SDI就一直是高电平,感觉是电平转换芯片的输入是高,输出就会强拉为高电平,电平转换没有输入时, 输出就会强拉为低电平,导致互联的SDI无法通讯

    点评

    你们这是拍脑袋上芯片? SPI 的 MISO。一般空闲都是低电平吧。 你这能想通吧? 你中间加一个74LVC2T45。 74LVC2T45 一看这输入为低电平,那我输出必须为低。 如果74LVC2T45输出低是高阻,那就不会对你总线造成影  详情 回复 发表于 2021-7-23 14:44

    该用户从未签到

    8#
    发表于 2021-7-23 15:11 | 只看该作者
    2T45输出为高阻态不是由输入决定的,而是OE信号决定的。
  • TA的每日心情
    奋斗
    2020-3-27 15:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    9#
    发表于 2021-7-23 15:17 | 只看该作者
    74LVC2T45DC是2 bit电平转换,那么考虑到传输方向,你的SPI电平转换需要3个74LVC2T45DC,MISO用一个电平转换芯片(DIR配置成从外设2到MCU),CSn、CLK、MOSI用两个(DIR配置成从MCU到外设2)。当你想用MCU与外设1通讯时,需要把MISO的这个电平转换芯片的DIR配置成从MCU到外设2。手册里明确了,只有VCCA或VCCB为GND时,才是高阻

    点评

    现在是用了3个74LV2T45,MISO单独用了一个,DIR固定接低电平,方向没错, 现在不太清楚当74LV2T45没有输入时,输出状态是什么?手册里也没看到说明  详情 回复 发表于 2021-7-23 16:04
  • TA的每日心情
    开心
    2021-9-18 15:22
  • 签到天数: 30 天

    [LV.5]常住居民I

    10#
     楼主| 发表于 2021-7-23 15:58 | 只看该作者
    myiccdream 发表于 2021-7-23 14:44
    2 \+ W- c# u+ U, v) r& _你们这是拍脑袋上芯片?
    / d0 t4 h- s1 Y' l! fSPI 的 MISO。一般空闲都是低电平吧。 你这能想通吧?- l6 V! v' i7 O1 Q" E3 P) \
    你中间加一个74LVC2T45 ...
    ' f- i' o0 H- |6 F) w7 X# [2 N! L
    主要是两端的电平不匹配,所以才用这个芯片,而且之前看芯片手册里没有说这个输出是推挽输出的
    ) C5 U: O& {+ g) R

    点评

    所以说你们拍脑袋, 你们这用法,应该先使用4052 或者 SPI Swtich芯片,把出来的信号一切二,然后做电平转化。这样就没问题聊  详情 回复 发表于 2021-7-23 16:05
  • TA的每日心情
    开心
    2021-9-18 15:22
  • 签到天数: 30 天

    [LV.5]常住居民I

    11#
     楼主| 发表于 2021-7-23 16:04 | 只看该作者
    momokoko 发表于 2021-7-23 15:176 h' k9 Z0 \; F" J3 H+ e. ^4 B
    74LVC2T45DC是2 bit电平转换,那么考虑到传输方向,你的SPI电平转换需要3个74LVC2T45DC,MISO用一个电平转 ...
    5 u. _- j7 v. O0 `0 u# H9 K: K
    现在是用了3个74LV2T45,MISO单独用了一个,DIR固定接低电平,方向没错, 现在不太清楚当74LV2T45没有输入时,输出状态是什么?手册里也没看到说明1 I) d' ?0 W" H, ]. l

    该用户从未签到

    14#
    发表于 2021-7-23 17:32 | 只看该作者
    上个原理图哦,让大家看看

    该用户从未签到

    15#
    发表于 2021-7-23 21:42 | 只看该作者
    tfjiangqi 发表于 2021-7-23 17:29: J8 h( m( Q$ |" V2 x
    这不是拍脑袋,我这项目选型受很多限制,需要尽量用公司库的元器件,MCU的GPIO资源也没有富余,之所以DIR ...

    7 D2 W3 @- b! n9 i5 P电平转换芯片的dir方向管脚,你可以用外设2的片选信号来控啊。。当外设2没被使能的时候,让电平转换芯片的方向变一下,外设2的端口电平就不会影响到你的MCU端口了。' l: S+ h* U1 o+ V6 W$ @' X
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-1 02:24 , Processed in 0.171875 second(s), 37 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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