历史上的今天
返回首页

历史上的今天

今天是:2024年08月23日(星期五)

正在发生

2021年08月23日 | LPC11U35 SSP/SPI学习笔记

2021-08-23 来源:eefocus

SSP (synchronous Seril Port)同步串行端口控制器,可支持SPI、TI和Microwire协议,一条总线允许有多个从机,但某一个时刻只允许有一个主机和一个从机进行通信。多应用于EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间(而I2C多用于同一单片机不同芯片之间的短距离通信)。


SPI支持全双工通信,而I2C仅支持半双工,Uart也支持全双工通信。


SPI通信是数据交换的过程,数据通过移位寄存器进行交换。

主机发送时,将一位数据写入TxFIFO移入移位寄存器,数据通过MOSI移出主机,从机通过MOSI移入从机,从机同时会从移位寄存器中移出一位数据到主机,如果是只写操作,主机则可以忽略读取到的数据,通过Dummy = LPC_SSP1->DR假装读取进行忽略。


主机接收数据时,主机首先要发送一个指令启动从机发送,如高电平(0xFF),从机接收到后发送数据到移位寄存器中。每次接收主机都需要发送数据触发从机发送数据。

SPI硬件有4根信号线:SCK(串行时钟线)、CS(片选信号)、MOSI(主机输出从机输入)、MISO(主机输入从机输出)


其中,CS通过拉低来选择从机设备,数据在SCK时钟的边沿跳变时进行数据采样和数据的读取和发送。具体规则由CPOL和CPHA控制。


CPOL:1——空闲状态时SCK为高电平       0——空闲状态时SCK为低电平


CPHA:1——数据在第一个跳变沿采样       0——数据在第二个跳变沿采样


故共有4种组合:


CPOL=0,CPHA=0,数据在第一个上升沿时采样,第一个下降沿读取/发送


CPOL=0,CPHA=1,数据在下降沿时采样,上升沿读取/发送


CPOL=1,CPHA=0,数据在第一个下降沿时采样,第一个上升沿读取/发送


CPOL=1,CPHA=1,数据在上升沿采样,下降沿读取/发送


SPI中断:


ROR ----  Rx FIFO状态为满时另外一帧被完全接收了,写入ICR清除中断


RT ---- Rx FIFO不为空且超过超时周期没有被读取,写入ICR清除中断


RX ---- Rx FIFO为至少半满状态,读取正确的FIFO可清除中断


TX ---- Tx FIFO为至少半空状态,写入正确的FIFO可清除中断


SPI Clock:位频率=PCLK/(CPSDVSR × [SCR+1])


在这章接触到一个新的函数和变量——Dummy


Dummy函数是一个空函数,函数体内没有语句,常常用于后期扩充功能,执行Dummy();时,什么工作也不做;


同样的,Dummy变量也有相似的意思,既是没有意义的一个变量或者空变量。在SPI的配置过程中,使能SPI前,可以将Rx FIFO中的数据清除干净,就可以采用Dummy = LPC_SSPx->DR的方式清空。

推荐阅读

史海拾趣

Daewoo公司的发展小趣事

在汽车产业领域,Daewoo公司同样取得了令人瞩目的成就。大宇汽车公司作为Daewoo集团的骨干企业,自1983年独立以来,凭借其先进的技术和出色的品质,迅速在韩国汽车市场崭露头角。公司不仅在国内市场表现优异,还积极开拓国际市场,成功将产品出口到世界各地。

迈翔科技(COILMX)公司的发展小趣事

进入21世纪后,迈翔科技面临了来自国内外同行的激烈竞争。为了保持竞争力,公司投入大量资源进行技术研发和创新。通过不懈努力,公司成功开发出了一系列高性能的贴片功率电感和大电流电感,这些产品凭借卓越的性能和稳定的品质,迅速获得了市场的认可。

Grayhill公司的发展小趣事
首先检查电路连接是否正确,确保所有元件都已正确接入电路。
Acculin Inc公司的发展小趣事

为了进一步提升技术水平,Acculin Inc积极寻求与国际知名企业的合作。通过与欧洲一家半导体制造商的技术交流,公司引进了一条先进的生产线,并成功将其应用于新型芯片的制造中。这一合作不仅提升了Acculin的生产效率,也使其在芯片制造领域达到了国际先进水平。

Apacer公司的发展小趣事

1997年,Apacer宇瞻科技在台湾创立,初期专注于DRAM模组的专业供货。公司凭借对半导体垂直整合的完整内存模组技术能力和专业营销业务,迅速在全球市场上打响了Apacer的自有品牌。1999年,宇瞻科技更是跃升为全球第四大内存模组厂商,奠定了其在行业内的领先地位。

科山芯创(COSINE)公司的发展小趣事

随着产品的不断推出和市场的认可,科山芯创开始积极拓展市场。他们与国内外多家知名企业建立了合作关系,产品广泛应用于通讯网络、物联网、工业自动控制等多个领域。同时,科山芯创还积极参加各种行业展会和交流活动,与业界同行进行深入交流,共同推动电子行业的发展。

问答坊 | AI 解惑

汽车基础知识(一)

汽车基础知识 第一章 总论 第一节 汽车的类型 汽车的分类方法很多,但最重要的方法是按照汽车的用途来分类。   根据我国国家标准的有关规定,汽车分为以下几种类型: 1. 货车 又称为载货汽车、载重汽车、卡车。主要用来运送各种货物或 ...…

查看全部问答>

无法找到ntifs.h 头文件,搞了两天了。都吐了高手帮忙啊

开发环境IFS2003+VS2008+DDKWIZARD 开发普通的驱动都很好。可是有一天我想尝试一下文件驱动: 我把sfilter里面的代码复制到我自己建的一个驱动项目里面,调好了编译环境,一编译找不到ntifs.h文件,于是我就把Include的路径改了一下,结果这下好 ...…

查看全部问答>

proteus错误,请各位大侠指教

ERROR: [U1_VM2] \'1.8V VCore\' (2.73V) is outside specified range (1.65V-1.95V)如何配置才能通过仿真…

查看全部问答>

why我的UART1不产生接收中断啊

DX帮我看一下,为什么我的UART1不产生接收中断啊!! 初始化如下: ////////////////////////////////////////// ///串口1初始化 void Uart1Init(void) { //使能所有要用APB2的外设时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | ...…

查看全部问答>

我是电子专业,学习嵌入式,买了一个神舟一号的板子,感觉不是太好用,也不知道怎么用

mini2440,和神舟系列(神舟三号四号的)的是不是一一样的,mini2440相比之下有什么有点,现在在学ucos,下学期学Linux,买个什么板子最好呢,…

查看全部问答>

DS2812下载到FLASH里不运行

我用的例子在开发板里下载到FLASH里可以运行,下载到我自己的板子里不能运行,但是在自己的板子里可以仿真,VDD3VFL也接了3.3V,忙了好几天,望各位碰到过类似问题的解答下,谢谢了…

查看全部问答>

2013E题 RLC 网络

本帖最后由 paulhyde 于 2014-9-15 03:32 编辑 题目要求制作一个RLC 串联谐振电路作为被测网络, 要求被测网络通带中心频率为20MHz,误差的绝对值≤5%;有载品质因数为4,误差的绝对值≤5%;有载最大电压增益≥ -1dB; 这个有载最大电压增益≥ ...…

查看全部问答>

开关 程序

一般独立按键需要程序两次确认,防止抖动,那类似转换开关之类的开关需要程序两次确认吗? …

查看全部问答>

MSP430Ware的问题

   为什么MSP430Ware的Driver Liberary下的“MSP430F5xx_6xx”系列里,在导入“FLASHCTL”的example project时,是空的!!    其它的example project都能正常导入! …

查看全部问答>

STM32我定时器频率捕获90-120K范围,我测试100K频率误差418HZ,怎么降低误差

STM32我定时器频率捕获90-120K范围,我测试100K频率误差418HZ,怎么降低误差…

查看全部问答>