SPI

judy , 21 六月 2018

SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。

上升沿发送、下降沿接收、高位先发送。
上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。
下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。

假设主机和从机初始化就绪:并且主机的sbuff=0xaa (10101010),从机的sbuff=0x55 (01010101),下面将分步对spi的8个时钟周期的数据情况演示一遍(假设上升沿发送数据)。

judy , 4 五月 2018

SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于 CPU与各种外围器件进行全双工、同步串行通讯。

SPI主要特点有:
○ 可以同时发出和接收串行数据;
○ 可以当作主机或从机工作;
○ 提供频率可编程时钟;
○ 发送结束中断标志;
○ 写冲突保护;
○ 总线竞争保护等。

SPI总线有四种工作方式(SP0,SP1,SP2,SP3),其中使用的最为广泛的是SPI0和SPI3方式。SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。
如果CPOL=0,串行同步时钟的空闲状态为低电平;
如果CPOL=1,串行同步时钟的空闲状态为高电平。
时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。
如果 CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;
如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。

judy , 3 五月 2018

I2C和SPI是两种不同的通信协议。

听到协议,似乎高不可攀,其实协议就是人们定义的一个标准而已,我们只要遵照这个标准去做事,就可以。比如公司规定早上9点上班,我们就9点上班,不然就会扣薪水,这就是个协议。

用I2C通信的芯片最常用的就是EEPROM芯片,如Atmel的AT24CXX系列,此外,还有一些其它功能的芯片。用SPI通信的芯片有外置FLASH芯片,同样,还有其他功能的一些芯片。

I2C通信需要用到两个引脚:SDA SCL。SCL是时钟引脚,SDA是数据引脚。

judy , 16 四月 2018

SPI (Serial Peripheral interface),顾名思义就是串行外围设备接口。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间

SPI内部简明结构图

<center><img src="http://mcu.eetrend.com/files/2018-04/wen_zhang_/100011132-39224-1.png&q…; alt="stm32之SPI通信协议"></center>

judy , 9 四月 2018

UART、SPI、IIC是经常用到的几个数据传输标准,下面就分别总结一下:

<strong>UART(Universal Asynchronous Receive Transmitter):</strong>也就是我们经常所说的串口,基本都用于调试。

主机和从机至少要接三根线,RX、TX和GND。TX用于发送数据,RX用于接受数据(收发不是一根线,所以是全双工方式)。注意A和B通信A.TX要接B.RX,A.RX要接B.TX(A用TX发B当然要用RX来收了!)

如果A是PC机,B是单片机,A和B之间还要接一块电平转换芯片,用于将TTL/CMOS(单片机电平)转换为RS232(PC机电平)。因为TTL/CMOS电平范围是0~1.8/2.5/3.3/5V(不同单片机范围不同),高电压表示1,低电压表示0。而RS232逻辑电平范围-12V~12V,-5~-12表示高电平,+5~+12V表示低电平(对!你没有听错)。为什么这么设置?这就要追溯到调制解调器出生时代了,有兴趣自己去查资料!

judy , 4 四月 2018

SPI是一种高速的,全双工同步的通信总线,在芯片管脚上占用了四根线,节约了芯片的管脚,同时为PCB的布局节省了空间,提供了方便,因此越来越多的芯片集成了这种通信协议,STM32也就有了SPI接口。
<center><img width="600" src="http://mcu.eetrend.com/files/2018-04/wen_zhang_/100010982-38645-986.png…; alt="stm32 SPI介绍和配置"></center>

有上图可知有四个通信口,两个位移寄存器是同步的,那MISO和MOSI就不难理解了。

SCLK时钟信号,由主设备产生。CS从设备片选信号,由主设备控制。

1、配置相关引脚的复用功能,使能SPI2时钟。

假设我们要使用SPI2,第一步SPI2时钟使能,第二步相关引脚的输出模式(MISO,MOSI,SCLK,(CS没有接外设的话,我们使用软件管理方式))。

cathy , 3 四月 2018

<strong><font color="#FF0000">作者:Stephen Nugent</font> </strong>

<strong>简介</strong>

开关信号是电子系统的重要组成部分,其作用是提供灵活性并让系统可以支持更多通道。应用有很多不同类型,每种应用有不同的开关切换要求。因此,大量需要开关切换的应用有时可能难以找到合适的开关来准确满足需要的功能。

本应用笔记介绍ADI公司串行外设接口(SPI)控制开关系列中的先开后合式(BBM)切换特性。本文说明了如何通过这
种BBM开关功能以及适当的外部接线来为给定应用构造所需的多路复用器(mux)配置。本文还讨论了开关外部接线的
性能考虑。

cathy , 2 四月 2018

<strong>简介</strong>

安全数字(SD)卡是便携式设备和嵌入式系统中最常用的闪存器件。SD卡兼具尺寸小、功耗低、使用简单和成本低等优点,堪称理想的存储解决方案。SD卡与大多数设备兼容,因此可以使用任何计算机轻松访问和获取卡中的数据,以便根据应用进一步处理。

本应用笔记将讨论如何使用ADuCM3027/ADuCM3029处理器的串行外设接口(SPI)与SD卡进行接口。

本应用笔记将详细介绍有关SD卡的一般信息(例如,引脚排列、通信标准和设计注意事项),还将讨论SPI基础知识(例如,信号和波形)以及ADuCM3027/ADuCM3029SPI接口的特性。

judy , 13 十一月 2017

“串口下载”是大多数工程师最早接触的程序下载方式,尤其是一开始使用51单片机的工程师们。随着硬件集成度越来越高,芯片资源不断被压缩,工程师也想到了另一种“串口下载”方式,只需一根数据线即可。

随着半导体行业的飞速发展,芯片集成度越来越高,随之研发设计出来的PCBA大小已经能和硬币比肩,功能却一点都没有受到影响,是如何做到的呢?在不影响功能的情况下尽量裁剪硬件资源,这是每个工程师都头疼的问题,关键在于裁剪后如何保证编程能够正常进行。

编程接口多种多样,包括工程师们熟悉的UART、I2C、SPI、SWD等,一般需要2-6根线进行烧录,而其中有一种编程接口只需要一根数据线即可实现程序的烧写,这对必须尽量压缩硬件资源的工程师来说是一个很好的消息。