完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,我有一些关于在家庭自动化应用中将一个微控制器(覆盆子Pi或BeagleBone Black)与一些基于MCP23S17的IO模块连接的问题。这些模块背后的思想是构建一个可扩展的系统,其中每个MCP23S17模块向系统添加16个GPIO(连接到例如继电器和开关)。MCP23S17模块彼此相邻(在电气柜的DIN轨道上)。更具体地说,我的问题是关于连接几个基于MCP23S17的模块(制作RESET和I)时CS/SCK/SI/SO引脚(SPI总线)、RESET引脚和INTA/INTB引脚上的上拉和下拉电阻。NT总线与微控制器的连接)我是一名计算机工程师,除了很久以前的一些基础课程外,我没有接受过正规的电子学培训。在每一个问题的旁边,我都指出了我认为的答案。似乎有很多问题,但本质上,它们是相同的几个问题的不同套针。请容忍我。(1)CS,SCK,SI,SO引脚-MCP23S17在SPI模式0,0(默认)下操作(但是也可以在模式1,1中操作)。-CS默认为高(所有模式)。-SCK默认为低/非反相(模式0,0)。(1a)我是否需要CS的上拉和/或SCK的下拉?我假设它不是严格需要的,但它是更好的设计,因为它修复了默认状态。(1b)我需要在SI和/或SO上进行上拉或下拉吗?我不知道。(1c)如果是(1A)或(1B),我是否将这些电阻器放置在UC附近或每个MCP23 S17 IO模块上?我不知道,我怀疑把它们放在每个模块上会更加健壮。(1d)如果是(1a)或(1b),在1…8 MCP23 S17 IO模块?每个模块上有10 K,1个…8个模块的UC引脚将不得不源/汇0,5…4毫安在5V。这可以对SPI引脚?(2)RESET引脚数据表:“有源低输入”、“施密特触发器输入”(2a)当RESET没有连接到uC时,RESET可以直接连接到Vdd,还是需要限流电阻?我假设我可以直接连接到Vdd,尽管一些消息来源报告说为了可靠操作需要一个10K的电阻。(2b)当RESET连接到uC时,在RESET上应该使用上拉电阻吗?(2c)如果是,应该将单个上拉电阻放置在uC附近,还是应该将上拉电阻放置在每个MCP23S17 IO模块上?看(1C)。(2D)如果是,什么是一个良好的电阻值为1…8 MCP23 S17 IO模块?参见(1d).(3)INTA,INTB引脚-数据表:“这些引脚可被配置为活动驱动器输出,活动高或活动低,或作为开路漏极输出”(3a)当不使用INTA/INTB时,是否可以保持浮动?我想是的,但我不确定。(3b)为什么配置ICAN/ITB作为开漏输出可用的选项?我不知道。(3c)应该下拉(在活动高的情况下),上拉(在主动低的情况下)还是下拉(?在开漏的情况下,当IATA/ITB连接到UC时,电阻器被用于IATA/ITB?参见(1a).(3d)如果是,应该在uC附近放置单个上拉电阻还是应该在每个MCP23S17 IO模块上放置上拉电阻?见(1C)。(3e)如果是,什么是一个良好的电阻值为1…8 MCP23 S17 IO模块?(4)A0、A1、A2引脚-数据表:“TTL输入”-当“硬布线”地址时,A0/A1/A2可以直接连接到VDD吗?由于TTL的输入,我假定是肯定的。(5)SPI总线长度——如果组合的SPI总线长度为1-2英尺,有什么问题吗?非常感谢你的时间。
|
|
相关推荐
15个回答
|
|
|
这些引脚都不需要一个电阻器。如果可以连接到主CPU,SDI引脚可能是一个。上拉取决于VCC。需要5V的电流是10K,5V的标准值。MCP23S17CS管脚应该有一个上拉。(3)浮动输入不好。把它们拉上来,撬开它们,或者使它们输出。开着的排水管可以让你在同一条线上连接几个,用一个上拉器。每个下拉器/下拉器都是一个负载,太多了,而且芯片没有足够的功率来改变逻辑级别。(4)是的,但是上拉是典型的。(5)2英尺应该可以。距离越远波特率越慢。
|
|
|
|
|
|
同意NKurzman的意见。我只发现当有更多的奴隶在场时,对MISO的上拉是有用的:如果没有选择的话,该引脚将浮动,即使通常不是问题,人们也希望保持它“稳定”。只有一个上拉,为主人。
|
|
|
|
|
|
(3)INTA,INTB引脚不要直接将INTx引脚绑在一起,特别是从多个芯片绑在一起。虽然您可以将它们配置为开放式漏极,但是RESET的缺省设置是引脚是主动-低推挽输出,因此当芯片首次启动时,INT引脚被主动地驱动为高。将多个活动输出捆绑在一起是一个“不”,这就是为什么有“漏极”输出选择的原因。使用开路漏极信号,您通常会在主机上有一个单上拉电阻。因为每个芯片只能拉低线,所以没有冲突。不幸的是,不管是谁设计的MCP23xxxx都没有把复位时的默认设置考虑进去,并把这个问题搞砸了(IMHO)。(5)SPI总线长度比起频率本身,我更关心边缘转换时SPI CLK信号的快速转换速率。由这些快速边缘引起的CLK信号的任何故障都可能导致一个问题的世界。如果您的uC在其IO引脚上具有旋转速率控制,您可以尝试将其设置为慢模式(这可能会降低您可以运行的最大频率)。您可以尝试向SPI主CLK输出添加一个小串联电阻,例如100欧姆左右。这将有助于减慢边缘。如果你在带状电缆上运行,在SPI信号之间交替的GND连接也有帮助。
|
|
|
|
|
|
疯了,我从来没想过…IO不是个好主意
|
|
|
|
|
|
假设它们都在同一块板上,那就不成问题了。他们都将处于同一水平。但是一个小串联电阻将是一个好主意。我假设它会漂浮在许多应用中胜出。也许芯片设计师通过保证如果一个高价在低价位上的话不会被破坏。
|
|
|
|
|
|
他们是怎么做到的?他们所要做的就是设置默认的开式排水模式,但现在是一个未知数。只是需要注意的事情。
|
|
|
|
|
|
是的,这是更好的选择。
|
|
|
|
|
|
大家好,非常感谢你们的评论。我真的很感激。我给这个帖子添加了一个示意图。NKurZman。SDI是什么意思?这是一个额外的SPI线,我不在这里使用或另一个名称为MOSI和/或MISO?我在CS上增加了一个上拉。@ CHIZIAG-我在MISO上加了一个上拉。@ Jerry Messina -这是一个非常有趣的观察。我实际上已经注意到这个问题(我想我的软件工程方面),但是我错误地认为这不会是一个问题,因为中断生成最初是禁用的。但是,正如您正确观察到的,默认状态是活动的低,因此这确实是一个问题。在每个ITA上加一个二极管(当没有镜像时,可选地输出)解决这个问题吗?另一种选择是带有所有INTA/INTB输入的OR门,但是这需要很多额外的线路(虽然可能不是一个大问题)。
|
|
|
|
|
|
MCP23S17没有MISO和MOSI引脚,它们被标记为SI和SO。其他微芯片部件通常将这些相同的引脚称为SDI和SDO。
|
|
|
|
|
|
是的,SDI和SDO经常被使用,但如果你没有看到全板的示意图,它们可能会误导:而MISO和MOSI清楚地表明,即MISO是主输入从输出,即主SDI和从SDO。类似于MOSI。
|
|
|
|
|
|
你需要一个有效的高INT信号吗?在绘图中,在int行上有一个上拉(R6)。我倾向于用非活动状态偏压线。如果int有一个上拉,那么我会用它作为一个低活动/ int信号。这样,当模块没有安装/产生中断时,就不会有中断。就我个人而言,我会转动二极管,把它们改为肖特基型,如BAT85或BAT54 smt(它们的正向电压降较低),然后当我设置为开漏模式时,将MCP23xxxxINTA设置为开漏模式。哼哼。这会给你一个活跃的低/ int并保护INTA线。或者你可以将R6改为下拉。因为INTA默认的高输出会在复位时给你一个INT,但是它确实保护了INTA。
|
|
|
|
|
|
Jerry Messina:我比较喜欢低电平,所以默认的高输出不会产生杂散中断。然而,如果我反向二极管和配置INTA/INTB作为开放收集器,反向二极管是否仍然保护INTA/INTB输出,而它们处于其有源驱动器有源低默认状态(即,在配置它们作为开放收集器之前)?
|
|
|
|
|
|
是的。当芯片复位时,ITEX引脚配置为低电平。因为没有中断被断言,这意味着引脚将被驱动高(即不活动)。这是您想要阻止的状态。将二极管旋转将导致INTx引脚通常只能吸收电流(就像一个开路漏极)。有源低模式,因为外部二极管将阻止公共/INT线被驱动高,但我通常切换配置到开漏,只是为了在代码中明确引脚是如何工作的。并确保使用肖特基二极管。它们具有较低的正向压降(TYP在0.3V左右)。否则你的“低”就不会那么低了。
|
|
|
|
|
|
我已经更新了原理图。只是为了验证我理解了所有正确的内容-这个原理图在开放收集器模式下对INTA/INB有效-这个原理图同样对活动驱动器活动低/缺省高模式(缺省芯片配置)中的INTA/INB有效,因为在两种情况下INTA/INB输出都会将电流降到低逻辑电平是0V+二极管正向电压,这就是为什么我应该使用肖特基二极管,0.3V似乎低于V_IL的大多数(所有)逻辑系列。这会在通电与配置之间产生一个虚假的中断条件(在软件中我可以忽略它)。谢谢你的耐心。
|
|
|
|
|
|
如果要将INTA和INTB管脚绑在一起,可以通过在IOCON寄存器中设置MIRROR位来避免麻烦(以及二极管)。这将或两个INTx信号一起为您内部,所以您可以只使用一个连接到INTA或INTB。除此之外,它听起来肯定像您已经涵盖了所有的基础!
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475 浏览 0 评论
5794 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1125浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1098浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 14:06 , Processed in 1.222995 second(s), Total 100, Slave 83 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1574