搜索
bottom↓
回复: 10

Datasheet中SPI初始化例子的误区

[复制链接]

出0入0汤圆

发表于 2005-6-18 01:39:51 | 显示全部楼层 |阅读模式
以前没有仔细看过SPI,只是把原有的代码搬来使用。不久前想重新写代码才发现Datasheet中SPI主机模式的例子其实有误区:

void SPI_MasterInit(void)

{

/* 设置MOSI 和SCK 为输出,其他为输入 */

DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK);

/* 使能SPI 主机模式,设置时钟速率为fck/16 */

SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);

}

可是实际上,如果这样设置要传送数据,几乎是不能工作的。在示波器上没有任何信号输出。郁闷了好久,才发现,还应该设置SS引脚为输出,或输入且拉高。仔细查看Datasheet,有如下说明:

“当SPI 配置为主机时(MSTR 的SPCR 置位),用户可以决定SS 引脚的方向。若SS 配置为输出,则此引脚可以用作普通的I/O 口而不影响SPI 系统。典型应用是用来驱动从机的SS 引脚。

如果SS 配置为输入,必须保持为高以保证SPI 的正常工作。若系统配置为主机, SS 为输入,但被外设拉低,则SPI 系统会将此低电平解释为有一个外部主机将自己选择为从机。为了防止总线冲突, SPI 系统将实现如下动作:

1. 清零SPCR 的MSTR 位,使SPI 成为从机,从而MOSI 和SCK 变为输入。

2. SPSR 的SPIF 置位。若SPI 中断和全局中断开放,则中断服务程序将得到执行。



晕,搞了我好几个钟头。


-----此内容被testcode于2005-06-18,01:41:23编辑过

出0入0汤圆

发表于 2005-6-18 07:51:34 | 显示全部楼层
AVR的datasheet作者就是一个没有逻辑思维的人,看过PIC的datasheet就能体会到这一点了,AVR要通读全文,PIC你可以用哪个模块就看哪个,保证看一边就会用!

出0入0汤圆

发表于 2005-6-18 08:08:34 | 显示全部楼层
why?

所有关于SPI的描叙不是都在同一章节里面吗?



一个MCU扩展了很多功能,难免变得复杂了。

那你用51吧,说明最简单了----因为没什么扩展功能。

出0入0汤圆

发表于 2005-6-18 12:21:34 | 显示全部楼层
HJJourAVR

你是斑竹,说话不要太犀利,注意形象,我针对的是AVR的datasheet,和PIC的datasheet,而你针对的是你及所有斑竹所管辖下的网民!

上次已经和你有过冲突了,我想来想去还是在我自身找毛病,已经很理解你了,可是发现你个人的素质......

出0入0汤圆

发表于 2005-6-18 23:26:32 | 显示全部楼层
AVR的DataSheet条理是不太好,不过话说回来了,用任何芯片之前最好先把整个DataSheet通读一遍,虽然不一定一次就都看懂,但至少知道将来有什么问题去哪找。

出0入0汤圆

发表于 2006-1-10 20:45:41 | 显示全部楼层
问各位大虾一个问题  我用atmega128控制TLV5627 DA芯片时  为什么设置好控制寄存器后

状态寄存器的SPIF自动就置为1了   而且还改不过来  用书上说的两种方法都不能把SPIF位清零

出0入0汤圆

发表于 2007-11-10 14:06:11 | 显示全部楼层
您好!
才接触AVR
调试了下SPI 但是没调试通  弄了两天都没结果
看了这里面很多例子 也综合了自己的程序 找不到原因
请大家帮我下  我是两个M16通讯 主机发送 从机接收  用LED看数据。。‘
两个芯片的PB4到PB7对连的 请帮我看下谢谢
QQ 36816027

出0入0汤圆

发表于 2007-11-10 14:11:20 | 显示全部楼层
AVR的SPI没有用过,用过凌阳单片机的SPI驱动74LS164,我想来一样的吧!只要注意时序及相位关系,用硬件SPI很方便的,

出0入0汤圆

发表于 2007-11-18 14:27:55 | 显示全部楼层
二楼说的很好,有同感!

出0入0汤圆

发表于 2007-11-18 14:30:16 | 显示全部楼层
不过datasheet整体的整体逻辑还是不错的,
但是细节上分的太开,没有在相应的位置说明!!~~

出0入0汤圆

发表于 2009-6-15 10:01:05 | 显示全部楼层
wait......................
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 02:19

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

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