欢迎访问有用文档网!

当前位置: 有用文档网 > 作文大全 >

基于AVR单片机的SPI接口设计与实现

| 浏览次数:


打开文本图片集

摘要:利用AVR单片机和SPI接口在硬件、软件设计上的便利性,以ATmega128MCU与ADT7516、SI8902模数转换芯片之间的硬件设计和通信过程为基础,实现了电源监控电路中的参数采集和智能控制功能。测试表明SPI接口通信正常,AVR单片机控制稳定,满足对电源输出电路的实时监视和控制要求。同时给出了ATmega128芯片SPI接口的配置过程,以及模数转换芯片的配置过程、通信时序的实现方法。

关键词:串行外设接口;AVR单片机;模数转换器;数据采集;嵌入式系统

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)27-0238-03

1 引言

SPI(Serial Peripheral Interface,串行外设接口)是由Motorola公司设计的一种串行接口,具有电路简单、通信可靠、控制容易、通信速率快等优点,在嵌入式系统中应用广泛,单片机生产商包括Atmel、TI、MICROCHIP、FREESCALE等公司均提供具有SPI接口的单片机(MCU),允许MCU与各种外围接口设备以串行方式通信;同时各接口供应商提供了丰富的SPI外围接口产品,包括:LCD模块,Flash/EEPROM存储器,以及数模/模数转换器等器件。

下面以Atmel公司的ATmega128 MCU为例,利用其SPI接口对外围温控模数转换器(ADC) ADT7516、隔离模数转换器(ADC)SI8902进行参数配置和数据采集,实现对电源供电的管理,包括对各路电源电压、电流的监视,及各路电源的通断控制功能。

2 硬件电路设计

2.1 ATmega128串行外设接口(SPI)

ATmega128是Atmel公司推出的一款低功耗、高性能、多功能8位MCU,资源广泛,功能强大;结合多种监测电路,极大增强了嵌入式系统的可靠性;ATmega128提供了一个串行外设接口(SPI),它包括两条数据线:主机输出从机输入(MOSI),主机输入从机输出(MISO)和两条控制线:串行时钟线(SCK),片选控制线(SS)。

在电源供电管理电路中,ATmega128作为SPI接口的主控制设备,两种ADC芯片完全受ATmega128芯片的控制。

2.2 电路设计

电源供电管理电路实现直流电流12V、3.3V电压和电流等共16路参数检测,以及隔离28V电源电压和电流参数监测,设计中共采用了4片ADT7516、2片SI8902实现参数的模数转换。电路中,TPS24720(8片)和TPS2490配合ATmega128输出的控制信号用于对相应电源通路的通断控制,FM25H20用于存储电路的状态信息。

ATmeg128在任意时刻仅能与一个从设备进行通信,对于多个SPI从设备,采用三八译码器74LVC138实现多个从设备的片选使能,电源供电管理电路原理如图1示。

通过配置ATmega128三个GPIO管脚(PE4,PE5,PE6),作为74LVC138的A0、A1和A2输入端,三八译码器的输出连接于各个从设备的SS端,ATmega128 SPI接口的SS线连接于74LVC138的EN管脚用于使能该器件,对应关系如表1所示

3软件实现

软件设计包括ATmega128及从设备的初始化,以及参数采集和数据处理。

在ATmega128完成了初始化配置后,通过控制SPI接口向ADC发送控制字,完成相应ADC的初始化配置,从而控制ADC对模拟信号进行转换,转换结束后,将转换结果通过SPI接口回读到MCU。MCU对不同路电压、电流值按照预设的范围进行判断,并给出电源通路的通断控制命令。

3.1 ATmega128 SPI接口配置

ATmega128中与SPI接口有关的寄存器有控制寄存器(SPCR)、状态寄存器(SPSR)和数据寄存器(SPDR),这三个寄存器都为8位寄存器,通过对各寄存相应比特位的配置,可以实现对SPI接口的控制。软件设计中采用查询标志位的方式完成SPI通信的编程,使用的软件为AVR Studio4.18,编译环境为WinAVR 20100110,ATmega128初始化如下所示。

//MOSI、SCK、SS对应管脚初始化为输出,默认的MISO为输入

DDRB "= (1<

//SS初始化位高电平

PORTB |=(1<

//SPI使能,主控方式,Mode 3工作方式,其他配置为默认

SPCR |= (1<

ATmega128初始化SPI接口时应该注意以下几点:

a.正确配置ATmega128 SPI接口的工作模式,由ADT7516和SI8902的芯片手册可知,两种芯片都可以工作于Mode 3模式,FM25H20同样适用;

b.当使能了SPI接口后,ATmega128并没有自动强制转换SPI接口的四个引脚的工作方式,因此应该将MISO配置成输入管脚,MOSI、SCK和SS配置成为输出管脚;

c.当ATmega128工作于主控模式下,SS管脚并不受SPI硬件电路或寄存器的配置控制,因此使用时应该根据各被控芯片的SPI协议编程控制SS。

3.2 ADT7516数据通信

ADT7516是 Analog Devices公司推出的一款多功能转换器件,包括四通道10位ADC, 10位温度数字转换器,以及一个四通道的12位DAC;该芯片兼容SPI、I2C、QSPI、MICROWIRE接口,采用该芯片对电源管理模块上3.3V和12V电压、电流进行采集。

ADT7516工作模式默认下为I2C接口,初始化时需要先将通信接口转为SPI;其次,该芯片为了区分读写操作,在地址、指令和数据通信之前,必须由主控器件发送写命令码(0X90)或读命令码(0X91),同时在SS使能的周期内,只允许存在读、写命令码中的一种。

设计中ADT7516初始化为Single-channel模式,采用Vdd为参考电压,因此模数转换精度为Vdd/1024(3.3/1024≈0.003),满足0.01的采样精度要求。对连续的16次采样结果平均后作为有效采样值。ATmega128和ADT7516之间的读写时序如图2所示;通过读指令,ADT7516向ATmega128传输的Data1和Data2进行相应比特的组合得到10位转换结果。

其中,SS线的连续高低变换的目的是将默认的I2C接口转换为所需的SPI接口;Tc为模数转换时间,ADT7516需要满足Tc>=11.4ms的要求;当ATmega128发送读指令后,ADT7516需要ATmega128提供的时钟才能将转换结果发送给ATmega128,因此读指令后面数据0X00的发送只是为了提供SPI总线时钟,从设备ADT7516初始化以及读写操作如下所示:

//Write Command+Address+Command

PORTB&=~(1<

Master_Send(0x90); //Write Command

Master_Send(0xXX);

Master_Send(0xXX);

PORTB|=(1<

//Write Command+Address

PORTB&=~(1<

Master_Send(0x90);

Master_Send(0xXX);

PORTB|=(1<

//Read Command+Read Value

PORTB&=~(1<

Master_Send(0x91);//Read Command

ainX_l = Master_Receive(0x00);

PORTB|=(1<

实验过程中采用电子负载设备模拟实际系统中电压、电流,测试结果如表2所示,其中对12V、3.3V电压的监控是通过监控电阻分压值完成的;电流监控是对TPS24720输出的电压进行测量后转换为对应的电流值。

3.3 SI8902数据通信

SI8902是SILICON LABS公司推出的一款三通道10位隔离监控ADC,内置SPI接口,具有2.5KV或者5KV的隔离率,包含POR和UVLO功能。

SI8902模数转换的开始以及模式的配置都是通过SPI接口向SI8902的配置寄存器发送配置数据,在等待一定的转换时间后,ATmega128读取转换后的数据;SI8902有两种工作模式,分别为Demand Mode和Burst Mode,本文采用Demand Mode模式;采用Vdd为参考电压,因此模数转换精度为Vdd/1024(3.3/1024≈0.003),满足0.01的采样精度要求。需要明确的是,SI8902在发送转换结果之前会将ATmega128发送的配置数据传送到SPI总线上,因此ATmega128和SI8902之间的读写时序如3图所示;MISO线上的Data1和Data2在进入ATmega128后进行相应比特的组合得到10位转换结果。

其中,Tc为模数转换时间,ADT7516需要满足Tc>=8us的要求;MOSI线上发送的三字节0XFF数据是为了提供时钟给MISO线,从而保证ATmega128读取转换结果,0XFF的选取需要排除SI8902已存在配置数据。需要特别注意的地方是,由于SI8902的MISO管脚不是Open-drain输出,因此需要对该管脚进行三态输出缓存(如图1上使用的TI公司的SN74LVC1G125DBV),从而消除该芯片对SPI总线的无效占用,保证主控芯片可以和任何被控芯片进行通信。因此SI8902初始化以及读写操作如下所示:

PORTB&=~(1<

Master_Send(0xXX);//CNFG_0 Command Byte

CNFG=Master_Receive(0xFF);

AINX_h= Master_Receive(0xFF);//ADC_H Byte

AINX_l = Master_Receive(0xFF);//ADC_L Byte

PORTB|=(1<

实验过程中采用电子负载设备模拟实际系统中电压、电流,测试结果如表3所示,其中对交流电路中28V电压的监控是通过监控电阻分压值完成的;电流监控是对TPS2492输出的电压进行测量后转换为对应的电流值。

4数据处理

ATmega128分时使能各个ADT7516和SI8902芯片,并将其中一路电源通路的10Bits电压、电流转换结果进行逻辑运算控制通断状态。为了满足控制的实时性,采样出的一组转换结果立马和设定好的上下门限进行比较,输出通断控制信号ON/OFF,此后再使能剩余的模数转换器。当转换结果介于上下门限之间,说明该电源通路的电压、电流满足系统需求,因此通断控制信号ON/OFF使能TPS24720或TPS2492完成对该通路的输出,否则控制信号ON/OFF禁止TPS24720或TPS2492输出相应电源通路。根据系统的需求,各电压、电流的上下门限如表4、表5所示;同时TPS24720、TPS2492自身也有过流和过压保护,两种方式结合增强了对该通路的监控和系统的保护。最后再将各通路的电压、电流采样值和各通路的通断情况通过UART接口发送到PC机进行显示,并存储到NVRAM中供后续查询操作。

5结束语

本文主要讨论了ATmega128与ADT7516、SI8902的SPI通信过程,通过AVR Studio4.18和WinAVR软件的配合使用,研究了两种模数转换芯片驱动程序的设计过程和注意点。该系统转换结果准确,转换时间快速,可以满足系统的要求。通过对各个通路电压、电流的监测可以有效地监控电源管理模块的工作状态,有效的保护电源管理模块对系统内部其他模块的供电需求。

参考文献:

[1] Atmel corporation. ATmega128(L) Complete Datasheet [OL]. http://.

[2] Analog Devices,Inc. ADT7516 Datasheet [OL]. http://.

[3] Silicon Laboratories.SI8902 Datasheet [OL]. http:// .

[4] 张桂香,姚存治.基于ATmega128单片机的智能供电测控系统设计[J].电力自动化设备,2009,29(8): 136-139.

[5] 马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2012.424-445.

[6] 王耿,王金明.SPI接口控制器设计与实现[J].电子质量,2010(1):4-5.

[7] 王宗刚,潘峥嵘.基于AVR单片机的SPI接口的实现[J].自动化与仪器仪表,2011(2):114-115.

[8] 王耿,王金明.SPI接口控制器设计与实现[J].电子质量,2010(1):4-5.

推荐访问:单片机 接口 设计 AVR SPI

热门排行Top Ranking

支部组织生活方面存在问题清单和整改措施 党组织生活个人问题整改清单

下面是小编为大家精心整理的支部组织生活方面存在问题清单和整改措施党组织生活个人问题整改清单文章,供大家阅读参考

2021年党员个人问题清单及整改措施 党组织生活个人问题整改清单

下面是小编为大家精心整理的2021年党员个人问题清单及整改措施党组织生活个人问题整改清单文章,供大家阅读参考。

浅析军队战斗力损耗的新变化

关键词:军队;战斗力损耗;新变化军队战斗力的结构,是战斗力各要素间的结合方式和相互关系。军队战斗力的

小学六年级毕业演讲稿100字左右9篇

小学六年级毕业演讲稿100字左右9篇小学六年级毕业演讲稿100字左右篇1敬爱的老师,亲爱的同学们:大

问题及整改措施 (2) 药房个人存在问题及整改措施

下面是小编为大家精心整理的问题及整改措施(2)药房个人存在问题及整改措施文章,供大家阅读参考。精品文章《问题及

个人问题清单及整改措施(最新) 能力作风建设个人问题清单及整改措施

下面是小编为大家精心整理的个人问题清单及整改措施(最新)能力作风建设个人问题清单及整改措施文章,供大家阅读参考。在认真

疫情防控赞美警察诗朗诵 关于警察的诗朗诵

下面是小编为大家精心整理的疫情防控赞美警察诗朗诵关于警察的诗朗诵文章,供大家阅读参考。疫情防控赞美警

纳税人满意度调查存在不足及对策探讨 提升纳税人满意度的方式方法有哪些

下面是小编为大家精心整理的纳税人满意度调查存在不足及对策探讨提升纳税人满意度的方式方法有哪些文章,供大家阅读参考。纳

小学思想品德教育面临的问题及对策

摘要:小学思想品德课程是小学教育教学过程中不可或缺的一门综合性课程,它对学生良好品德的形成具有重要影

2020党支部班子查摆问题清单及整改措施 农村党支部问题清单

下面是小编为大家精心整理的2020党支部班子查摆问题清单及整改措施农村党支部问题清单文章,供大家阅读参

消防安全检查简报 派出所校园消防安全检查简报

下面是小编为大家精心整理的消防安全检查简报派出所校园消防安全检查简报文章,供大家阅读参考。简报第2期申扎县中学

2021教师党员年度个人总结8篇

2021教师党员年度个人总结8篇2021教师党员年度个人总结篇1敬爱的党组织:我是一个普通年轻的人民