版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于AVR单片机SPI的串行ADC接口设计时间:2007-06-26 15:29:00 来源:21IC中国电子网 作者:湖北师范学院 唐重陈 刘海伟摘要:本文所进行是为提高ADC转换的精度、加快工作速度的研究,主要介绍AVR单片机的SPI与MAX187的接口设计,提供了软件编程实现。 关键字:SPI、AVR单片机、MAX187 1、AVR单片机的SPI接口 SPI(SerialPeripheralInterface-串行外设接口)总线系统是一种同步串行外设接口,允许MCU与各种外围设备以串行方式进行通信、数据交换,广泛应用于各种工业控制领域。基于此标准,SPI系统可以直接于各个厂家生产的多种标
2、准外围器件直接接口。SPI接口通常包含有4根线:串行时钟(SCK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)和低电平有效的从机选择线SS。在从机选择线SS使能的前提下,主机的SCK脉冲将在数据线上传输主/从机的串行数据。主/从机的典型连接图如图(1)所示: 图(1)主/从机的连接图 串行外设接口SPI允许ATmega16和外设之间进行高速的同步数据传输。ATmega16SPI的特点如下:全双工,3线同步数据传输,主/从机操作,LSB首先发送或MSB首先发送,7种可编程的比特率,传送中断结束,写碰撞标志检测,可以从闲置模式唤醒,作为主机时具有双速模式(CK/2)
3、。 如图(2)所示,系统包括两个移位寄存器和一个主时钟发生器。通过将需要的从机的SS引脚拉低,主机启动一次通信过程。主机和从机将需要的数据放到相应的移位寄存器,主机在SCK引脚上产生时钟脉冲以交换数据。主机的数据从MOSI移出,从从机MISO移入。从机的数据从MISO移出,从从机MOSI移入。主机通过将从机的SS拉高实现与从机的同步。 图(2)SPI主机-从机的互连 下面将介绍SPI的几个特殊寄存器: 1.1SPI的控制寄存器SPCR SPIE为SPI中断使能,置位后,只要SPSR寄存器的SPIF和SREG寄存器的全局中断使能位置位,就会引发SPI中断。SPE置位将使能SPI,DORD置位时数
4、据的LSB首先发送;否则数据的MSB首先发送。MSTR置位时选择主机模式,否则为从机。CPOL置位表示空闲SCK为高电平;否则空闲时SCK为低电平。CPHA决定数据是在SCK的起始沿采样还是在SCK的结束沿采样。通过对SPR1、SPR0进行设计,确定主机的SCK速率。 1.2SPI的状态寄存器SPSR SPIF为中断标志位,串行发送结束后,SPIF置位。若此时寄存器 SPCR的SPIE和全局中断使能位置位,SPI中断即产生。进入中断例程后SPIF将自动清零。在发送当中对SPI数据寄存器SPDR写数据将置位WCOL,SPI2X置位后SPI的速度加倍。 1.3SPI的数据寄存器SPDR SPDR数
5、据寄存器为读/写寄存器,用来在寄存器文件SPI移位寄存器之间传输数据。写寄存器将启动数据传输,读寄存器将读取寄存器的接收缓冲器。SPI系统的发送方向只有一个缓冲器,而在接收方向有两个缓冲器。也就是说,在发送时一定要等到移位过程全部结束后才能对SPI数据寄存器执行写操作。而在接收数据时,需要在下一个字符移位过程结束之前通过访问SPI数据寄存器读取当前接收到的字符。否则第一个字节将丢失。 在本设计中所使用的串行ADC芯片,选用了MAXIM公司MAX187。在AVR单片机SPI主机的控制下,完成对MAX187转换后的数据读操作。 2、MAX187的介绍 MAX187是美信公司推出的12位AD转换芯片
6、,内部含有采样保持电路,单5V操作电源,转换速度为85s,具有片上4096V参考电压,模拟量输入范围为0VBEF。三线串行接口,兼容SPI,QSPI,MicroWire总线。 MAX187用采样保持电路和逐位比较寄存器将输入的模拟信号转换为12位的数字信号,其采样保持电路不需要外接电容。MAX187有2种操作模式:正常模式和休眠模式,将置为低电平进入休眠模式,这时的电流消耗降到10A以下。置为高电平或悬空进入正常操作模式。 完整的操作时序如图(3)所示。使用内参考时,在电源开启后,经过20ms后参考引脚的47F电容充电完成,可进行正常的转换操作。A/D转换的工作过程是:当为低电平时,在下降沿M
7、AX187的TH电路进入保持状态,并开始转换,85s后DOUT输出为高电平作为转换完成标志。这时可在SCLK端输入一串脉冲将结果从DOUT端移出,读入单片机中处理。数据读取完成后将置为高电平。要注意的是:在置为低电平启动A/D转换后,检测到DOUT有效(或者延时8.5s以上),才能发SCLK移位脉冲读数据,SCLK至少为13个。发完脉冲后应将置为高电平。 图(3)SPI/Microwire串行接口时序图(CPOL=CPHA=0) 3、串行ADC接口设计与实现 MAX187电源需要加去耦合电容,常见的方法是用一个47F电容和一个01F电容并联。为保证采样精度,最好将MAX187与单片机分开供电。
8、4脚为参考端接一个47F的电容,这是使用内部4096V参考电压方式。输入模拟信号的电压范围为04096V,如模拟输入电压不在这个范围要外加电路进行电压范围的变换。MAX187只有一路模拟输入通道,如输入为多路信号,要外加多路模拟开关。如图(4)所示,Vinp为模拟信号的输入端,经过MAX187转换后得到12的数据,通过SCLK、CS、DOUT分别与AVR单片机SPI的SCK、SS、MISO相接,在单片机的控制下对数据进行读取。 图(4)MAX187的硬件接线图 程序设计: 程序采用ATmega16编制,在ATmanAvr环境下调试通过。程序的基本思想是:定义PB7脚为时钟SCLK,PB6为数据
9、DOUT,PB4为片选。片选有效后延时85s以上确保转换完成,在时钟SCLK的作用下从数据输出端读出转换的数据后存入两个无符号字符变量中,将这2个字符变量拼成一个16位无符号整形变量作用函数返回值返回,返回值的低12位有效。 #definess4/PB4 #definemosi5/PB5 #definemiso6/PB6 #definesck7/PB7 PORTB=0x4f;DDRB=0xb0;/对PB口的初始化 voidspi_init(void) SPSR=0x0; SPCR=0x50; unsignedintADC_MAX187(void) staticuinttemp,temp1; PORTB&=(1sck); PORTB&=(1ss); delay_nus(10);/延时10uS while(!PORTB&(1miso); SPDR=0x00; while(!SPSR&(1SPIF); PORTB&=(1sck); temp=SPDR; temp=(uint)temp8; SPSR=0x00; while(!SPSR&(13; PORTB|=(1ss); return(temp); 4、总结 本系统充分利用了AVR单片机的SPI模块和MAX187是具有兼容SPI串
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 导师辅导技术试题及答案
- 2026年养生知识节目策划方案
- 2026年小学生法治知识问答
- 2026年航天飞机科普知识
- 2026年消防工程师模拟题及答案解析
- 2026年小学体育教育知识与能力培训
- 2026年学生知识现状调查报告
- 2026年CCNP网络技术笔试好用资料
- 2026年教务管理知识竞赛
- 2026年化学知识体系重构方法
- DB42∕T609-2010 湖北省主要造林树种苗木质量分级
- 江苏省常州市钟楼区2024-2025学年六年级下学期小升初招生数学试卷含解析
- 五年级下册语文1-8单元习作范文寒假积累素材
- 八年级培训机构家长会
- 防灭火细则培训课件
- 2025年能源控股集团所属辽宁铁法能源有限责任公司招聘笔试参考题库附带答案详解
- 临床护理带教现状及改善
- 战略管理知到智慧树章节测试课后答案2024年秋华南理工大学
- 2025年高考英语完形填空+语法填空专练(原卷版+解析版)
- 《变电站电气主接线》课件
- 湖南高中物理学业水平考试公式及知识点总结学生
评论
0/150
提交评论