基于SPI的MAX7221与MCU连接_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于spi的max7221与mcu连接在仪器仪表的设计制作中常要用到数码管显示,有时数码管的数量还会无数。假如为每个数码管都单独设计驱动,一方面向来说是一个不小的负担,另一方面大幅增强了电路板的面积成本。max7221单片可以驱动8位数码管,并且可以举行级联扩展,对于这个问题是一个较为妥当的解决计划。普通max7221与mcu的衔接用法两种办法:一是用法mcu的io口挺直模拟通信所需要的时序,此法操作较为繁琐,易出错;二是用法uart串行口,这种办法的通信速率最高仅为1152 kbs。介绍第三种办法,即max7221通过串行外设接口(serial peripheralinterface,spi

2、)与mcu衔接,此法具有容易和易于用法的特点,其通信速率理论上高达10 mbs。1 spi原理spi是一种由motorola公司开发的高速、全双工、同步串行通信接口。mcu通过它可以便利地衔接到存储器、ad转换器、da转换器、实时时钟日历、驱动器、音频芯片,甚至另一个mcu。因为spi的成本低,有用性强,无数新推出的芯片都增强了对它的支持。spi以主从方式工作,这种模式通常有一个主机和一个或多个从机,用法4根信号线:主机输出从机输入(mosi)、主机输入主机输出(miso)、串行时钟sclk和外设片选(ss)。典型的点对点spi通信衔接1所示。spi与uart的一个重要的区分就是它是一个同步通

3、信协议。主机中有一个时钟发生器,可以在sclk引脚上产生时钟信号,全部的数据传输都根据这个同步时钟来举行。主机和从机各有两个移位寄存器分布在各自mosi及miso引脚,详细的传输过程就是由这几个移位寄存器来完成的。以ss低电平有效为例,平常,主机维持ss为高电平,sclk无信号;举行传输时,主机首先将ss引脚拉低作为从机的片选信号,然后在sclk引脚上产生同步时钟,需要发送或接收的数据就根据这个时钟进入相应的移位寄存器。主机的数据从主机的mosi引脚移出,移入到从机的miso引脚;从机的数据从从机的mosi引脚移出,移人到主机的mi-so引脚;传输结束后,主机将ss拉高。有多个从机时,主机的s

4、s信号可以与从机的片选规律举行组合,没有被选中的从机将不会参加spi传输。2 器件介绍21 max7221max7221是一款串行接口的数码管显示驱动器,单片最多可驱动8位数码管。它包含有七段译码器、位和段驱动器、多路扫描器、段驱动调整器、亮度脉宽调整器及多个特别功能寄存器。max7221不仅可以很便利地与mcu相衔接,还可通过级联举行扩展。它的主要功能特点有:(1)10 mhz的串行接口;(2)bcd译码非译码模式挑选;(3)耗电仅150 a的关断模式;(4)数字和模拟双重亮度控制;(5)spi,qspi,microwire等多种串行接口。22 mcu考虑了有用性、性能价格比等多种因素,试验

5、mcu选用atmega128,它是一种基于 risc结构的8位低功耗微处理器,最高工作频率为16 mhz。它采纳了先进的命令集,绝大多数命令均为单周期命令,自带128 kb的flash,可以通过spi,jtag、引导程序等多种方式多次编程,支持系统编程及调试。atmega128的spi接口最高工作频率为主频的50,可达8 mhz(与max7221spi口的速率上限相当)。该接口的工作方式(主从)、时钟极性、时钟沿及工作频率均可灵便配置。3 硬件衔接图2所示为4片级联max7221通过spi与atmega128衔接的。该系统最多可以驱动32位数码管。因为数据是单向传输,因此将atmega128配

6、置为主机,max7221配置为从机,可以省略从机向主机传输数据的线路。在这种级联衔接方式中,全部max7221的cs都衔接在一起,其片选是通过在要传输的数据前增强空操作命令来实现的。例如,要向其次级的max7221传输数据,应该在时序到来之后首先传输一个空操作命令(0x0000),然后再传输数据。要向第三级的max7221传输数据时,要先传输两个空操作命令,以此类推。值得一提的是,假如要用这种级联方式设计个数不是8的整数倍的数码管显示驱动器,必需要为各个max7221分配平均的扫描位数。例如,假如需要12位数码管显示,那么采纳两级级联驱动,每个max7221驱动6个数码管;假如需要11位数码管

7、显示,那么一级驱动6个,一级驱动5个,但扫描限位仍然都设定为6,只将其中一个空接。这么做是由于max7221对8位数码管的扫描能力是一定的,在相同亮度的等级下需要举行扫描的数码管个数越多,数码管看上去就越暗。假如各级max7221设定的扫描限位不全都,尽管设定了相同的亮度等级,实际显示的亮度也会有所差别。4 软件设计图3是max7221的spi传输时序图。按照max7221的spi时序图及寄存器地址表,可以编制出相应的atmega128 spi子程序。spi_init()用于初始化atmega128的spi口,设定时钟极性和频率等参数;spi_transmit()用于在时序到来时延续传输16位

8、数据;max7221_transmit()用于总体完成从cs被拉低到数据传输结束的全过程,并将级联状况也考虑了进去。需要注重的一点是max7221一上电就进入到关断模式,所驱动的数码管无任何显示,必需首先退出该模式进入到正常工作模式。相应的子程序如下:5 实 验试验中用法上述级联系统的软硬件举行了32位数码管循环显示测试,结果正常。此外,还利用at-mega128自带的定时器对第一级的max7221举行速率测试,流程4所示。一共举行20次测试,终于定时器的平均读数为1 430 ms。据此可计算出数据传输的速率该速率未能达到理论上的8 mbs,其缘由是进入和退出函数、循环以及对ss的拉低和置高都耗费了mcu的有效时光。可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论