当前位置:首页 > 单片机 > 单片机
[导读]S3C2440A的串行外设接口(SPI)可以与串行数据传输连接。S3C2440A包含了2个SPI,每个都有2个分别用于发送和接收的8位移位寄存器。一次SPI传输期间,同时发送(串行移出)和接收(串行移入)数据。由相应控制寄存器设

S3C2440A的串行外设接口(SPI)可以与串行数据传输连接。S3C2440A包含了2个SPI,每个都有2个分别用于发送和接收的8位移位寄存器。一次SPI传输期间,同时发送(串行移出)和接收(串行移入)数据。由相应控制寄存器设置指定8位串行数据的频率。如果只希望发送,则接收数据可以保持伪位(dummy)。此外如果只希望接收,则需要发送伪位'1'数据

使用SPI主要需要以下寄存器


选择SPI模式,中断模式,查询模式等SCK选择,主从机选择以及GPOL GPOA选择,关于GPOL与GPOA的描述请查看SPI协议手册


选择SPI时钟,SPI挂在PCLK上,具体计算公式如下


针对数据传输完成之后的SPI总线状态做一个选择


传输数据时,数据分别存在与两个寄存器中


同时,在传输过程中查看是否发送完成或者接收完成应该看这个寄存器


另外,在SPI通讯过程中如果希望只写不读,应该发送0XFF,这样才能产生SPI时钟

示例代码如下

SPI.C

#include"spi.h"voidSPI0IoInit(void){//SPI0为主设备//初始化GPEGPE11:MISO0(MISO);GPE12:MOSI0(MOSI);GPE13:SPICLK0(SCK)//对三个引脚的的配置清零rGPECON&=~((3<<26)"(3<<24)|(3<<22));//配置为第二功能rGPGCON|=((2<<26)|(2<<24)|(2<<22));}voidSPI0Init(void){SPI0IoInit();//设置时钟控制寄存器(CLKCON),使能SPI时钟//rCLKCON=(rCLKCON&~(1<<18))|(1<<18);//设置波特率预定标器寄存器(SPPREn),波特率=PCLK/2/(预定标器值+1)//预订频率为1MrSPPRE0=(PCLK/2/1000000)-1;//设置SPCONn寄存器以正确配置SPI模块//normal;formatA;activehigh;master;enable;pollingmoderSPCON0&=~(0x7f);//清零//时钟使能主机模式查询模式低电平有效格式A普通模式rSPCON0|=((1<<4)|(1<<3));//设置SPI引脚控制寄存器(SPPINn)//禁止多主机模式,发送完成释放MOSIrSPPIN0&=~((1<<2)|(1<<0));}u8SPI0RWData(u8dat){u8retry=0;u8temp=0;while(!(rSPSTA0&0x01))//等待数据传输就绪{retry++;if(retry>200)return0;}rSPTDAT0=dat;//传输数据while(!(rSPSTA0&0x01))//等待数据传输就绪{retry++;if(retry>200)return0;}temp=rSPRDAT0;returntemp;}



SPI.H

#ifndef__SPI_H#define__SPI_H#include"2440addr.h"#include"def.h"#include"clock.h"voidSPI0IoInit(void);voidSPI0Init(void);u8SPI0RWData(u8dat);#endif


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola(摩托罗拉)首先在其MC68HCXX系列处理器上定义的。SPI是一种单主机、高速的,全双工,同步...

关键字: spi spi通信原理

为什么要加锁在SMP系统中,如果仅仅是需要串行地增加一个变量的值,那么使用原子操作的函数(API)就可以了。但现实中更多的场景并不会那么简单,比如需要将一个结构体A中的数据提取出来,然后格式化、解析,再添加到另一个结构体...

关键字: spi ic ck

为什么要加锁在SMP系统中,如果仅仅是需要串行地增加一个变量的值,那么使用原子操作的函数(API)就可以了。但现实中更多的场景并不会那么简单,比如需要将一个结构体A中的数据提取出来,然后格式化、解析,再添加到另一个结构体...

关键字: spi ic ck

SPI接口通信原理

关键字: spi 通讯

  本文根据网络视频采集的需要,将网络传输与视频采集相结合,设计了以S3C2440为核心的USB摄像头视频采集和嵌入式Linux系统下的视频服务器,从而实现了远程网络视频信息采集。   

关键字: s3c2440 视频采集 usb摄像头

         之前在提起自动化或是智能化时,人们会不自觉的想到工业生产,这是因为自动化这个字眼进入中国,确实是以工业

关键字: 嵌入式 Linux s3c2440 视频采集

Linux 点击上方蓝字 记得关注我们哦! 内核里已经提供spi接口小屏的设备驱动,在内核的配置选项: make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf...

关键字: spi 内核

  引言   随着科技的不断发展,以数据业务为主的固定宽带无线接入技术发展已经很成熟,而移动宽带无线通信技术还并没有得到广泛的应用。由于移动宽带无线接入系统需要解决带宽、移动性和覆盖范围

关键字: IPv6 s3c2440 x86 架构

  SPI即串行外围设备接口,是一种高速的,全双工,同步的通信总线,由于其在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,出于这种简单易用的特性,很多AD转

关键字: spi 隔离芯片
关闭
关闭