Chinaunix首页 | 论坛 | 博客
  • 博客访问: 77473
  • 博文数量: 20
  • 博客积分: 2075
  • 博客等级: 大尉
  • 技术积分: 360
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-06 15:05
文章分类
文章存档

2012年(3)

2011年(1)

2010年(1)

2009年(1)

2008年(7)

2007年(7)

我的朋友
最近访客

分类:

2008-05-02 14:58:14

1.       spi速率不能超过15M,超过后会出现严重误码
2.       如果接收方式为中断接收,SPICCR字符长度控制位决定了中断的字长。如字长为8,中断等级为1,则每接收一个字节产生一次中断。如字长为16,中断等级为1,则每接收2个字节产生一次中断。
3.       注意主模式和从模式的极性一定要相同。主模式为上升沿采样,下降沿输出。从模式也应该为上升沿采样,下降沿输出。否则会出现采样数据不准确。
4.       注意数据写入SPITXBUF时是左对齐,而读入SPIRXBUF是右对齐。这个问题在16位字长时不突出。但是在16位以下数据字长时要特别注意。一般方法是做左移运算。
5.       注意SPI FIFO的用法。
本人在调试过程中,遇到的最大问题就是数据丢失,困扰多天。后来查明原因,因为开启SPI FIFO增强功能,不能根据SpiaRegs.SPISTS.bit.BUFFULL_FLAG来暂停发送数据。因为此时的TXBUF是从TX FIFO中得数据。程序中写入TXBUF,只是写入发送缓冲器即FIFO。根据先进先出原理,你源源不断的向TXBUF写数据,则FIFO里总是保存你最后写入的数据,而不会将SpiaRegs.SPISTS.bit.BUFFULL_FLAG位置一,所以会发现数据丢失。正确的方法应该判断SPI TX FIFO中的字的个数。如果发送FIFO里已经有16个字了,此时应该停止发送新数据,而等待SPI总线上主机的时钟将TXBUF里数据移出,FIFO数据自动装载一个字到TXBUF里,这时才能发送新数据。
阅读(2758) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-06-08 20:28:30

11

chinaunix网友2008-12-16 11:31:10

写"DSP TMS320F2812的SPI使用总结"的工程师能不能告诉我他的电话等联系方法?我的电话13606508870,邮箱:yrxhyhz@163.com,谢谢.