打印

AVR 的 SPI 主模式

[复制链接]
2335|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dudongdao|  楼主 | 2009-8-18 00:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AVR, spi, ST, os, pc
SPI使能主模式后,MOSI SCK SS的方向由用户定义,本来是读165就没管SS的方向,结果SPI的SPIF就是不置1,后来发现SPCR MSTR为零,一怎么都写不进去,把SS方向改为输出,MSTR也能写了,SPIF也正常了。软件模拟的时候就不用管SS的方向,怪死。

相关帖子

沙发
电子夜行人| | 2009-8-18 08:02 | 只看该作者
当 SPI 配置为主机时(MSTR 的 SPCR 置位),用户可以决定 SS 引脚的方向。
若 SS 配置为输出,则此引脚可以用作普通的 I/O 口而不影响 SPI 系统。典型应用是用来
驱动从机的 SS 引脚。
如果 SS 配置为输入,必须保持为高以保证 SPI 的正常工作。若系统配置为主机,SS 为
输入,但被外设拉低,则 SPI 系统会将此低电平解释为有一个外部主机将自己选择为从
机。为了防止总线冲突, SPI 系统将实现如下动作:
1. 清零 SPCR 的 MSTR 位,使 SPI 成为从机,从而 MOSI 和 SCK变为输入。
2. SPSR 的 SPIF 置位。若 SPI 中断和全局中断开放,则中断服务程序将得到执行。
因此,使用中断方式处理 SPI 主机的数据传输,并且存在 SS 被拉低的可能性时,中断服
务程序应该检查 MSTR 是否为 "1”。若被清零,用户必须将其置位,以重新使能 SPI 主机
模式。

使用特权

评论回复
板凳
dudongdao|  楼主 | 2009-8-19 12:03 | 只看该作者
哦~~   是了~~~  很久以前看过~~  看来基础知识还要扎实啊~~
   谢谢夜行人大侠~~~

使用特权

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

本版积分规则

90

主题

413

帖子

1

粉丝