下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、AD 口 C812 的串行外设接口 vSPI)及其应用日期:2004-12-10来源:单片机与嵌入式系统应用作者:李素芬 李冈 U字体:大中小摘要:ADu C812 是一种新型的集成12 位数据采集系统。它的串行外设接口SPIvserial peripheral interface)可进行主机和多片从外围器件的信息传递,即主机对从机的控制及从机向主机提供各种信息等,从而实现系统之间的各种控制和操作。关键词:ADy C812 串行通信 SPI 串行端口概述ADu C812 是一种全集成的 12 位数据采集系统。它在单个芯片内包含了高性能的自校准多通道ADC、2个 12 位 DAC 以及可编程的
2、8 位 MCU与 8051 兼容)。为便于 MCU 与各种外围设备进行通信,AD C812提供了 3 种串行 I/O 端口: UART 接口、I2C 兼容的串行接口和串行外设接口 SPI )。其中,SPI 接口是工 业标准的同步串行接口,是一种全双工、三线通信的系统。它允许MCU 与各种外围设备以串行方式 8 位数据同时、同步地被发送和接收)进行通信。在SPI 接口中,数据的传输需要1 个时钟信号和两条数据线。SPI 可工作在主模式或从模式下。在主模式,每一位数据的发送/接收需要 1 次时钟作用;而在从模式下,每一位数据都是在接收到时钟信号之后才发送/接收。1 个典型的 SPI 系统包括 1
3、个主 MCU 和 1 个或几个从外围器件。SPI 接口可设置成在发送/接收 1 个字节的结束时产生 1 次中断。主时钟可以通过编程而成为不同的状态,既可编程为4 种不同主波特率的任一种,又可对时钟的极性和MOSI 8 7 6 5,4 3 2 1 MISOSCLOCK MSB接收缓冲器(SPIDAT)图2主机和从机的发送和接收操作相位进行编程。SPI 也可用于那些需要比微控制器O 端口更多输入或输出端的场合中。SPI扩展 I/O 功能的最简单的办法,只需使用 制器引脚。写到SPIDATSCbOCK MSB接收缓沖MOSI 12 3 4 5 6 7 8 iII主从MISO上的并行 I/提供了一种最
4、少的微控SCLOCK (CPOL-1) SCI.OCK (CPOL-O)ss采样输入数据輸出、工作原理1.SPI 的信号说明SPI 系统使用 4 条线可与多种标准外围器件直接接口 :串行时钟线SCLOCK )、主机输入/从机输出数据线 MISO、主机输出/从机输入数据线 MOSI 和低电平有效的从机选择线SS。SCLOCK 是主机的时钟线,为 MISO 数据的发送和接收提供同步时钟信号。每一位数据的传输都需要 1 次时钟作用,因而发送或接收1 个字节的数据需要 8 个时钟的作用。主机的时钟是通过主机的硬件设置的,并和各个从机的 SCLOCK 相连。时钟的波特率、极性、相位是由SPICONSPI
5、 控制寄存器)来设置的。MISO 是主机的输入/从机的输出数据线。主机的 MISO 应与从机的 MISO 相连进行高位在前的数据交 换。MOSI 是 SPI 接口的 SPI 主机输出/从机输入数据引脚。这一引脚应当连接主微控制器的数据输出和从微控制器的数据输入端 MOSI,进行高位在前数据的交换。(CPHA=l)(CPHA-O)LISP1标志采样输入 数据输岀LIEPI标志SPI时序图J t I I1111J * I 1 I I1I1SS 只在从方式中用于低电平选中从。SS 对应的是 P1.5,在初始化时 P1 口被设置为模拟输入,因而通过清除 P1.5 可将其设置为数据输入,才可完成主、从机
6、的通信。2.SPI 的寄存器SPI 有 2 个相关寄存器:SPICON 和 SPIDAT,其中 SPICON 包含各种标志位、使能位、方式位及时钟位。各位都是可寻址的,如表1 及表 2 所列。表 1 SPICON 寄存器ISPIWCOLSPESPIMCPOLCPHASPR1SPR0FFH0FEH 0FDH0FCH0FBH 0FAH 0F9H 0F8H 0R/WR/WR/WR/WR/WR/WR/WR/W表 2 SPICON 各位功能位功能ISPI中断标志位。当发送和接收 1 字节数据完毕时自动置全。 该位也可以通过软件控制。 当于中断时, 应 当打开中断 EA,将 IE2.0 置位。当执行中断服
7、务程序时,硬件自动清除该位WCOL写冲突错误标志位。当 SPI 正进行数据交换时,若向SPIDAT 中写数据将产生写冲突错误,写入的数据将无效,原有交换继续执行。必须由软件清除SPESPI 使能位。SPE=0,I2C 串口使能,SPI 串口禁止;SPE=1,I2C 串口禁止,SPI 串口使能SPIM主模式选择位。SPIM=0,SPI 工作于从模式;SPIM=1,SPI 工作于主模式CPOL时钟极性选择位。CPOL=0,主机时钟有高到低的跳变读取数据,数据字节之间传输时,时钟处于高电平 空闲状态;CPOL=1,主机时钟有低到高的跳变读取数据,各数据字节之间传输时时钟处于低电平 空闲状态 见图 1
8、)CPHA时钟相位选择位。CPHA=0,传输数据的高位 MSB 在 SS 的降沿出现,在时钟第 1 个前沿读入;之后下 一数据位在时钟后沿出现,在下一个前沿读入;直到8 位数据读完。CPHA=1,数据在时钟前沿出现,在同一时钟周期的后沿读入见图 1)。读位还可控制从机的冋步方式SPR1SPR0SPI 波行选择位。SPR1 SPR0 波特率0 0 fosc/40 1 fosc/81 0 fosc/321 1 fosc/64注:从方式下这两位都清零另一个 SPI 寄存器是 SPIDAT。对这一寄存器的写操作会产生从高位开始的一位位的数据发送。如果写操作发生在其他数据正在传递的过程中,那么WCOL
9、将置位。如果写操作进行时没有其他数据在传递,SPIDAT 中的数据将自动锁存到移位寄存器中,移位寄存器从高位开始发送数据,发送结束后输入的字节将锁存 到 SPIDAT中,可进行软件读出。3.主模式发送和接收可以同时工作在主模式下。主模式的显著特征是不论是发送还是接收始终有SCLOCK 信号,SS 信号不是必需的。因为 SPI 串口只能有一片主机,因而不存在主机的选择问题。发送操作是由向 SPIDAT 中写数据而触发的。在主模式下,时钟信号的1 次作用对应一位数据的发送 MISO )和另一位数据的接收 MOSI )。如图 2 所示,在主机中数据从移位寄存器中自左向右发出送到从机 MOSI ),同
10、时从机中的数据自右向左发到主机MISO ),经过 8 位时钟周期完成 1 个字节的发送。输入字节保留在移位寄存器中,此时ISPI 自动置位 SCLOCK(26)MOSI (27)MISO (19)甥P3-5(23)MOSI(27)MISO(19)SS(12)ADuC812P3.1从机GNDGND_ Vpp时,在 SS 返回高电平瞬间,ADu C812 将产生中断,并且收到或发送的数据将不可靠。在这种方式下,不可始终置低,如果始终置低,那么从机将始终发送00。当了与主机获得同步,从机 SS 的下降沿必然由主机控制。当SS 变低时,从机产生外部中断,中断服务中 SPE 位由软件清除,然后重新置位。
11、SPE 位的置位将使时钟计数器复位到零。须注意的一点是这一中断必须有比其他中断更高的优先级,才可使从机在主机第1 个时钟到来之间获得同步。主机程序必须为从机中断执行中断服务提供足够的时间,以对SPE 进行操作。典型的操作是在清除SS 和向 SPIDAT 中写数据之间用 1215 个 NOP 指令。SS设置中断E仏1E24V送SPICON|淸P3.5(SS)12】5个NOP向SPIDAT中写数据发送完毕SS置高设置中断EA,I&I设置外部中断设建SS为数字输入特SS变咼向SPIDATf写数据在中断中清、置SPI读SPIDAT下:个数据J(a)主机流程图| 发送完毕读SPIDAT下一个数据
12、J(b)从机流程图4主、从机工作流程图、实际应用图 3 所示为 1 个主机和 1 个从机典型的电路连接图。注意主、从机要有公共的地。根据图 3 的连接情况及前面分析的主、从机工作项目,绘制流程图如图4 所示。主机程序:SET EA ;打开中断允许SET IE2.0 ;打开 SPI 中断MOV SPICON , #30H ;送 SPI 控制字MASTER :CLR P3.5 ;置 SS 为低NOP ;等待从机中断执行完毕NOPNOPNOPMOV SPIDAT ,#DATA ;向 SPIDAT 中写数据LCALL DELAY ;根据选择的分频比算出数据传输的时间,确定 DELAY 子程序的延时时间
13、 断方式)SETB P3.5 ;将 SS 置高LJMP MASTER ;送下一个数从机程序:ORG 0013H ;外部中断 INT0 入口CLR SPE ; SPE 位清除SETB SPE ;与主机时钟获得同步SETB P3.2 ;撤销中断RETI也可用SETB EA ;打开中断允许SETB IE2.0;打开 SPI 中断SETB EXO ;打开外部中断MOV SPICON , #20H ;送 SPI 控制字CLR P1.5 ;设置为数字输入JB P3.1$ ;判断 P3.1 是否为低CLR P3.2 ;产生 INTO 中断CLALL DELAY ;等待数据传送完毕MOV A,SPIDAT ;
14、读取数据VCpVCcSSSDAffA SCLOCK ADUC812主机pgs GNDP3.3P3 48051从机P3.2GND通过以上程序可以实现从主机向从机中发送数据的操作。在某些情况下,从微控制器所完成的功能较少,如果采用 ADu C812 会产生资源和经济的浪费,为此可以采用MCS-51 系列的微控制器作为从机。这样不仅实现了必要的功能又节约了资源。因为MCS-51 没有 SPI 串口,所以采用 MCS-51 作为从机需要模拟 SPI的工作模式来完成数据的传送。下面给出模拟SPI 接收数据的电路连接图 见图 5)和相关程序。ADy C812 作为主机的程序与前面相同。8051 模拟 SP
15、I 串口接收数据程序如下:ORG 0013HINT0 : MOV R0 , #8 ;移位计数值ADMC812与8051礎件连接INTO : JB P3.4 , INTO ;输入时钟位高电平时等待MOV C , P3.3 ;输入时钟下降沿接收数据RLC A ;将数据存入 A 中DJNZ RO,INTO ; 8 位是否传送完SETB P3. ; 8 位数据接收完毕,关中断MOV R1 ,#DATA ;将接收数据存到内部RAMINC R1 ;指向下一个内部 RAM 单元CJNE R1 ,#00H,RECMOV R1 ,#80HRETISETB EASETB EX0MOV R1 , #80H ;内部存
16、储器 80HFFH 单元存储接收的数据总结通过对 SPI 串口原理的介绍,SPI 串行接口可以在短距离内进行主机与从机的数据传送,并且具有多种 可调的传输方式、连接电路简单、使用方便等优点。为实现主机和从机及从外围设备的通信提供了一种简 单、易行的方案。国 ADUC812 内部 ADC 的应用作者:孙 会朱 文章来源:南昌大学点击数:2699 更新时间:2003-10-211 AD 卩 C812 单片机内部 ADC 简介1.1 ADC 电路AD 卩 C812 内部的 ADC 转换块包含一个 5 卩 s 转换时间、8 通道、12 位、单电源的 A/D 转换器。A/D 转换器由电容式 DAC 的常
17、规逐次转换器组成。 ADC 具有单独的模拟电源和参考电压,可最大限度地减 少数字电路的干扰。转换器接受的模拟电压输入范围为0+ VREF ;片内提供高精度、低漂移并经厂家校准的 2.5V 基准电压。AD 卩 C812 内集成的 ADC 转换模块有其特殊性,如果应用不当,轻则影响ADC 的性能,重则电路完全不能工作,甚至烧毁器件。下面对基准电压和模拟输入电压作详细的介绍。1 )基准电压AD 卩 C812 内 A/D 转换器的 2.5V 基准电压既可由片内提供,也可由外部基准经VREF 引脚提供。若使用内部基准,则在 VREF 和CREF 引脚与 AGND 之间都应当连接 0.1 卩 F 电容以便
18、去耦。这些去耦电容应放在紧靠 VREF 和 CREF 引脚 处。为了达到规定的性能,建议在使用外部基准时,该基准应当在2.3V 和模拟电源 AVDD 之间。图 1 给出使用外部基准电源时的应用电路。因为片内基准高精度、低漂移且经工厂校准,并且当ADC 使能时,在 VREF 引脚会出现此基准电压。因此,在进行系统扩展时,可将片内基准作为一个 2.5V 的参考电源来使用。若要把片内基准用到微转换器之外,则应在VREF 引脚上加以缓冲并应在此引脚与 AGND 之间连接 0.1 卩 F 电容。图 2 示出了把片内基准用到微转换器之外时的应用电路。 在实际应用中应当特别注意,内部 VREF 将保持掉电直
19、到 ADC 外围设备模块之一被它们各自的使 能位上电为止。2)模拟输入与其它 ADC 芯片相比,AD 卩 C812 的 ADC 模块有一个缺点,就是ADC 正常工作的模拟输入范围为 0+2.5V,而允许输入的电压范围只能为正电压0+5V。经实验证明,若输入的模拟电压超过+2.5 V最大值为+5V ), ADC 的采样结果为最大值 0FFFH ),虽然结果不对,但并没有影响AD 卩 C812 正常工作;但是,一旦输入负的模拟电压,则会影响AD 卩 C812 正常工作,表现为 ADC 的基准电压 VREF = +2.5V )消失和采样结果不正确,且若长时间输入负电压,将有可能损坏芯片。因此,在实际
20、应用中,若发现启动 ADC 之后 VREF 端无电压,则应立即将芯片复位,并检查模拟输入 信号的采集放大部分。在确保进入AD 卩 C812 的模拟信号在 0+2.5V 范围内之后,才能再次启动 ADC。实际应用时,应保证输入的模拟电压为正电平。 一般情况下, ADC 的输入缓冲放大器采用 05V 的电源工作,这样,可以保证ADC 的输入在 AD 卩 C812 的 A/D 转换器的安全输入范围内,如图3 所示。如果实际情况不许可, ADC 的输入缓冲放大器的电源超出 05V,则应采用图 4 所示钳位电路,可保证 ADC 的输入在 AD 卩 C812的 A/D 转换器的安全输入范围内。注意, AD
21、C 的输入端有一个 0.01 卩 F 的电容,这个电容是为了保证 ADC 的转换精度。1.2 控制 ADC 工作的特殊功能寄存器ADC 的工作由三个特殊功能寄存器控制,即 ADCCON1 、 ADCCON2 和 ADCCON3 。1ADCCON1 寄存器控制转换与采集时间、硬件转换模式以及掉电模式。寄存器地址: FFH ;寄存器缺省值: 20H ;位可寻址: 否。2ADCCON2 寄存器控制 ADC 通道选择和转换模式。寄存器地址: D8H ; 寄存器上电缺省值: 00H ;位可寻址:是。3ADCCON3 寄存器对用户软件给出 ADC 忙标志指示。寄存器地址: F5H ;寄存器上电缺省值: 0
22、0H ;位可寻址:否。1.3 ADC 的工作模式1)典型运用当特殊功能寄存器ADCC0N13 完成设置后,ADC 将转换模拟输入并在特殊功能寄存器ADCDATAH/L 中提供 ADC12 位结果字。用通道选择位写寄存器 ADCDATAH 的高 4 位以识别通道。2 ) ADC 的 DMA 模式AD 卩 C812 片内 ADC 设计成 5 卩 s 完成一次采样,在中断驱动子程序中要求用户在5 卩 s 时间内完成中断服务、读 ADC 转换结果并为进一步的后续处理存储作准备等全部工作。如果没有完成,则下一次的 ADC 采样可能丢失。因此,在 AD 卩 C812 不能支持中断速率的应用中,可采用ADCDMA 模式。通过 DMA 使能位 ADCC0N2.6 ),使能 ADCDMA 模式,它允许 ADC 在每次设置寄存器 ADCC0N 后连续采样。每次采样结果被写入外部静态 RAM,无需 AD 卩C812 内核的任何干预。这种方式确保 ADC 处于全速更新速率时,AD 卩 C812 能捕获连续的采样流。2 使用 AD 卩 C812 内部 ADC 的 C51 驱动程序下面将给出两个使用 AD 卩 C812 内部 ADC 的 C51 驱动程序。程序“ ADC_pol.c ”采用查询工作方 式,程序“ ADC_int.c ”采
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- pocib出口合同范本
- 北京保密合同范例
- 产品代售代理合同范例
- 代销权合同范本
- 买卖合同补充协议合同范本
- 2025年度住宅小区绿化与建筑装饰一体化合同
- 2025年度高新技术居间服务费合同范本正规范本
- 2025年度建筑工程安全生产环保措施实施合同
- 2025年芸香行业深度研究分析报告
- 2025年中国草鱼行业市场供需规模及发展战略咨询报告
- WORD2010第三讲:文档的格式化
- GA/T 1133-2014基于视频图像的车辆行驶速度技术鉴定
- GB∕T 41461-2022 自助银行网点服务要求
- 部编新教材人教版七年级上册历史重要知识点归纳
- 重点时段及节假日前安全检查表
- 道路标线施工技术规程(已执行)
- 给排水管道工程分项、分部、单位工程划分
- 《傻子上学》台词
- 高中英语新课程标准解读 (课堂PPT)
- 石灰石石膏湿法脱硫化学分析方案
- 《数学趣味活动》PPT课件.ppt
评论
0/150
提交评论