spi接口

SPI协议简介

时光怂恿深爱的人放手 提交于 2019-11-28 02:37:38
http://hi.baidu.com/hieda/blog/item/2dcb1f3845b9582097ddd8da.html SPI协议简介 (下面内容摘自互联网) 一 SPI协议概括 二 SPI协议举例 三 SPI协议心得 一 SPI协议概括 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200. SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 (1)SDO – 主设备数据输出,从设备数据输入 (2)SDI – 主设备数据输入,从设备数据输出 (3)SCLK – 时钟信号,由主设备产生 (4)CS – 从设备使能信号,由主设备控制

利用C51单片机模拟SPI进行双机通信

人盡茶涼 提交于 2019-11-27 23:49:30
SPI协议简述   SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。由Motorola首创。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线。 优缺点: 协议简单,相对数据速率高。 占用的Pin口较多 没有指定的流控制,没有应答机制确认是否接收到数据。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI,SDO,SCK,CS。 SDO – 主设备数据输出,从设备数据输入 SDI – 主设备数据输入,从设备数据输出 SCK – 时钟信号,由主设备产生 CS – 从设备使能信号,由主设备控制 CS: 其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效,这就允许在同一总线上连接多个SPI设备成为可能。 SCK:SCK为时钟信号线,主要控制时序。相当于整个SPI协议是以SCK为准进行的。因此SCK的控制在每次发送中只能在主机的控制下进行,从机不可控制。 SDI/SDO: 通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议

WIZnet-io6Library下载及使用

南笙酒味 提交于 2019-11-26 16:58:43
概观 io6Library是一个IPv6集成库,可以轻松集成和管理使用WIZnet硬连线双TCP / IP堆栈控制器(WIZCHIP)产品系列的用户应用程序。 io6Library用于管理依赖于用户特定MCU的代码,因此用户无需根据用户MCU执行io6Library的移植操作。(有关更多信息,请参见如何使用) 内容 io6Library 可分为以下三种类型。 Reigsters Defintion     通用寄存器:定义通用寄存器,如网络信息,模式,中断等。     套接字寄存器:定义SOCKET寄存器,如套接字模式,套接字通信,套接字中断等。 每个WIZCHIP I / O访问功能     基本I / O功能:通过WIZCHIP定义的HOST接口(SPI,BUS等)访问输入/输出的基本单元功能     公共寄存器访问功能:基于基本I / O功能访问公共寄存器的功能     SOCKET寄存器访问功能:基于基本I / O功能访问SOCKET寄存器的功能 WIZCHIP控制API,用于用户应用程序集成,管理和迁移     SOCKET API:与BSD SOCKET API一样,SOCKET API提供可以与socket socket commuuincation相关的函数集     额外的API:它提供支持用户应用程序集成的功能,无论WIZCHIP特定的Regiter /

SPI Nor FLASH

血红的双手。 提交于 2019-11-26 16:45:53
SPI Nor FLASH 参考内核 dervices/mtd/devices/m25p80.c M25P64 datasheet 由于M25P64属于SPI Nor Flash linux内核对于Flash采用Mtd驱动进行管理。 分析m25p80.c 省略了MTD Nor Flash Jedec与CFI 分析 这块分析可以参考韦东山老师Nor flash驱动的讲解 ,对于SPI falsh 驱动已经支持的很好了,只需要去添加以下设备注册 驱动硬件接口属于SPI设备驱动 static struct spi_driver m25p80_driver = { . driver = { . name = "m25p80" , . bus = & spi_bus_type , . owner = THIS_MODULE , } , . probe = m25p_probe , . remove = __devexit_p ( m25p_remove ) , } ; static int m25p80_init ( void ) { return spi_register_driver ( & m25p80_driver ) ; } static void m25p80_exit ( void ) { spi_unregister_driver ( & m25p80_driver ) ;

芯片翻译之ICM20602(二)

与世无争的帅哥 提交于 2019-11-26 00:13:08
5 可编程中断 ICM-20602有一个可编程中断系统,该系统可以在INT和DRDY引脚上产生中断信号。状态标志表示中断的来源。中断源可以单独启用和禁用。 中断名称 模块 运动检测 运动 FIFO溢出 FIFO FIFO Watermark FIFO 数据准备就绪 传感器寄存器 注: 有关中断启用/禁用寄存器和标志寄存器的信息,请参阅本文件第11节和第12节。下面解释一些中断源。 5.1 唤醒运动中断 ICM-20602提供运动检测功能。限定运动样本是从任何轴的高通过样本具有超过用户可编程阈值的绝对值的一个样本。以下步骤说明如何配置唤醒运动中断。 步骤1:确保加速计正在运行 在PWR_MGMT_1寄存器(0x6B)中,设置CYCLE = 0, SLEEP = 0, GYRO_STANDBY = 0 在PWR_MGMT_2寄存器(0x6C)中,设置SSTBY_XA = STBY_YA = STBY_ZA = 0, STBY_XG = STBY_YG = STBY_ZG = 1 步骤2:加速计配置 在ACCEL_CONFIG2寄存器(0x1D)中,设置ACCEL_FCHOICE_B = 1, A_DLPF_CFG[2:0] = 1 (b001) 步骤3:启用运动中断 在INT_ENABLE寄存器(0x38)中设置WOM_X_INT_EN = WOM_Y_INT_EN = WOM_Z

SPI、I2C和UART

我们两清 提交于 2019-11-25 21:34:54
一、SPI SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,在很多器件中被广泛应用。 接口 SPI接口经常被称为4线串行总线,以主/从方式工作,数据传输过程由主机初始化。如图1所示,其使用的4条信号线分别为: 1) SCLK:串行时钟,用来同步数据传输,由主机输出; 2) MOSI:主机输出从机输入数据线,通常先传输MSB; 3) MISO:主机输入从机输出数据线,通常先传输LSB; 4) SS:片选线,低电平有效,由主机输出。 在SPI总线上,某一时刻可以出现多个从机,但只能存在一个主机,主机通过片选线来确定要通信的从机。这就要求从机的MISO口具有三态特性,使得该口线在器件未被选通时表现为高阻抗。 数据传输 在一个SPI时钟周期内,会完成如下操作: 1) 主机通过MOSI线发送1位数据,从机通过该线读取这1位数据; 2) 从机通过MISO线发送1位数据,主机通过该线读取这1位数据。 这是通过移位寄存器来实现的。如图2所示,主机和从机各有一个移位寄存器,且二者连接成环。随着时钟脉冲,数据按照从高位到低位的方式依次移出主机寄存器和从机寄存器,并且依次移入从机寄存器和主机寄存器。当寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。 时钟极性和时钟相位 在SPI操作中