欢迎来到天天文库
浏览记录
ID:31359136
大小:114.00 KB
页数:9页
时间:2019-01-09
《基于avr单片机的spi接口设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于AVR单片机的SPI接口设计与实现 摘要:利用AVR单片机和SPI接口在硬件、软件设计上的便利性,以ATmega128MCU与ADT7516、SI8902模数转换芯片之间的硬件设计和通信过程为基础,实现了电源监控电路中的参数采集和智能控制功能。测试表明SPI接口通信正常,AVR单片机控制稳定,满足对电源输出电路的实时监视和控制要求。同时给出了ATmega128芯片SPI接口的配置过程,以及模数转换芯片的配置过程、通信时序的实现方法。 关键词:串行外设接口;AVR单片机;模数转换器;数据采集
2、;嵌入式系统 中图分类号:TP391文献标识码:A文章编号:1009-3044(2016)27-0238-03 1引言 SPI(SerialPeripheralInterface,串行外设接口)是由Motorola公司设计的一种串行接口,具有电路简单、通信可靠、控制容易、通信速率快等优点,在嵌入式系统中应用广泛,单片机生产商包括Atmel、TI、MICROCHIP、FREESCALE等公司均提供具有SPI接口的单片机(MCU),允许MCU与各种外围接口设备以串行方式通信;同时各接口供应商提供
3、了丰富的SPI外围接口产品,包括:LCD模块,Flash/EEPROM存储器,以及数模/模数转换器等器件。 下面以Atmel公司的ATmega1289MCU为例,利用其SPI接口对外围温控模数转换器(ADC)ADT7516、隔离模数转换器(ADC)SI8902进行参数配置和数据采集,实现对电源供电的管理,包括对各路电源电压、电流的监视,及各路电源的通断控制功能。 2硬件电路设计 2.1ATmega128串行外设接口(SPI) ATmega128是Atmel公司推出的一款低功耗、高性能、多功
4、能8位MCU,资源广泛,功能强大;结合多种监测电路,极大增强了嵌入式系统的可靠性;ATmega128提供了一个串行外设接口(SPI),它包括两条数据线:主机输出从机输入(MOSI),主机输入从机输出(MISO)和两条控制线:串行时钟线(SCK),片选控制线(SS)。 在电源供电管理电路中,ATmega128作为SPI接口的主控制设备,两种ADC芯片完全受ATmega128芯片的控制。 2.2电路设计 电源供电管理电路实现直流电流12V、3.3V电压和电流等共16路参数检测,以及隔离28V电源
5、电压和电流参数监测,设计中共采用了4片ADT7516、2片SI8902实现参数的模数转换。电路中,TPS24720(8片)和TPS2490配合ATmega128输出的控制信号用于对相应电源通路的通断控制,FM25H20用于存储电路的状态信息。 ATmeg128在任意时刻仅能与一个从设备进行通信,对于多个SPI从设备,采用三八译码器74LVC138实现多个从设备的片选使能,电源供电管理电路原理如图1示。9 通过配置ATmega128三个GPIO管脚(PE4,PE5,PE6),作为74LVC138
6、的A0、A1和A2输入端,三八译码器的输出连接于各个从设备的SS端,ATmega128SPI接口的SS线连接于74LVC138的EN管脚用于使能该器件,对应关系如表1所示 3软件实现 软件设计包括ATmega128及从设备的初始化,以及参数采集和数据处理。 在ATmega128完成了初始化配置后,通过控制SPI接口向ADC发送控制字,完成相应ADC的初始化配置,从而控制ADC对模拟信号进行转换,转换结束后,将转换结果通过SPI接口回读到MCU。MCU对不同路电压、电流值按照预设的范围进行判断
7、,并给出电源通路的通断控制命令。 3.1ATmega128SPI接口配置 ATmega128中与SPI接口有关的寄存器有控制寄存器(SPCR)、状态寄存器(SPSR)和数据寄存器(SPDR),这三个寄存器都为8位寄存器,通过对各寄存相应比特位的配置,可以实现对SPI接口的控制。软件设计中采用查询标志位的方式完成SPI通信的编程,使用的软件为AVRStudio4.18,编译环境为WinAVR20100110,ATmega128初始化如下所示。 //MOSI、SCK、SS对应管脚初始化为输出,默
8、认的MISO为输入 DDRB
9、=(1<10、(1<11、(1<12、=(1<13、=(1<14、(1<15、(1<16、(1<
10、(1<11、(1<12、=(1<13、=(1<14、(1<15、(1<16、(1<
11、(1<12、=(1<13、=(1<14、(1<15、(1<16、(1<
12、=(1<13、=(1<14、(1<15、(1<16、(1<
13、=(1<14、(1<15、(1<16、(1<
14、(1<15、(1<16、(1<
15、(1<16、(1<
16、(1<
此文档下载收益归作者所有