msp430spi通信程序 fpga怎样spi接口接收数据

您的位置: &
基于FPGA和MSP430的SPI接口设计与实现
优质期刊推荐基于FPGA的SPI总线接口的实现
> 基于FPGA的SPI总线接口的实现
基于FPGA的SPI总线接口的实现
0 引言 串行接口已成为当前传输接口的发展趋势,原因在于串行的高速率传输性能和较简单的线路连接。在已知的外围器件连接端口中,有USB,wishbone和并行端口。其中接口总线基于串行传输的思想,已经制定成为标准,成为常用的外围器件连接方式。针对FLASH这种常用的外围存储器件,有多种接口可供选择,然而具有接口的FLASH芯片硬件连接方便,通过编程可以便捷地实现FLASH的存取功能。因此基于的具有的FLASH功能实现为工程设计提供了一种原型,为进一步的工程开发奠定了基础。1 SPI总线介绍1.1 SPI总线简介 同步外设接口(serial peripheral,interface,SPI)是由摩托罗拉公司开发的全双工同步串行总线。SPT是一种串行同步通信协议,由1个主设备和1个或多个从设备组成,主设备启动一个与从设备的同步通信,从而完成数据的交换。1.2 SPI及时序 SPI接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS决定了惟一的与主设备通信的从设备,如没有CS信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通信。通信时,数据由SDO输出,SDI输入,数据在时钟的上升沿或下降沿从SDO输出,在紧接着的下降沿或上升沿由SDI读入,这样经过8/16次时钟改变,完成8/16位数据的传输。 在SPI传输中,数据是同步进行发送和接收的。数据传输的时钟基于来自主处理器的时钟脉冲,摩托罗拉没有定义任何通用SPI时钟规范。然而,最常用的时钟设置基于时钟极性(CPOL)和时钟相位(CPHA)两个参数;CPOL定义SPI串行时钟的活动状态,而CPHA定义相对于数据位的时钟相位。CPOL和CPHA的设置决定了数据取样的时钟沿。 SPI模块为了与外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有大的影响。如果CPOL=0,串行同步时钟的空间状态为低电平;如果CPOL=1,串行同步时钟的空间状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设时钟相位与极性应该一致。SPI接口时序如图1所示。本文引用地址:2 基于的SPI接口设计 SPI接口适用于主芯片与从芯片的连接,在一个FPGA系统中,充当主芯片的为FPGA可编程芯片,而FLASH芯片作为外围从芯片通过SPI接口连接至FPGA芯片。该系统选用Lattice公司的FPGA芯片,该公司的产品线齐全,其中ECP2M系列芯片功能全面,开发成本低廉。ECP2M系列芯片支持SPI接口,通过硬件电路的简单设计即可完成SPI接口的物理连接,进一步利用Lattice的工程开发EDA软件进行FPGA编程,实现SPI接口控制。对接口的设计采用RAM作为读/写缓冲,完成主程序和FLASH之间的数据交换,各模块结构示意图如图2所示。 图2中ram_wr写端口数据宽度设置为32位,地址深度设为128位;读端口为1位位宽,这是由SPI端口的串行性决定的;ram_rd读端口与ram _wr写端口相对应。RAM模块如图3所示。3 SPI接口实现及FLASH功能验证3.1 M25P64串行FLASH芯片介绍 M25P64串行芯片由STMicro公司生产,它具有64 Mb容量,最高时钟频率可达50 MHz同时采用SPI。该FLASH芯片的存储空间划分为128区,每区为65 536 B。在芯片中,其中D为数据串行输入端;C为时钟输入;为低电平有效片选信号;和分别为写保护和暂停保持输入,Q为串行输出端。该芯片的指令丰富,功能完备,常用的指令如:读/写使能、读/写状态寄存器、读数据、页编程以及区块擦除等。
fpga相关文章:
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
基于MSP430和FPGA的MODIS信号基带数字接收模块的设计与实现研究.pdf87页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:150 &&
你可能关注的文档:
··········
··········
中图分类号:TN929.5 论文编号:-S085
学科分类号:08100 1 硕士学位论文 基于MSP430 和FPGA 的MODIS 信 号基带数字接收模块的设计与实现 研究生姓名 韩潇 学科、专业 通信与信息系统 研究方向
数字通信 指导教师
叶明 副教授 宗鹏 教授 南京航空航天大学 研究生院 电子信息工程学院 二О一一年十二月 Nanjing University of Aeronautics and Astronautics The Graduate School College of Electronic and Information Engineering The Design and Implementation of a
Baseband Digital Receiving Module for MODIS Based on MSP430 and FPGA A Thesis in Communication and Information System by Han Xiao Advised by Ye Ming Zong Peng Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Engineering December, 2011 承 诺 书 本人声明所呈交的硕士学位论文是本人在导师指导下进行
的研究工作及取得的研究成果。除了文中特别加以标注和致谢
的地方外,论文中不包含其他人已经发表或撰写过的研究成
果,也不包含为获得南京航空航天大学或其他教育机构的学位
或证书而使用过的材料。 本人授权南京航空航天大学可以将学位论文的全部或部分
内容编入有关数据库进行检索,可以采用影印、缩印或扫描等
复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本承诺书)。 作者签名: 日
期: 南京航空航天大学硕士学位论文 摘 要 TERRA 和AQUA 是美国EOS
(地球观测系统)中两颗重要的卫星,MODIS
(中分辨率成
像光谱仪)是搭载在TERRA 和AQUA 上的一个重要的传感器。它是卫星上唯一将实时的地球
观测数据通过X
波段向全世界直接广播,并可以免费接收的星载仪器。MODIS
数据产品对气
象、农业、军事和对地观察等应用有重大意义。目前,国内厂家及科研机构
正在加载中,请稍后...君,已阅读到文档的结尾了呢~~
MSP430系列多单片机间的SPI主从通信
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
MSP430系列多单片机间的SPI主从通信
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口21ic官方微信
后使用快捷导航没有帐号?
查看: 4155|回复: 11
msp430关于spi接收数据错误的问题
&&已结帖(0)
主题帖子积分
高级技术员, 积分 561, 距离下一级还需 439 积分
高级技术员, 积分 561, 距离下一级还需 439 积分
主题帖子积分
专家等级:结帖率:62%
主题帖子积分
高级技术员, 积分 561, 距离下一级还需 439 积分
高级技术员, 积分 561, 距离下一级还需 439 积分
求助:430单片机与TMS320VC5510的SPI通信方案
设置TMS320为主机,430为从机
TMS320能正确发射spi波形
而430接收到的数据老是出错,会出现数据内部移位情况,比如一直发送数据0x51(),而接收到的为0xA8(),就是右移了移位,有时候还会不止移动移位,不知道是什么原因,请求大家帮助!
下面是我430的spi的初始化代码
void Init_spi_slave(void)
UCTL1 |= SWRST;
UCTL1 = CHAR+SYNC;//char=1,8bit,sync=1,spi mode,mm=0,slave
UTCTL1 = CKPH+CKPL;//stc,3ckph=1,uclk is delay,CKPL=1,上升沿跳变
UBR01 = 0x00; //
UBR11 = 0x00;
UMCTL1 = 0;
ME2 = USPIE1;
UCTL1 &= ~SWRST;
P5SEL =0x0F;
P5DIR = 0xF4 ;
IE2 |=URXIE1;
另外还有一个问题,
以下是我的接收中断函数
#pragma vector = UART1RX_VECTOR
__interrupt void UART1RX()//UART1中断函数
Data=RXBUF1;
show_flag=1;
当发射数据发射的太快的情况下,会使得URXIFG1一直为1,就一直处于中断函数中,解决这个问题的方法是,我在发射数据的程序中加入一定的时延后,才可以使得中断正常跳出,想问,会不会是因为我的中断函数没有写正确的原因呢?
主题帖子积分
高级技术员, 积分 549, 距离下一级还需 451 积分
高级技术员, 积分 549, 距离下一级还需 451 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级技术员, 积分 549, 距离下一级还需 451 积分
高级技术员, 积分 549, 距离下一级还需 451 积分
1、SPI接口问题 有个条件要确认下,你接收是用的SPI接收中断做的吧?SPI接收中断,只要CLK接到8个clk就会中断一次,所以你得看看SCLK发送的过程中有没有多的跳变
主题帖子积分
高级技术员, 积分 945, 距离下一级还需 55 积分
高级技术员, 积分 945, 距离下一级还需 55 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
高级技术员, 积分 945, 距离下一级还需 55 积分
高级技术员, 积分 945, 距离下一级还需 55 积分
是不是产生其他中断影响接收了
主题帖子积分
资深工程师, 积分 16327, 距离下一级还需 3673 积分
资深工程师, 积分 16327, 距离下一级还需 3673 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
资深工程师, 积分 16327, 距离下一级还需 3673 积分
资深工程师, 积分 16327, 距离下一级还需 3673 积分
spi为同步通信& &所以你必须保证他们波特率相同& &且时钟频率相同& &如果要可靠通信& &建议降低波特率
微软CEO史蒂夫·鲍尔默:不要激情,要有韧性
电子设计的灵魂是知识,坚持做技术,共勉
主题帖子积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
主题帖子积分
专家等级:结帖率:13%
主题帖子积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
两个器件的波特率不一定要相同的,因为spi就是设计给不同速度的器件之间通信用的
主题帖子积分
中级工程师, 积分 4545, 距离下一级还需 455 积分
中级工程师, 积分 4545, 距离下一级还需 455 积分
主题帖子积分
专家等级:结帖率:9%
主题帖子积分
中级工程师, 积分 4545, 距离下一级还需 455 积分
中级工程师, 积分 4545, 距离下一级还需 455 积分
貌似没有spi的时钟子程序
主题帖子积分
中级工程师, 积分 4574, 距离下一级还需 426 积分
中级工程师, 积分 4574, 距离下一级还需 426 积分
主题帖子积分
专家等级:结帖率:2%
主题帖子积分
中级工程师, 积分 4574, 距离下一级还需 426 积分
中级工程师, 积分 4574, 距离下一级还需 426 积分
CLK同步在哪里
主题帖子积分
助理工程师, 积分 1896, 距离下一级还需 104 积分
助理工程师, 积分 1896, 距离下一级还需 104 积分
主题帖子积分
专家等级:结帖率:38%
主题帖子积分
助理工程师, 积分 1896, 距离下一级还需 104 积分
助理工程师, 积分 1896, 距离下一级还需 104 积分
关于SPI的总结:
SPI是Serial Peripheral Interface,即串行外设接口。本质上是一个硬件,也就是一个芯片。这个芯片的作用和串口的作用差不多。不同的是,这个芯片使用起来需要满足:
?& & & & 1.由MCU提供数据传输的时钟
?& & & & 2.单片机(主设备)和从设备都要有这样一个硬件,收和发
这样看来,我们可以将这个芯片当成一个移位寄存器(输入一个8位的数据,然后一个一个的输出。)来看待,首先要给这个芯片一个时钟CLK,当一个并行数据输入时,这个移位寄存器就开始工作,即一个一个的将这个并行数据输出,完成并行转串行的功能。当然,现在我们只是把并行数据输出,还没有说明输出到哪里。现在我们在加上一个移位寄存器,刚才的输出就输入这个移位寄存器里面。我们首先把同样的CLK给这个移位寄存器,那么这两个移位寄存器就可以同步工作了,即工作在同一个CLK下。而后一个移位寄存器的输出的串行数据就可以转换为并行的数据,放在从设备相应的空间中。
所以,一般来说,使用一个这样的SPI,如果只是发送数据,就需要3根线即可,即CLK,MOSI,CS,其中,CLK是共同的时钟,由MCU提供。MOSI是Master Output Subordinate In,即主输出从输入。CS是片选信号,即选中从设备,这里我们可以将CS理解为从设备SPI芯片的使能信号,即当CS被设置时,才可以进行SPI数据传输。
上面只是发送数据的情况。如果MCU还要从从设备中接受数据,就要加上另一根数据线MISO,即Master In Subordinate Output。这样就变成全双工通信。
主题帖子积分
高级技术员, 积分 969, 距离下一级还需 31 积分
高级技术员, 积分 969, 距离下一级还需 31 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
高级技术员, 积分 969, 距离下一级还需 31 积分
高级技术员, 积分 969, 距离下一级还需 31 积分
看高手分析
主题帖子积分
资深工程师, 积分 15593, 距离下一级还需 4407 积分
资深工程师, 积分 15593, 距离下一级还需 4407 积分
主题帖子积分
专家等级:结帖率:50%打赏:0.00受赏:19.00
主题帖子积分
资深工程师, 积分 15593, 距离下一级还需 4407 积分
资深工程师, 积分 15593, 距离下一级还需 4407 积分
使用模拟口 试一试
主题帖子积分
中级技术员, 积分 282, 距离下一级还需 18 积分
中级技术员, 积分 282, 距离下一级还需 18 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:2.00
主题帖子积分
中级技术员, 积分 282, 距离下一级还需 18 积分
中级技术员, 积分 282, 距离下一级还需 18 积分
楼主你好,请问你这个问题解决了么,我现在用AX的spi和stm32f407的通讯也存在这个问题,希望楼主能告知一下
主题帖子积分
中级技术员, 积分 282, 距离下一级还需 18 积分
中级技术员, 积分 282, 距离下一级还需 18 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:2.00
主题帖子积分
中级技术员, 积分 282, 距离下一级还需 18 积分
中级技术员, 积分 282, 距离下一级还需 18 积分
CLK同步在哪里
clk同步是怎么实现的?
核心会员奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
技术奇才奖章
人才类勋章
精英会员奖章
等级类勋章
奔腾之江水
发帖类勋章
时间类勋章
技术高手奖章
人才类勋章
技术新星奖章
人才类勋章}

我要回帖

更多关于 msp430f5529 spi程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信