打印

请教:带 SPI 的 MCU 和 带 SPI 的 Flash 到底怎么连接,谢谢!

[复制链接]
4046|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星电灯|  楼主 | 2007-4-23 09:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教:
芯片手册原文:
20.1.4 从选择(NSS)
从选择(NSS)信号的功能取决于SPI0CN寄存器中NSSMD1和NSSMD0位的设置。有3种可能的方式:
1. NSSMD[1:0] = 00:3线主方式或从方式:SPI0工作在3线方式,NSS被禁止。当作为从器件工作在3线方式时,SPI0总是被
选择。由于没有选择信号,SPI0必须是总线唯一的从器件。这种情况用于一个主器件和一个从器件之间点对点通信。
2. NSSMD[1:0] = 01:4线从方式或多主方式:SPI0工作在4线方式,NSS作为输入。当作为从器件时,NSS选择从SPI0器件。
当作为主器件时,NSS信号的负跳变禁止SPI0的主器件功能,因此可以在同一个SPI总线上使用多个主器件。
3. NSSMD[1:0] = 1x:4线主方式:SPI0工作在4线方式,NSS作为输出。NSSMD0的设置值决定NSS引脚的输出电平。这种配置
只能在SPI0作为主器件时使用。
图20.2 ~ 20.4给出了不同方式下的典型连接图。注意:NSSMD位的设置影响器件的引脚分配。当工作在3线主或从方式时,NSS
不被交叉开关分配引脚。在所有其他方式,NSS必须被映射到器件引脚。对通用端口I/O和交叉开关的详细说明见“15. 端口输
入/输出”。
SPI0主方式
SPI总线上的所有数据传输都由SPI主器件启动。通过将主允许标志(MSTEN,SPI0CFG.6)置1将SPI0置于主方式。当处于主方
式时,向SPI0数据寄存器(SPI0DAT)写入一个字节时是写发送缓冲器。如果SPI移位寄存器为空,发送缓冲器中的数据字节被
传送到移位寄存器,数据传输开始。SPI0主器件立即在MOSI线上串行移出数据,同时在SCK上提供串行时钟。在传输结束后
SPIF(SPI0CN.7)标志被置为逻辑1。如果中断被允许,在SPIF标志置位时将产生一个中断请求。在全双工操作中,当SPI主器
件在MOSI线向从器件发送数据时,被寻址的SPI从器件可以同时在MISO线上向主器件发送其移位寄存器中的内容。因此,SPIF
标志既作为发送完成标志又作为接收数据准备好标志。从从器件接收的数据字节以MSB在先的形式传送到主器件的移位寄存
器。当一个数据字节被完全移入移位寄存器时,便被传送到接收缓冲器,处理器通过读SPI0DAT来读该缓冲器。
当被配置为主器件时,SPI0可以工作在下面的三种方式之一:多主方式、3线单主方式或4线单主方式。当NSSMD1(SPI0CN.3)
=0且NSSMD0(SPI0CN.2)=1时,是默认的多主方式。在该方式,NSS是器件的输入,用于禁止主SPI0,以允许另一主器件访问
总线。在该方式,当NSS被拉为低电平时,MSTEN(SPI0CN.6)和SPIEN(SPI0CN.0)位被硬件清0,以禁止SPI主器件,且方式
错误标志(MODF,SPI0CN.5)被置1。如果中断被允许,将产生中断。在这种情况下,必须用软件重新使能SPI0。在多主系统
中,当器件不作为系统主器件使用时,一般被默认为从器件。在多主方式,可以用通用I/O引脚对从器件单独寻址(如果需
要)。图20.2给出了两个主器件在多主方式下的连接图。
当NSSMD1(SPI0CN.3)=0且NSSMD0(SPI0CN.2)=0时,SPI0工作在3线单主方式。在该方式,NSS未被使用,也不被交叉开关映
射到外部端口引脚。在该方式,应使用通用I/O引脚选择要寻址的从器件。图20.3给出了一个3线主方式主器件和一个从器件的
连接图。
当NSSMD1(SPI0CN.3)=1时,SPI0工作在4线单主方式。在该方式,NSS被配置为输出引脚,可被用作从选择信号去选中一个
SPI器件。在该方式,NSS的输出值由NSSMD0(SPI0CN.2)控制(用软件)。可以用通用I/O引脚选择另外的从器件。图20.4给
出了一个4线主方式主器件和两个从器件的连接图。 






请教:
可是有位大哥说:
主芯片的 MOSI 接 flash 的 MOSO ,主芯片的 MOS0 接 flash 的 MOSI 
各位大哥到底是什么接的啊

芯片上的图是:MOSI 接 flash 的 MOSI ,主芯片的 MOS0 接 flash 的 MOSO 啊

谢谢!

相关帖子

沙发
我是大灰狼| | 2007-4-23 12:22 | 只看该作者

是不是这个芯片的 MOSI ,就是你所说的 MOSO 啊

是不是这个芯片的 MOSI ,
就是你所说的 MOSO 啊

使用特权

评论回复
板凳
xwj| | 2007-4-23 12:40 | 只看该作者

感觉你根本就没搞清楚MOSI和MISO的意思

MOSI和MISO的意思分别是主出从入和主入从出,这是两根分开的线:
MOSI上传的是主机输送给从机的信号,所以是Master Out Second In,简称MOSI
MISO上传的是从机输送给主机的信号,所以是Second Out Master In,简称MISO

没有什么MOSO或MISI,这都是错误的说法,估计是“那位大哥”的笔误


不管什么时候,主机都是发起控制,发出CLK的那个
对于MCU和FLASH的连接,只可能是MCU充当主机
所以正确的接法是:
主芯片的 MOSI 接 flash 的 MOSI ,主机用来传输发个FLASH的信号(写);
主芯片的 MIS0 接 flash 的 MISO ,主机用来读取FLASH返回的信号(读)。


不要急着问为什么,先仔细想想哦

使用特权

评论回复
地板
dreambird| | 2007-4-23 12:41 | 只看该作者

看看主器件和从器件的引脚是输入还是输出来判断吧,简单

使用特权

评论回复
5
星星电灯|  楼主 | 2007-4-23 12:54 | 只看该作者

谢谢各位大哥,还是有一点不明白~

谢谢各位大哥:
是不是这样:

MCU 和  flash 相连

MCU 的输出引脚 和 FLASH 的输入引脚相连
MCU 的输入引脚 和 FLASH 的输入出脚相连

是这样吗?

我的 flash 的 8 个引脚标识的不是 MOSI 和 MISO 
而是 SI ,SO 

见附件
那么 芯片 的 MOSI 和 SI 相连,还是 和 SO 相连啊?

谢谢!

使用特权

评论回复
6
星星电灯|  楼主 | 2007-4-23 13:29 | 只看该作者

各位大哥,请再帮我看看啊!谢谢!(要发出去做板了啊)

各位大哥,请再帮我看看啊!谢谢!(要发出去做板了啊)

是不是这样:

MCU 和  flash 相连

MCU 的输出引脚 和 FLASH 的输入引脚相连
MCU 的输入引脚 和 FLASH 的输入出脚相连

是这样吗?

我的 flash 的 8 个引脚标识的不是 MOSI 和 MISO 
而是 SI ,SO 

见附件
那么 芯片 的 MOSI 和 SI 相连,还是 和 SO 相连啊?

谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

121

帖子

1

粉丝