主页 > 外设 >

同步串行外设接口总线(SPI)的简介

浏览1574 好评 0 点赞105

  同步串行外设接口总线(SPI)的简介_计算机硬件及网络_IT/计算机_专业资料。同步串行外设接口总线(SPI)的简介 SPI 库这个库可以让你将 Arduino 作为主设备,其他外围设备作为从设备 与主设备以串行方式进行通信及交换信息。同步串行外设接口总线(SPI)的 简介同步串

  同步串行外设接口总线(SPI)的简介 SPI 库这个库可以让你将 Arduino 作为主设备,其他外围设备作为从设备 与主设备以串行方式进行通信及交换信息。同步串行外设接口总线(SPI)的 简介同步串行外设接口总线(SPI)是用于 MCU(微控制器)与一个或多个外 围设备进行短距离快速通讯的同步串行数据协议。它也可以用于两个微控制器 之间的通信。 SPI 的连接始终是由一个主设备(通常是一个微控制器)来控制 外围设备来进行。通常在所有设备上都有三条线,Master In Slave Out (MISO) 主设备数据输入,从设备数据输出,Master Out Slave In (MOSI) -主设备数据输出, 从设备数据输入,Serial Clock(SCK)-串行时钟,数据传输的时钟基于主处理 器产生的时钟脉冲,Slave Select(SS) -从属选择,从设备的管脚控制信号线, 由主设备进行使能控制。当从设备的 SS 引脚置为低电平时,它与主设备进行 通信。当从设备的 SS 引脚置为高电平时,断开与主设备的通信。因此,SPI 允 许一个主设备和多个从设备进行通信,主设备通过不同的 SS 信号线选择不同 的从设备进行通信。给一个新的 SPI 设备写程序,你需要注意以下几点:串行 数据传输时,是先传输高位(MSB)还是先传输低位(LSB),这是由 SPI.setBitOrder()函数来控制的。数据时钟 SCK 在空闲时,是高电平还是低电 平?采样时,是在时钟脉冲的上升沿还是下降沿?这是由 SPI.setDataMode() 函数来控制的 SPI 是在怎样速度下运行的,即 SCLK 提供多大的时钟脉冲使 SPI 运行?这是由 SPI.setClockDivider() 函数来控制的。SPI 标准是不严格的, 所以每个设备实现功能时稍有不同。这意味着当你写代码时,要特别注意设备 的数据表。一般来说,有三种传输模式。这些模式控制着数据是在 SCK 的上 升沿采样,还是在 SCK 的下降沿采样(称为时钟相位),时钟信号在空闲时, 是高电平还是低电平(称为时钟极性)。由相位和极性组合得到三种模式。 SPI.setDataMode() 函数用于控制时钟极性和相位,根据此表:模式 时钟极性 (CPOL) 时钟相位 (CPHA)0 0 01 0 12 1 03 1 1 当你的 SPI 参数设置正确,你只 需要选择好需要的函数去控制你的设备,然后开始你的作品制作。这将被解释 为您的设备数据表。连接在 Arduino Duemilanove 和其他基于 ATmega168 / 328 的板子上,SPI 总线(MISO) 和引脚 13(SCK)。而在 Arduino Mega 板上,使用的是引脚 50(MISO),引脚 51(MOSI),引脚 52(SCK)和引脚 53(SS)。需要注意的是,即使你不使用 SS 引脚,必须将它的模式设置为输出;否则,SPI 系统将会认为有一个外部主 机将自己选择为从设备(从属模式),从而使库文件的控制失效。它有可能使 用其他脚比 10 脚,作为从机选择引脚 SS。例如,Arduino 的以太网扩展板使 用引脚 4 来控制的 SPI 连接到主板上的 SD 卡,用引脚 10 来控制连接到以太网 控制器。函数 begin()end()setBitOrder()setClockDivider()setDataMode()transfer() 例子 BarometricPressureSensor: Read air pressure and temperature from a sensor using SPISPIDigitalPot: Control a digital potentiometer using SPI 参见 shiftOut() shiftIn()tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

本站文章于2019-10-05 16:58,互联网采集,如有侵权请发邮件联系我们,我们在第一时间删除。 转载请注明:同步串行外设接口总线(SPI)的简介
已点赞:105 +1

上一篇:

下一篇:



关于我们

  • 关于我们
  • 品牌介绍
  • 诚聘英才
  • 联系我们

学生/家长

  • 帮我选学校
  • 帮我选专业
  • 投诉/建议

教育机构

  • 如何合作
  • 联系方式

其他

  • 投稿合作
  • 权利声明
  • 法律声明
  • 隐私条款
全国统一客服电话
4006-023-900
周一至周六 09:00-17:00 接听
IT培训联盟官方公众号
扫描访问手机版
家电维修|北京赛车pk10