tag 标签: spi通信

相关帖子
相关博文
  • 热度 18
    2016-3-23 23:46
    1711 次阅读|
    2 个评论
    SPI协议(Serial Peripheral Interface )中文名称为串行外围设备接口,是由Motorola公司提出的高速全双工通信总线。普遍用于MCU与EEPROM,FLASH,ADC等PCB上电路间的通信场合。SPI通信采用主—从的控制方式,可由一个主机(Master)控制多个设备(Device)。采用同步传输的数据通信方式(由主机产生时钟信号)。 SPI协议的物理连接包含四条信号线,分别为: (1)SS:片选信号线。当主机连接多个设备时,各个SS信号线单独占一个接口,由主机选通设备进行通信。 (2)SCK:时钟信号线。由主机产生,用于同步通信。 (3)MOSI:主设备输出/从设备输入信号线。用于主机发送数据,并读取从机发送的数据。 (4)MISO:主设备输入/从设备输出信号线。用于从机接收主机数据,并向主机发数据。 基于时钟极性(CPOL)和时钟相位(CPHA)的配置,SPI可分为四种模式: (1)CPOL=0,CPHA=0。SCL空闲时为低电平,SPI在时钟线的奇数边缘被采样。 (2)CPOL=0,CPHA=1。SCL空闲时为低电平,SPI在时钟线的偶数边缘被采样。 (3)CPOL=1,CPHA=0。SCL空闲时为高电平,SPI在时钟线的奇数边缘被采样。 (4)CPOL=1,CPHA=1。SCL空闲时为高电平,SPI在时钟线的偶数边缘被采样。 四种模式的通信时序如下图所示(摘自网络--百度百科): 图1SPI通信时序   以模式0为例,当从机片选信号被选中,由于时钟空闲信号为低电平,所以每次低电平过后每个奇数时刻的时钟信号沿被采样。即每个低电平后的上升沿被采样(时钟信号为规则的方波)。 基于以上分析,可以使用单片机的IO口来模拟SPI通信的接口函数,函数的实现如下所示(基于stm32f103):   以下是代码片段: #define SPI_FLASH_CS_LOW()      GPIO_ResetBits(GPIOA, GPIO_Pin_4) #define GPIO_SPI_CLK(a)        if (a) \                                                       GPIO_SetBits(SPI_CLK_PORT,SPI_CLK_PIN); \                                                        else \                                                      GPIO_ResetBits(SPI_CLK_PORT,SPI_CLK_PIN) #define GPIO_SPI_WRITE(a)      if (a) \                                                  GPIO_SetBits(SPI_MOSI_PORT,SPI_MOSI_PIN); \                                                           else \                                                GPIO_ResetBits(SPI_MOSI_PORT,SPI_MOSI_PIN) static uint8_t SPI_Trans(uint8_t dat)                          {                                                       uint8_t i,w_buf,r_buf = 0;       Delay_us(2);     SPI_FLASH_CS_LOW();     for(i=0;i8;i++)     {        w_buf = (dat(7-i)) 0x01;   //MSB先行        if(w_buf)            GPIO_SPI_WRITE(1);        Else             {             GPIO_SPI_WRITE(0);            GPIO_SPI_CLK(1);            Delay_us(2);            r_buf = (r_buf 1) | GPIO_SPI_READ();            GPIO_SPI_CLK(0);     //奇数边缘采样            Delay_us(2);             }     }     return r_buf; }  
  • 热度 26
    2013-1-17 13:47
    948 次阅读|
    0 个评论
      WizFi210是WIZnet的一款低功耗“串口转WiFi无线模块”,利用动态电源管理达至低功耗(待机:34.0μA; 接收:124mA; 输出:126mA),兼容标准802.11b/g/n无线网卡, 通讯速率高达11Mbps(802.11b),且支持UART, SPI(*), I2C(*), WAKE, ALARM等多种IO接口。WIZsmart是WIZnet针对无线模块的一款配置工具,能方便地实现相关配置和固件升级。本文介绍了如何通过WIZsmart对WizFi210进行支持SPI通信的固件更新。 H/W设置 为了更新固件,应将WizFi210的37针脚设为低电平,这样就处于“RUN mode”模式。当然,更新完固件后,将37针脚设为高电平,这样就能正常工作。UART口用于固件更新,TX(针脚40),RX(针脚42)通过RS232连接至PC. • 将针脚37设为低电平(程序模式) • 通过RS232连接TX(#40),RX(#42)到PC的COM 端口 PC 程序设置 下载 WizSmart 和 SPI 固件  在WIZsmart下存至AppFWfile文件夹,重命名为“ s2w-app1.bin, s2w-app2.bin and WFW.bin ” •  设置Group 选项为“U. JIG (User)”,设置Script为”2.Flash Write (WLAN, APP, Clear)” • 手动指定COM端口,将波特率选项Baud设为“115200” 如图所示,点击“Start Script”, 新的固件文件将被写入闪存,且所有闪存将被清除。 更新完成以后,断开板上的供电,返回”Run mode”。(针脚37设为低电平) 运行WIZsmart 设置MAC地址 更新完F/W后,MAC地址需要通过AT command写入。 在这个过程中,我使用的是Arduino开发板,所以你需要WiFi扩展板的Arduino库文件。   需要的库文件: WizFi Shield Library (WizFi2x0.zip, TimerOne.zip)   将这些文件拷贝至Arduino目录下的”Libraries”文件夹下   用于书写MAC的Sketch:下载此sketch到你的Arduino开发板上   输入”S”,然后发送MAC地址。例如:” 0008DC1A4BF8”   谢谢关注,更多信息,欢迎访问我们官网中对WizFi210的介绍。也欢迎关注我们的微博(weibo.com/wiznet2012)
  • 热度 37
    2012-8-14 14:43
    1209 次阅读|
    0 个评论
      摘要:W5100应用广泛,可以应用在医疗仪器中。可以设计一种基于SPI总线和W5100的医疗仪器网络接口的设计方法。网络接口由PIC单片机、W5100网络芯片和RJ-45组成。W5100通过RJ-45接口连接到PC机、局域网或Internet;单片机通过SPI总线获取W5100的网络信息,并实现与医疗仪器的信息交换与控制。实验结果表明:基于SPI总线和W5100的医疗仪器网络接口的硬件结构简单、性能稳定、兼容性强。     说明:本文作者是 来自南方医科大学生物医学工程学院的刘关德和余学飞,发表于《生物医学工程研究》2008年第3期。   详细内容请参考http://www.cqvip.com/qk/83776a/200803/29884311.html
  • 热度 25
    2012-8-14 14:36
    1056 次阅读|
    0 个评论
    摘要:W5100应用广泛,可以应用在医疗仪器中。可以设计一种基于SPI总线和W5100的医疗仪器网络接口的设计方法。网络接口由PIC单片机、W5100网络芯片和RJ-45组成。W5100通过RJ-45接口连接到PC机、局域网或Internet;单片机通过SPI总线获取W5100的网络信息,并实现与医疗仪器的信息交换与控制。实验结果表明:基于SPI总线和W5100的医疗仪器网络接口的硬件结构简单、性能稳定、兼容性强。     说明:本文作者是 来自南方医科大学生物医学工程学院的刘关德和余学飞,发表于《生物医学工程研究》2008年第3期。   详细内容请参考 http://www.cqvip.com/qk/83776a/200803/29884311.html
相关资源
  • 所需E币: 3
    时间: 2019-12-30 10:22
    大小: 110.97KB
    上传者: 二不过三
    本文通过讨热敏电阻数据采集应用程序实例来说明MAXQ2000评估板的使用,并介绍相关的MAXQ2000评估板基本装置和MAXQ2000微控制器的LCD控制器及外设特性。……
  • 所需E币: 3
    时间: 2019-12-25 15:09
    大小: 226.1KB
    上传者: 2iot
    MBF200是富士通公司推出的一款嵌入式指纹采集芯片,体积小、结构简单,容易与嵌入式微处理器接口.本文详细介绍了MBF200的结构特点、SPI接口特性,以及与S3C2410的SPI通信的软硬件设计,并给出指纹采集程序流程.……