第五讲 内容回顾 1、SCI的特点 1)F2812包含两个SCI接口,记做SCIA和SCIB

Slides:



Advertisements
Similar presentations
单片机 C 语言应用程序设计 主讲教师:廉哲 QQ: 电话: 办公室:综合楼 C318.
Advertisements

ME 的自我介紹  葉曈. 個人資料 我的名子是葉曈 -.-  我的星座是天秤座  我的血型是 AB 型 ^-^
现代电子技术实验 ——综合实验之单片机部分
第五章 输入输出系统 5.1 概述 5.3 接口 5.3 系统总线 5.4 直接程序传送方式接口 5.5 中断方式与接口
第2章 VCD机芯及解码电路的原理与维修 本章要点 激光头的组成、原理及维修; 飞利浦机芯和索尼机芯的结构、工作过程及机芯电路原理; 机芯及电路故障的分析与维修; MPEG1解码器的组成及常用MPEG1解码器; 音、视频处理电路原理及维修; 系统控制及显示电路原理; 电源电路组成及原理.
TMS320F2812串行外设接口 Serial Peripheral Interface (SPI)
大学英语四六级考试 监考培训会 教务处 2010年12月16日.
项目二 中断应用系统设计 本项目学习目标: (1)制作一个单片机控制的彩灯电路。 (2) 理解中断的基本概念;
第三章 计算机系统 的组成与工作原理 本章学习目标 理解模型机的结构及工作过程 掌握单片机的结构 掌握单片机I/O口的使用
国防大学学生军训工作办公室.
模拟电子系统的设计 与集成运算放大器的使用
造气DCS综合优化控制系统 介绍 石家庄兴盛德隆科技有限公司.
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
講師:聯捷聯合會計師事務所 張志勝會計師(所長)
KEIL C单片机设计与项目实践 课程主讲: 孙福成 张小义   王晓静 杨至辉 课件制作: 亢娟娜 王 淏.
第13章 单片机开发板设计 本章主要介绍单片机应用系统的设计思想、设计理念和设计一个单片机应用系统要考虑的一些问题。本章中还介绍了笔者自主设计的一款基于proteus仿真平台的单片机开发板.
第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示.
第一章 计算机基础知识 第一节 计算机概述 一、计算机的基本组成和工作原理 二、有关术语 三、计算机发展简史 四、微型计算机概述
C8051F MCU V1.0.
任务1: 点亮你的LED----初识单片机.
SEED TI C2000 培训教材.
單晶片MCS-51 C語言入門實習 第1章 微電腦與單晶片MCS-51架構 作者:董勝源.
第四章 指令系统及汇编语言程序设计.
第7章 常用数字接口电路.
高级语言程序设计 主讲人:陈玉华.
第9章 串行扩展技术 (课时:6学时).
第7章 单片机系统的串行扩展 西安思源学院 电子信息工程学院 1.
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
S3c2410电路设计(以北京博创s3c2410-s实验箱为例讲解)
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
第六部分 ADSP-2189M EZ-KIT评估套件 a.
YM100开发实验板 演讲人:熊小燕 2009年月12月16日
微型机系统与接口技术复习.
第八章 80C51单片机的串行通信 主要内容:本章主要介绍80C51串行通信相关知识,包括串行通信基本概念,80C51单片机的串行口及其工作方式,以及单片机在双机或多机通信中的应用。
第八章 数据通信.
UART口的第一次接触 MCU起航 QQ:
第三章 计算机系统的组成与工作原理.
Block diagram BB —逻辑 —音频 —电源管理 HW interface. Block diagram BB —逻辑 —音频 —电源管理 HW interface.
第5章 智能汽车设计基础—微控制器.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第七章 定时/计数器.
介面設計專題實務 Object Teaching of Interface Design 實驗五 CPU計時器實驗
第5章 半导体存储器 存储器基本概念 随机存取存储器(RAM) 只读存储器(ROM) 存储器连接与扩充应用 微机系统的内存结构.
第十章 人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片.
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
项目四 基于SPI串行总线接口DA芯片TLC5615的使用
基于WEB的嵌入式视频采集压缩瘦身服务器的设计
第九章 微处理器外部结构和总线操作时序.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
《数字示波器》作品解析 一、题意分析 二、实时数字示波器的设计 三、等效采样方式及实现 四、输入电路通道的设计 五、赛况简要分析.
单片机原理与应用 主讲人:张荣刚 福建师范大学福清分校.
四川工商学院 单片机原理及应用 刘 强
核探测与核电子学国家重点实验室 中国科学技术大学近代物理系
第三章 计算机系统的组成与工作原理.
第二章 类型、对象、运算符和表达式.
单片机原理及应用 实践部分 主讲人:刘 强 四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
温度传感器DS18B20 MCU起航 QQ:
第十二章 位运算.
单片机应用技术 (C语言版) 第8章 串行通信接口
单片机原理及应用 (C语言版) 第8章 单片机系统扩展
第六章 S3C2410的串口UART及编程 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)
第8章 应用系统配置及接口技术 ● 教学目标 ● 学习要求
第三章 半导体存储器及其接口 第一节 概述 第二节 半导体存储器 第三节 半导体存储器与CPU接口 一、存储器的分类
电压检测部分 电压采集部分 模数转换电路 隔离部分电路.
第10章 串行外设接口SPI SPI:高速同步串行输入/输出端口,传送速率可编程,
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
单片机原理及接口技术 前修课程:数模电、微机原理.
第六章 直接成本法.
Presentation transcript:

第五讲 内容回顾 1、SCI的特点 1)F2812包含两个SCI接口,记做SCIA和SCIB 2) SCI是一种异步串行通信接口,即通常所说的UART 3)SCI支持16级接收和发送FIFO,有助于减少CPU的开销 4) SCI可工作于半双工或全双工模式(RS485/422) 2、SCI多处理器通信 1)空闲线模式:10位或更多位个高电平表示数据块的开始; 2)地址位模式:每帧的最后一个数据位后有一个地址位; 1、SCI的主要特点 F2812包含两个SCI接口,记做SCIA和SCIB SCI是一种异步串行通信接口,即通常所说的UART SCI支持16级接收和发送FIFO,有助于减少CPU的开销 如果不使用FIFO时,SCI接收器和发送器采用两级缓冲方式 SCI可工作于半双工或全双工模式(RS485/422) 两种多处理器通信模式:空闲线与地址位多处理器模式 为保证数据的完整性,SCI模块对接收到的数据可以进行间断、奇偶、超限和帧错误检测。 2、地址位多处理器协议中,每帧的最后一个数据位后有一个附加的地址位; 数据块的第一帧的地址位设置为1,其余帧的地址位为0; 数据传输与数据块间的空闲周期无关。 3、RS232: 采用负逻辑电平:-5V~-15V 规定为逻辑 “1” +5V~+15V 规定为逻辑 “0” RS485:VA-VB > 0.2V 逻辑“1” ;VA-VB <- 0.2V 逻辑“0” 实际差动输出:最小 ±1.5V , 最大±6V 。 距离1km(100kbps),速率达10Mbps 3、标准串行总线接口 1)RS232:成本低,速率较低,距离短,限双机通信 2)RS485/RS422:差分信号,传输距离远,速率较高

SCI串行通信接口 SCIA/SCIB 电平转换芯片 标准串行总线接口 RS232/485 数据和握手信号 在与DSP通信的另一侧,也需要CPU、UART、电平转换和DB9这样的流程。 如果距离较短,也可以不经过电平转换,直接采用TTL电平通信,但这样就不是标准串口。 SCIA/SCIB 电平转换芯片 标准串行总线接口 数据和握手信号 RS232/485

F2812串行外设接口 Serial Peripheral Interface(SPI) DSP原理及其应用技术 F2812串行外设接口 Serial Peripheral Interface(SPI) 6.1 SPI模块概述 6.2 SPI的工作原理 相当于教材的第六章。 6.3为扩充内容,介绍了典型的SPI接口芯片。 6.4结合实验要求介绍了软件编程。 6.3 通过SPI接口扩展外设 6.4 软件编程举例

6.1 SPI模块概述 SPI与SCI有什么区别? 串行外设接口(SPI)是一种同步串行输入/输出接口,传输速率较高(LSPCLK/4),适于板级通信。 串行通信接口(SCI)是一种异步串行接口,通常需经过收发器进行电平转换,通信速率较低,适于长距离通信。 SPI适于那些应用场合? 通常用于DSP与扩展外设以及其它处理器间进行通信,如显示驱动器、ADC、DAC、EPROM、RTC以及主从模式的多处理器应用等。 多通道缓冲串口(第九章)相当于增强型SPI接口。 F2812包含一个SPI接口,支持16级的接受和传输FIFO。

SPI与XINTF SPI与XINTF有什么区别? 串行外设接口(SPI)是一种同步串行输入/输出接口 传输速率最高可达37.5Mbps 信号线少(2-4条) 适于板级扩展的外设输入/输出接口 适于板级微处理器间通信。 外部扩展接口(XINTF)是一种并行输入/输出接口 传输速率较很高,可达75M×16=1200Mbps 信号线多(DB16、AB19、CB11) 限用于板级扩展外设的输入/输出接口。 多通道缓冲串口(第九章)相当于增强型SPI接口。

SPI模块的特点与信号 数据长度:1~16位可编程 两种工作方式:主/从工作方式 波特率:126种可编程 4种时钟模式:由极性和相位控制 可同时进行发送和接收操作 接口方式:中断或查询 4个外部引脚 SCI的数据长度1-8位。SCI的波特率寄存器16位。 四种时钟模式:无/有相位延迟的下降沿、无/有相位延迟的上降沿。 外部引脚:SPISIMO从输入/主输出(输出) SPISOMI从输出/主输入(输入) /SPISTE(SPI发送使能引脚) SPICLKE(SPI串行时钟引脚) 同步串行接口必须有靠同一个时钟同步,只需主控制器设置波特率。 而异步串口依靠各自的时钟同步,必须保证线路两端的波特率相同。 12个寄存器

SPI模块寄存器概述 共12个寄存器 双缓冲结构 FIFO寄存器 SPI接口可以接收或发送16位数据,并且接收和发送都是双缓冲。 SPITXBUF:包含下一个要发送的数据; SPIRXBUF: 包含接收的数据; SPIDAT:作为发送接收移位寄存器使用。 阴影部分为与FIFO有关的寄存器。 FIFO寄存器

6.2 SPI的工作原理 SPI有主/从两种工作模式,由Master/Slave位(SPICTL.2)选择. SPI的引脚SPICLK为整个串行通信网络提供时钟; 通过SPIBRR寄存器设定通信网络的数据传输速率; 数据从SPISIMO输出,并锁存从SPISOMI输入的数据; /SPISTE通常作为片选信号,数据传输过程置低电平,传输完成后置高. 发送数据: 写数据到SPIDAT或SPITXBUF,启动SPISIMO引脚上的数据发送,首先发送最高有效位(MSB)(与SCI有所不同)。 如果两个DSP间通过SPI进行通信,需要一个为主模式,一个工作于从模式。 接收数据: 当指定数量的数据位已经通过SPIDAT移位后,SPIDAT中的数据发送到SPIRXBUF中,且SPI INF FLAG置1。

6.2 SPI的工作原理 从模式:Master/Slave=0 TALK位(SPICTL.D1) 从模式下,SPICLK时钟由主控制器提供,并决定了传输速率。 数据从SPISIMO引脚输入,从SPISOMI引脚输出。 /SPISTE通常作为从设备的片选信号,数据传输过程置低电平,传输完成后置高. TALK位(SPICTL.D1) 当TALK位清零,数据发送被禁止,输出引脚(SPISOMI)处于高阻状态。若发送期间清零TALK位,SPI要继续完成当前的字符传输,以保证SPI设备正确接受数据。 TALK位允许在一个网络上连接多个从SPI设备,但同一时刻只能有一个从设备允许驱动SPISOMI。这点与多机通信的RS485接口相似。 通常DSP工作于主模式,而外设芯片为从模式,无需进行配置。

SPI的典型接口 主控制器通过SPICLK信号来启动数据传输; 通常在一个时钟的边沿发送数据,而在时钟的另一个边沿接收数据; 两个微处理器能够同时发送和接收数据或一侧接收一侧发送。 双缓冲结构,但SPIDAT可直接写(右对齐),不建议直接读。 发送时是先移出最高位,接收时是先接收最低位。 SPI可工作于全双工或半双工。 主处理器 从处理器 主从式微处理器间的SPI连接

SPI的中断 SPI中断控制和状态位: 提示:SPISTS.7和SPISTS.6共享一个中断向量SPIRXINT。 SPI中断使能位(SPICTL.0):1-使能中断,0-禁止中断 当中断使能置位,且满足中断条件时,产生相应的中断。 SPI中断标志位(SPISTS.6):只读,由硬件设置。 指示SPI接收器中已经存放字符可以被读取或已完成指定长度的数据发送。 该位置位时已接收数据送入SPIRXBUF,当DSP读SPIRXBUF中的数据后自动清除中断标志。 超时中断使能位(SPICTL.4):1-使能中断,0-禁止中断 接受超时中断标志位(SPISTS.7):新的字符接受完成后,前一个字符还未读取,则置位中断标志。该标志位必须由软件清除。 SPITXINT仅用于SPI FIFO模式,标准模式下仅用SPIRXINT一个中断向量。 标准模式下需要在ISR中判断是SPI中断还是超时中断。 提示:SPISTS.7和SPISTS.6共享一个中断向量SPIRXINT。

数据格式 SPICCR.3~SPICCR.0确定了字符的位数(1~16); 当数据写入SPIDAT和SPITXBUF寄存器时必须左对齐; 当数据从SPIRXBUF读取时,必须是右对齐; SPIRXBUF中包含最新接收的字符,以及上次接收且已移位到左边的位。 例1:发送数据长度为1,SPIDAT当前值为737BH,数据格式见下图。 7 3 7 B 因为数据长度为1位,因此,接收一位就将SPIDAT中数据送SPIRXBUF。 与SCI不同,没有起始位、停止位和校验位等,只有数据位。

波特率设置 波特率的计算方法: 1)当SPIBRR=3~127时: SPI波特率=LSPCLK/(SPIBRR+1) 主模式下,SPICLK引脚为通信网络提供时钟,时钟频率≤LSPCLK/4。 从模式下,SPICLK引脚接收外部时钟信号,时钟频率≤ LSPCLK/4。 波特率的计算方法: 1)当SPIBRR=3~127时: SPI波特率=LSPCLK/(SPIBRR+1) 2)当SPIBRR=0、1、2时: SPI波特率=LSPCLK/4 SCI的波特率最大值为LSPCLK/16,且需要包含额外的起始位、停止位等。 显而易见,SPI无法工作于较低的波特率,因此仅适于短距离的高速通信。 例2:假定LSPCLK=75MHz,试确定SPI的波特率范围。 SPI波特率最大值:LSPCLK/4=18.75MHz SPI波特率最小值:LSPCLK/128=0.586MHz SCI的波特率范围? LSPCLK/[(2~65536)×8]

SPI的时钟模式 SPI时钟控制方式选择 SPI支持4中不同的时钟模式: 时钟极性选择位(SPICCR.6)选择时钟上升或下降沿有效; 时钟相位选择位(SPICTL.3)选择是否有半个周期的时钟延迟。 SPI时钟控制方式选择 SPICLK时钟方式 极性选择 相位控制 工作方式描述 无相位延迟的上升沿 上升沿发送,下降沿接收 有相位延迟的上升沿 1 上升沿前的半个周期发送数据,上升沿接收 无相位延迟的下降沿 下降沿发送,上升沿接收 有相位延迟的下降沿 下降沿前的半个周期发送数据,下降沿接收 灵活的时序设置便于和多种串行外设接口。 下面举例说四种时钟模式。

SPI的时钟模式波形 数据长度:8位 00 01 10 11 提示:某一种SPI接口的外设芯片可能支持几种时钟模式,对于实验中采用MAX525芯片,测试一下支持那几种时钟模式。 T R

数据传输举例 数据传输过程说明: 给出的例子中SPI数据长度为8位,F2812的数据长度为16位; 在主控制器将数据写入SPIDAT来启动传输前,从控制器必须处于使能状态,且将待发数据写入SPIDAT; 当读取SPIRXBUF中数据时,自动清除中断标志位; 只有一次完整的发送结束,SPIDAT中的数据才送入SPIRXBUF中; 本例中设定字符长度为5位,共主/从控制器间共进行两个字符的传送。 状 态 主控制器(DAT/RXBUF) 从控制器(DAT/RXBUF) 第一次发送前 01011000B--58H 11010000B--D0H 第一次发送后 00011010B--1AH 00001011B--0BH 第二次发送前 01101100B--6CH 01001100B--4CH 第二次发送后 10001001B--89H 10001101B--8DH SPIDAT寄存器为16位,这里为了简化时序图,采用了8位方法。 具体传输过程见下面的时序图。

数据传输举例 字符长度5位 A、从控制器将D0H写入到SPIDAT,等待主控制器移出数据; 4CH 从SPI 主SPI 58H 6CH A、从控制器将D0H写入到SPIDAT,等待主控制器移出数据; F、从控制器将4CH写入SPIDAT中等待主控制器移出数据; G、主控制器将6CH写入SPIDAT中来启动发送过程; B、主控制器将从控制器的/SPISTE引脚拉低; H、主控制器从SPIRXBUF中读取1AH,清中断标志; C、主控制器将58H写入SPIDAT来启动发送过程; 发送时字符右对齐,故为7-3位,实际为15-11位。 两次均为全双工收发。 D、第一个字节发送完成,置中断标志; I、第二个字节发送完成,置中断标志; E、从控制器从它的SPIRXBUF中读取0BH,清除中断标志; J、主从控制器分别从各自的SPIRXBUF中读取89H和8DH; K、主控制器将从控制器的/SPISTE引脚置高电平。

6.3 通过SPI接口扩展外设 MAX5253的主要特点: 串行数据格式 F2812与MAX5253间的SPI接口 四个12-bit电压输出DACs 单3.0-3.6V电源供电(0.82mA) 典型建立时间12µs SPI兼容串行外设接口 时钟频率可达10MHz /CL、/PDL、UPO引脚 对于DAC芯片MAX5253而言,通常无需连接引脚SPIMISO。 而对于ADC芯片,通常无需连接SPIMOSI引脚。 DSP 串行数据格式 F2812与MAX5253间的SPI接口

多个SPI外设的扩展方法 菊花链式 共享总线式 16个SPICLK 16个SPICLK 16个SPICLK 菊花链式传输时间较长,但只需一个片选信号。 共享总线式各个SPI芯片的传输时间相同,但每个芯片需一个IO引脚作为片选。 基于SPI接口的多点温度检测。

DSP与MAX5253的接口电路 VOUTx=3.0V×NB/4096 MAX5253配置为单极性输出方式 CPLD专门用于DAC的异步清零,可直接由复位信号控制。 UPO-用户可编程的逻辑输出。

MAX5253的编程命令 MAX5253的编程命令 方法1 方法2 方法1:可以先将数据装载到输入寄存器,然后一起更新DAC寄存器;

MAX5253接口时序 MAX5253的时序图(仅输入部分) 数据传送过程,/CS必须保持低电平; 提示:SPICTL中的TALK位控制/SPISTE引脚电平;若TALK=1,使能发送,且移位过程/SPISTE保持低电平。 每个数据位在SCLK的上升沿采样并送入DAC的移位寄存器; 数据在/CS的上升沿被锁存到MAX5253的输入或DAC寄存器; /CS保持高电平的脉冲宽度必须大于100ns,即两次发送的时间间隔要大于100ns; MAX5253的最高时钟频率10MHz。 对于本例,SPI必须设置为16位数据格式。 MAX5253的时序图(仅输入部分)

MAX6629-SPI接口的数字温度传感器 DSP MAX6629与F28×的接口电路 SPISOMI SPISTE SPICLK MAXIM类似的温度传感器芯片很多。 教材6.7.2节介绍了一种温度传感器芯片ADT7301:13位,-20~150℃ MAX6629与F28×的接口电路

MAX6629的接口时序和数据格式 /CS上升沿启动转换,高电平必须保持300ms以便完成转换; 转换结果为16位(D0、D1未定义): D15位符号位 D14-D3为数据 D2位验证位 温度传感器的转换速率均较低。 D0、D1位未定义。 MAX6629的接口时序图

采用XINTF扩展的DAC接口 AD7835 PQFP-44 DB:14 AB:3 MAX5253 SSOP-20 CB:4 DSP与MAX5253的信号线数据为3-4,而通过XINF需要21根信号线。 SPI串行接口电路简单,芯片引脚数目少,功耗略低,尺寸小。 XINTF并行接口速率高,F2812可达75MHz×16位。 SSOP-20 CB:4 XINFT:21

6.4 软件编程与实例 当系统复位后,SPI外设模块配置为如下的缺省状态: 1)配置为从模式(Master/Slave=0); 2)禁止发送功能(TALK=0); 3)在SPICLK信号的下降沿输入的数据被锁存(00); 4)字符长度为1位; 5)禁止SPI中断; 6)SPIDAT中的数据复位为0000H; 7)SPI模块引脚 被配置为通用输入。 复位后SPI接口不工作。使用SPI接口必须使能SPI时钟。 本节针对实验系统中通过SPI接口扩展的MAX5253芯片,介 绍软件SPI的初始化和软件编程。

SPI的配置和操作 为配置SPI模块,应完成以下操作: 1)清零SPI SW RESET位(SPICCR.7),软件复位SPI; 式、引脚功能; 3)置位SPI SW RESET位,使SPI退出复位状态,进入工 作状态; 4)写数据到SPIDAT或SPITXBUF, (主模式下就启动通信过程); 5)数据传输结束后(SPISTS.6=1),读取SPIRXBUF中 的数据。 初始化过程见下面的函数InitSpi()。 提示:通信过程不要改变SPI的设置,以免产生不期望的事件.

SPI的初始化 void InitSpi(void) { EALLOW; GpioMuxRegs.GPFMUX.all = 0x000F; //SPI引脚配置为外设模式 EDIS; SpiaRegs.SPICCR.all = 0x0F; //软件复位,上升沿输出,字符长度16位 SpiaRegs.SPICTL.all = 0x0F; //时钟延迟半个周期,主模式,发送与中断使能 SpiaRegs.SPIBRR = 0x07; //波特率=150/4/8=4.69MHz SpiaRegs.SPICCR.all = 0x8F; //退出复位状态,准备接收、发送字符 PieCtrl.PIEIER6.bit.INTx1 = 1; //使能SPI接收中断 PieCtrl.PIEIER6.bit.INTx2 = 1; //使能SPI发送中断,(仅用于FIFO模式) IER |= M_INT6; //使能PIE组6中断 ClearSPI[0]=0x01; //*ClearSPI=(volatile unsigned int *)0x80006; } 可以时序分析和实验测试MAX5253可以采用那些时钟模式。 也可以设置不同的波特率,但要小于10MHz。

状态查询 当一个字符写入SPITXBUF时,该位置位。 当字符全部位装入串行移位寄存器SPIDAT 中后,该位被清除。 unsigned int Spi_TxReady(void) { unsigned int i; if(SpiaRegs.SPISTS.bit.BUFFULL_FLAG == 1) { i = 0; } else { i = 1; } return(i); } unsigned int Spi_RxReady(void) { unsigned int i; if(SpiaRegs.SPISTS.bit.INT_FLAG == 1) { i = 1; } else { i = 0; } return(i); } 如果使用中断方式,标准SPI模式下只能使用SPIRX中断,在ISR中判断到底发生了什么事件。 当整个字符移入或移出SPIDAT寄存器, 该位置位,已接收的数据送SPIRXBUF。 如果SPI中断使能,会引起一个外设中断。 响应中断或读取SPIRXBUF会复位该位。

MAX5253测试程序 查询方式实现四通道DAC固定电压输出. void main(void) { InitSysCtrl(); //初始化系统,使能SPI时钟 DINT; IER = 0x0000; IFR = 0x0000; InitPieCtrl(); //初始化PIE控制寄存器 InitPieVectTable(); // 初始化PIE参数表 InitSpi(); EINT; // spi initialization; for(;;) { if(Spi_TxReady() == 1) SpiaRegs.SPITXBUF =0x1400; delay_loop(); if(Spi_TxReady() == 1) SpiaRegs.SPITXBUF =0x5800; if(Spi_TxReady() == 1) SpiaRegs.SPITXBUF =0x9C00; if(Spi_TxReady() == 1) SpiaRegs.SPITXBUF =0xDFFF; if(Spi_TxReady() == 1) SpiaRegs.SPITXBUF =0x4000; } 注意在InitSysCtr()中使能SPI时钟。

应用DAC芯片产生周期性波形 通过软件编程可以使DAC产生任意波形、幅度和频率的信号,如三角波、方波、锯齿波、三角函数及其它任意函数。如y(t)=2×COS(200t)×SIN(100t)。 以产生锯齿波为例: 通过定时器中断或软件延迟,使DAC的模拟输出线性递增,在一个波形周期后复位为零,重新开始下一个周期。 目前虚拟仪器和DDS芯片采用数字合成波形,灵活性很强,但不易产生高频信号,如高于10MHz的信号。 ∆t T= n×∆t T

改变周期性波形的频率和幅值 如何改变波形周期? 1)改变定时器时间间隔 2)改变每个周期合成波形的数字量数目 如何改变幅值? 大家可以思考一下,是否还有其它方法来改变信号的周期和幅值。 如何改变幅值? 将每一时刻的数字量乘 一个比例系数或直接改变前后时刻的数字增量。 MAX5253的数字量范围:0-4095,输出模拟电压0-3V

正弦波形的产生 软件产生正弦波的方法主要有两种: 1)直接使用SIN函数--double sin(double x) 需要在头文件中include “math.h”,并且需要注意SIN函数的自变量应该是DOUBLE型的变量。 2)使用查表方法:查表方法的计算量小,占用CPU的时间少。 大家可以思考一下,是否还有其它方法来改变信号的周期和幅值。 实验中12位DAC的数字量范围为0-4095,因此一个正弦波周期最多包含4096个点。 实验中DAC芯片的输出电压范围为0-3V,因此输出的周期波形存在直流偏置。 33

思考题 与SCI接口相比,SPI接口有何特点? 与外部扩展接口(XINF)相比, SPI接口有何特点? 采用DAC芯片和微处理器产生周期信号波形的方法也称作直接数字合成(DDS),与采用振荡器产生的波形(如文氏电桥正弦波振荡器)相比,DDS方法有何优缺点?