当前位置:首页 > 模拟 > 模拟
[导读]MAX7221是一款可级联的串行输入/输出的显示驱动器,单片最多可驱动多达8个数码管,在仪器仪表设计中广泛应用。它与MCU的连接通常使用I/O直接模拟时序法或者UART串行通信法,这两种方法存在程序复杂,速度慢和易出错等不足。阐述了MAX7221与MCU进行连接的另一种方法——SPI连接法,给出电路图及关键子程序。实验证明,相比于其他方法,此法更加简便易行,且通信速率更高。

0 引 言
   
在仪器仪表的设计制作中常要用到数码管显示,有时数码管的数量还会很多。如果为每个数码管都单独设计驱动电路,一方面对MCU来说是一个不小的负担,另一方面大幅增加了电路板的面积成本。集成电路MAX7221单片可以驱动8位数码管,并且可以进行级联扩展,对于这个问题是一个较为妥善的解决方案。一般MAX7221与MCU的连接使用两种方法:一是使用MCU的I/O口直接模拟通信所需要的时序,此法操作较为繁琐,易出错;二是使用UART串行口,这种方法的通信速率最高仅为11.52 Kb/s。介绍第三种方法,即MAX7221通过串行外设接口(Serial PeripheralInterface,SPI)与MCU连接,此法具有简单和易于使用的特点,其通信速率理论上高达10 Mb/s。

1 SPI原理
    SPI是一种由Motorola公司开发的高速、全双工、同步串行通信接口。MCU通过它可以方便地连接到存储器、A/D转换器、D/A转换器、实时时钟日历、LCD驱动器、传感器、音频芯片,甚至另一个MCU。由于SPI的成本低,实用性强,很多新推出的芯片都增加了对它的支持。
    SPI以主从方式工作,这种模式通常有一个主机和一个或多个从机,使用4根信号线:主机输出/从机输入(MOSI)、主机输入/主机输出(MISO)、串行时钟SCLK和外设片选(SS)。典型的点对点SPI通信连接如图1所示。

    SPI与UART的一个重要的区别就是它是一个同步通信协议。主机中有一个时钟发生器,可以在SCLK引脚上产生时钟信号,所有的数据传输都按照这个同步时钟来进行。主机和从机各有两个移位寄存器分布在各自MOSI及MISO引脚,具体的传输过程就是由这几个移位寄存器来完成的。以SS低电平有效为例,平时,主机维持SS为高电平,SCLK无信号;进行传输时,主机首先将SS引脚拉低作为从机的片选信号,然后在SCLK引脚上产生同步时钟,需要发送或接收的数据就按照这个时钟进入相应的移位寄存器。主机的数据从主机的MOSI引脚移出,移入到从机的MISO引脚;从机的数据从从机的MOSI引脚移出,移人到主机的MI-SO引脚;传输结束后,主机将SS拉高。有多个从机时,主机的SS信号可以与从机的片选逻辑进行组合,没有被选中的从机将不会参与SPI传输。


2 器件介绍
2.1 MAX7221

    MAX7221是一款串行接口的数码管显示驱动器,单片最多可驱动8位数码管。它包含有七段译码器、位和段驱动器、多路扫描器、段驱动电流调节器、亮度脉宽调节器及多个特殊功能寄存器。MAX7221不仅可以很方便地与MCU相连接,还可通过级联进行扩展。它的主要功能特点有:
    (1)10 MHz的串行接口;
    (2)BCD译码/非译码模式选择;
    (3)耗电仅150 μA的关断模式;
    (4)数字和模拟双重亮度控制;
    (5)SPI,QSPI,Microwire等多种串行接口。
2.2 MCU
    考虑了实用性、性能价格比等多种因素,实验MCU选用ATmega128,它是一种基于AVR RISC结构的8位低功耗CMOS微处理器,最高工作频率为16 MHz。它采用了先进的指令集,绝大多数指令均为单周期指令,自带128 KB的FLASH,可以通过SPI,JTAG、引导程序等多种方式多次编程,支持系统编程及调试。ATmega128的SPI接口最高工作频率为主频的50%,可达8 MHz(与MAX7221SPI口的速率上限相当)。该接口的工作方式(主/从)、时钟极性、时钟沿及工作频率均可灵活配置。

3 硬件连接
   
图2所示为4片级联MAX7221通过SPI与ATmega128连接的电路图。该系统最多可以驱动32位数码管。由于数据是单向传输,因此将ATmega128配置为主机,MAX7221配置为从机,可以省略从机向主机传输数据的线路。在这种级联连接方式中,所有MAX7221的CS都连接在一起,其片选是通过在要传输的数据前增加空操作指令来实现的。

    例如,要向第二级的MAX7221传输数据,应当在时序到来之后首先传输一个空操作指令(0X0000),然后再传输数据。要向第三级的MAX7221传输数据时,要先传输两个空操作指令,以此类推。值得一提的是,如果要用这种级联方式设计个数不是8的整数倍的数码管显示驱动器,必须要为各个MAX7221分配平均的扫描位数。
    例如,如果需要12位数码管显示,那么采用两级级联驱动,每个MAX7221驱动6个数码管;如果需要11位数码管显示,那么一级驱动6个,一级驱动5个,但扫描限位仍然都设定为6,只将其中一个空接。这么做是因为MAX7221对8位数码管的扫描能力是一定的,在相同亮度的等级下需要进行扫描的数码管个数越多,数码管看上去就越暗。如果各级MAX7221设定的扫描限位不一致,尽管设定了相同的亮度等级,实际显示的亮度也会有所差别。

4 软件设计
   
图3是MAX7221的SPI传输时序图。
    根据MAX7221的SPI时序图及寄存器地址表,可以编制出相应的ATmega128 SPI子程序。SPI_init()用于初始化ATmega128的SPI口,设定时钟极性和频率等参数;SPI_transmit()用于在时序到来时连续传输16位数据;MAX7221_transmit()用于总体完成从CS被拉低到数据传输结束的全过程,并将级联情况也考虑了进去。

   
    需要注意的一点是MAX7221一上电就进入到关断模式,所驱动的数码管无任何显示,必须首先退出该模式进入到正常工作模式。相应的子程序如下: 

   

5 实 验
    实验中使用上述级联系统的软硬件进行了32位数码管循环显示测试,结果正常。此外,还利用AT-mega128自带的定时器对第一级的MAX7221进行速率测试,流程如图4所示。一共进行20次测试,最终定时器的平均读数为1 430 ms。据此可计算出数据传输的速率该速率未能达到理论上的8 Mb/s,其原因是进入和退出函数、循环以及对SS的拉低和置高都耗费了MCU的有效时间。可以推断,提高在MCU的频率时MAX7221的SPI传输速率还可进一步提高。

6 结 语
   
实验证明,MAX7221仅需3线即可通过SPI与MCU连接。这种SPI通信法不但通信速率高,还可用于级联的MAX7221系统,以驱动更多的数码管。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭