基于MSP430之间的SPI通信

2020-07-01来源: eefocus关键字:MSP430  SPI通信  丛机

这段时间在学习MSP430的SPI通信,经过几天看User Guide和学习,已经能控制其通信。在学习过程中遇到了很多问题,及其应该注意的东西在这里与大家共享。我选用的430F149作为主机,430F169作为丛机。至于SPI通信的原理,模块组成,以及功能都可以在网上搜到,下面是我在使用时遇到一些问题,共享:

1.SPI通信可以是一主一从工作模式,也可以是一主多从,也可以是多主多从的工作。如果在一主一从的模式下STE就不需要用,也就是三线通信。


2.在初始化配置主机寄存器-时(Initializing or Re-Configuring the USART Module)应当按照user guide的寄存器配置顺序来写初始化程序,否则可能会出错,(Failure to follow this process may result in unpredictable USART behavior.)我刚开始写的时候把 Enable interrupt 写在了clear SWEST的前面,以至于我在仿真的时候,看到的我的串口中断先是置1,然后就又被无缘无故的清0,然后我按照user guide 的顺序配置之后就再没出现了。


3我用主机的一个Io口去控制丛机RST时,如果用delay()函数让IO口保持一段低电平时间的时候,主机也会跟着被复位,我现在也不知道是怎么回事。但是我要是先置0,然后在置1,这个就消失了。


4 另外我看user guide 是ME寄存器USPIEX是0x40,只使能了接收中断,并没有使能发射中断,能正常使用。


5.在仿真的时候,会出现主机向丛机发数据的时候,丛机也会同时向主机发送数据,但是丛机发的数据没有规律,  


6.主从机的相位选择和时钟极性要一致,并且丛机的SPI通信时钟源来自于External Uclk(就是从主机此次产生的)


7.在进行主从机数据传输前,应该之间进行数据校正,由于刚开始启动晶振不稳定,等一些列原因都有可能出错,所以进行数据传输正确的判断

关键字:MSP430  SPI通信  丛机 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501800.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:MSP430程序库<五>SPI同步串行通信
下一篇:MSP430_SPI_Master_Read_Write

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

TI MSP430系列单片机串口通信波特率计算方法
TI MSP430系列单片机,usart模块的波特率值设定是通过以下三个寄存器决定的:UxBR0,UxBR1,UxMCTL 波特率=BRCLK/N ,主要是计算出N。BRCLK:时钟源,可以通过寄存器设定何为时钟源; 通过寄存器UCAxCTL1的SSEL两位选择,01:ACLK,02:SMCLKN:波特率产生的分频因子。N=UxBR1+UxBR0+UxMCTL,其中UxBR1+UxBR0为整数部分,UxMCTL为设定小数部分,其中 UxBR1为高位,UxBR0为低位,两者结合起来为一个16位的字。举例说明:波特率=115200,时钟源=8MHz ,为外部晶体振荡器N=8000000/115200=69.44 。很明显
发表于 2020-06-06
Tinyos之使用Msp430Counter32khz获取系统时间
使用平台:TelosB 操作系统:TinyOs最近要为论文写实验数据,需要读取系统的时间,进行一些运算。Tinyos有提供Msp430Counter32khz 组件,该组件提供接口 Counter<T32khz,uint16_t> .该接口有如下命令和事件:1、get()命令调用该命令,会返回计数值。计数动作是从系统启动的时候就开始了。(如果操作系统配置为低功耗模式会停止计数)2、isOverflowpending()命令 是否有溢出(true /false)3、clearoverflow()命令清除挂起状态4、overflow()事件给出当前系计数值已经溢出的信号量。继续分析,得知该组件是有以下
发表于 2020-06-06
TinyOS在MSP430F2618上移植(一)
最新版本的TinyOS2.1.1,虽然增加了更多的平台支持,比如epic、shimmer,但是这些平台都有一个共同的局限性:采用的微控制器都是低端的MSP430系列,如MSP430F149、MSP430F1611。在一些应用场合,这些处理器已经不能达到性能要求,而基于ZigBee的开发平台,如TI推出的开发套件已经开始使用高性能的处理器,并且国内一些公司,如成都无线龙也都纷纷推出基于MSP430F2618和CC2520无线收发模块,这个模块自从它诞生就很好的支持了ZigBee,因为有TI的全力支持,并且相关的演示代码TI都已经准备好了。但是,目前还没有把TinyOS移植到MSP430F2618上的先例。网上很多人说,这个移植很简单
发表于 2020-06-06
TinyOS在MSP430F2618上移植(一)
TinyOS在MSP430F2618上移植(三)之LCD
本节记录串口TFT LCD在TinyOS上的移植。1.8寸LCD显示屏采用ST7735控制器,使用SPI接口实现控制、显示数据的传输。总体架构:分为3层结构,最底层位于相应的platforms中chips目录下,实现在特定平台上控制引脚连接,SPI接口连接,以及SPI配置。中间层实现了LCD基本操作,LCD初始化,提供给上层模块连接的接口,以及资源管理。最上层提供应用层模块连接的接口。在本架构中,中间层和最高层提供相同的接口LCD16,该接口提供的实现方法有english_string,clear,single_color等,以及写完成事件writeDone。不同的是在最高层提供的接口LCD16中,并没有真正实现接口的功能,而仅仅是
发表于 2020-06-06
两种方式实现TinyOS对MSP430F26&54系列的支持
第一种方式在Ubuntu 下TinyOS msp430 Toolchain mspgcc升级一文中已经作了详细分析,下面说说另一种方式实现TinyOS对MSP430高端系列单片机的支持。我们已经知道TinyOS的编译过程,ncc编译器编译得到app.c文件,接着使用mspgcc编译工具对目标代码进行编译生成需要的.hex文件。但是,要注意的是在ncc编译过程中也会连接msp430库文件,所以就不可能在没有mspgcc的支持下得到app.c文件。那么,这里就出现了问题,如果没有按照上述所提到的第一种方式升级mspgcc,应该如何正确的编译得到所需的文件呢?答案就是使用挂羊头卖狗肉的方法,具体的就是.platform文件不用修改
发表于 2020-06-06
Ubuntu下MSP430开发环境搭建
阅读 以下文章可搞定Ubuntu下搭建MSP430开发环境(MSPGCC)(一) Programming the MSP430 Launchpad on Ubuntumsp430G2553程序烧写方法:#include <msp430g2553.h> int main (void){        volatile int i;         /* Stop watchdog timer */        WDTCTL = WDTPW | WDTHOLD; 
发表于 2020-06-06
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved