




免费预览已结束,剩余122页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
F2812模 数转换器 ADC 模数转换器模块的结构 2812的ADC模块是一个12位分辨率的 具有流水线结构的模数转换器 具有16个通道 对于每个序列发生器 一旦转换结束 已选择采样的通道值就会被保存到各个通道的结果寄存器中去 总共有16个结果寄存器ResultReg0 ResultReg15 用于分别保存16个通道的转换结果 2812内部ADC的特点 模数转换模块应用实例 ADCINA2 ADCINA3 程序设计 F2812硬件电路设计 F2812封装形式与引脚定义 引脚说明 不同硬件模块的设计 1 时钟电路 F28x系列的芯片提供了两种不同的产生时钟方案 利用电路板上的内部晶体振荡器或者利用外部时钟 基本外部输入的时钟频率是在20MHz 35MHz范围内 芯片上的时钟锁环既 PLL 可以来倍频输入的时钟频率连接到CLKIN引脚上的外部时钟可以和CPU工作的最大频率是一样的 CPU工作频率的范围很大 将来的所有外设的时钟信号都是从CPU时钟信号得来 一般来说对于时钟信号而言发生概率最大的频率被选择为获取最大的运行速度然而电源的消耗是和CPU的时钟频率成线性关系 内部晶振和外部晶振 时钟产生电路首先要考虑的是利用内部的晶振还是外部时钟源 或其它系统中的其它设备 一个基本的选择标准是成本问题 一个晶振和内部振荡需要的一些器件通常要比外部振荡器便宜 因此利用晶振和内部的振荡电路是最好的选择 除非需要系统的其它设备来提供同样的时钟 因为不推荐使用利用外加的器件和振荡电路连接在一起的方法 所以唯一的选择是利用F28xx时钟输出或利用宽脉冲调制时钟连接到系统中其它设备时钟发生器 然而DSP芯片不是经常在晶体的频率下工作 所以如果系统中的其它设备需要同样的时钟利用外部振荡器是比较简单的 通常也是大家喜欢采用一种方法 F28xx F28xxx芯片的内部振荡电路能够把晶振和X1 X2引脚直接相连 X1引脚通常是数字参考电压 VDD X2引脚是内部振荡的输出 晶振直接和X1 X2引脚直接相连 如果引脚X2不用 必须悬空 F281x芯片有相同的引脚X1和XCLKIN a 利用内部振荡器 图3显示了利用晶振来连接的外部电路上拉电容的大小根据等式而定 它和两个外部电容有关 外部时钟的模式控制着是否使用内部的晶振 当使用内部的振荡器时选择让内部的晶振可用的时钟模式 有效的负载电容C Load 在振荡电路中是C1和C2并联的等效电容 正确的有效负载电容对于正确的运行频率是非常重要的对于不同的负载电容的值都有不同的晶振与其对应但是内部的数字控制器振荡器对于太高或太低的负载电容是没法工作的可以从晶振的厂商的数据手册得到更多的信息 并联谐振模式需要的负载电容大概是12pF等效电阻是30 60W 由于PCB板布局和数字控制器焊锡的兼容性问题 有效的C1和C2的值一般不大于5pf 布局电路板也是非常重要的方面 如果想要得到准确的频率控制器那么准确的离散电容值要根据利用频率计数器测量的电容和频率的准确关系来定 b 利用外部振荡器 为了选择合适的外部振荡器需要考虑频率 稳定性 时效性 上升和下降时间 占空比 信号电平等问题设计者必须考虑到时钟偏差的问题 必须注意事项是 只有F28xxx芯片能接收VDD 1 8V 1 9V 或者3 3V的外部时钟的电压 F281x时钟信号应该在0和电压值之间变换 F280 x和F28xxx连接外部振荡器的输出如图4所示X1或XCLKIN引脚必须连接地如果它们都被悬空的话 那么CLKOUT引脚的频率就会不正确 数据控制器也不能正常工作 F281x芯片设备选择外部时 钟振荡器的电压时电压范围在0 V DD 0 1 8V 1 9V 之间 2 电源电路设计 采用双电源供电 3 通用输入 输出 GPIO 绝大部分是多功能复用引脚 通过GPIOMUX寄存器来选择配置具体的功能 可以独立操作也可以作为外设I O信号 通过GPxMUX寄存器配置 使用 如果引脚工作在数字量I O模式 通过方向控制寄存器 GPxDIR 控制数字量I O的方向 并可以通过量化寄存器 GPxQUAL 量化输入信号 消除外部噪声信号GPIO多路复用器的各寄存器如下 通用输入 输出 GPIO GPIOA功能选择控制寄存器 GPIOB功能选择控制寄存器 GPIOD功能选择控制寄存器 GPIOE功能选择控制寄存器 GPIOF功能选择控制寄存器 GPIOG功能选择控制寄存器 GPIOA方向控制寄存器 GPIOB方向控制寄存器 GPIOD方向控制寄存器 GPIOE方向控制寄存器 GPIOF方向控制寄存器 GPIOG方向控制寄存器 GPIOA输入量化寄存器 GPIOB输入量化寄存器 GPIOD输入量化寄存器 GPIOE输入量化寄存器 C28xGPIO寄存器结构 如果多功能引脚配置成数字I O模式 芯片将用寄存器来对相应的引脚进行操作 GPxSET寄存器设置每个I O信号GPxCLEAR寄存器清除每个I O信号GPxTOGGLE寄存器反转触发各个I O信号GPxDAT寄存器读写各个I O信号 GPIO数据寄存器如下 GPIOA数据寄存器 GPIOB数据寄存器 GPIOD数据寄存器 GPIOA置位寄存器 GPIOB置位寄存器 GPIOD置位寄存器 GPIOA清零寄存器 GPIOB清零寄存器 GPIOD清零寄存器 GPIOA取反寄存器 GPIOB取反寄存器 GPIOD取反寄存器 GPIOE数据寄存器 GPIOF数据寄存器 GPIOG数据寄存器 GPIOE置位寄存器 GPIOF置位寄存器 GPIOG置位寄存器 GPIOE清零寄存器 GPIOF清零寄存器 GPIOG清零寄存器 GPIOE取反寄存器 GPIOF取反寄存器 GPIOG取反寄存器 GPIO的数据输入功能和外设输入功能的路径总是畅通的 而数字输出功能和外设输出功能要通过多路开关切换 引脚的输出缓冲器总是连回到输入缓冲器 所以作为数字I O使用时 输出数字信号可能会传到外设输入 从而意外触发中断 因此 当引脚配置成数字I O时 引脚相应的外设功能 包括中断 必须被禁止 GPIO的功能选择框图 C28xGPIO功能框图 多路复用器的寄存器 GPIO口通过功能控制 方向 数据 设置 清除和反转触发寄存器来控制1 GPxMUX 功能选择寄存器 配置I O工作在外设操作模式或数字量I O模式 在复位使所有GPIO配置成I O功能 如果GPxMUX bit 0 配置为I O功能 如果GPxMUX bit 1 配置为外设功能 I O的输入功能和外设的输入通道总是被使能的 输出通道是GPIO和外设公用的 因此 引脚如果配置成为I O功能 就必须屏蔽相应的外设功能 否则 将会产生随机的中断信号 2 GPxDIR 方向控制寄存器 用来配置I O的方向 输入 输出 复位时 所有GPIO为输人 如果GPxDIR bit 0 引脚配置为数字量输人 如果GPxDIR bit 1 引脚配置成数字量输出 3 GPxDAT 数据寄存器 如果I O配置为输入 反映当前经过量化后I O输人信号的状态 如果I O配置为输出 向寄存器写值设定I O的输出 如果GPxDAT bit 0 且设置为输出功能 将相应的引脚拉低 如果GPxDAT bit 1 且设置为输出功能 将相应的引脚拉高 4 GPxSET 设置寄存器 是只写寄存器 任何读操作都返回0 如果相应的引脚配置成数字量输出 写1后相应的引脚将被拉高 写0时没有影响 如果GPxSET bit 0 没有影响 如果GPxSET bit 1 且引脚设置为输出 将相应的引脚置成高电平 5 GPxCLEAR 清除寄存器 是只写寄存器 任何读操作都返回o 如果相应的引脚配置成数字量输出 写1后相应的引脚将被拉低 写0时没有影响 如果GPxCLEAR bit 0 没有影响 如果GPxCLEAR bit 1 且引脚设置为输出 将相应的引脚置成低电平 6 GPxTOGGLE 反转触发寄存器 是只写寄存器 任何读操作都返回0 如果相应的引脚配置成数字量输出 写1后相应的引脚信号将被取反 写0时没有影响 如果GPxTOGGLE bit 0 没有影响 如果GPxTOGGLE bit 1 且引脚设置为输出 将相应的引脚取反 7 GPxQUAL量化寄存器每个I O接口都有一个输入量化寄存器 该寄存器可读可写 可以设置D7 D0位改善输入信号 去除噪声 当GPIO作为数字I O时 GPxQUAL寄存器用来量化采样周期 如采样窗口是6个采样周期宽度 那么只有6个采样数据相同时输出才会改变 这个功能可以有效的消除毛刺脉冲 干扰信号 对输出信号的干扰 4 3GPIO应用举例 8 8LED点阵控制 4 3 1硬件电路设计 74164为串行输入并行输出移位寄存器 设计中 选择两片74164分别控制点阵模块的行和列 控制数据从DSP端口输出 其中 GPIOF0输出数据与U1的74164的A端口相连 GPIOF1与B口连接 两个端口用来输出对点阵进行显示控制的数据 GPIOF2输出模拟时钟脉冲信号 与74164的CLK引脚相连 GPIOF3连接CLR清零端 DSPF2812的GPIOB0 GPIOB3与另外一片74164的A B CLR CLK对应相连 4 3 1 18 8点阵内部电路 点阵内部为排列的8 8个发光二极管 每一个二极管都在行线和列线的交点处 要同时受到行和列的控制才能点亮 二极管阵列的正向端分别由COL1 COL8端口控制 负向端通过端口ROW1 ROW8控制 在驱动某个点阵点点亮时 需要同时控制该发光二极管正端接高电平 负端接低电平即可 例如 要使得COL4和ROW4交点处二极管点亮 则需要在端口COL端输入数据 00001000 08H 在ROW端输入 00001000 08H 4 3 1 2串行输入并行输出移位寄存器74164功能 CLEAR为清零端 CLOCK为时钟脉冲输入端 A B端口为串行输入数据引脚 Q0 Q7为数据输出引脚 从真值表可以看出 CLEAR为逻辑低电平时 无论其他引脚电平信号如何 从QA QH端口输出均为低电平 实现输出清零 A B输入信号为相与的关系 相与后的结果送入内部RS触发器 在CLOCK脉冲信号的上升沿 采样输入脚A B相与后的结果 作为内部RS触发器的输入信号 根据输入数据触发输出 从QA端口输出 在QA端口输出更新数据时 QB端口输出数据为QA端口更新前的QAn QC端口输出数据为QBn 依次类推 4 3 2程序设计 主程序主要包括系统初始化 中断向量初始化 设置GPIO端口 控制数据传输几个步骤 4 3 2 1设置GPIO端口的配置函数 voidGpio select void EALLOW GpioMuxRegs GPBMUX all 0 x0000 设置B组端口为GPIO功能GpioMuxRegs GPBDIR all 0 xFFFF 设置B组端口为输出端口GpioMuxRegs GPFMUX all 0 x0000 设置F组端口为GPIO功能GpioMuxRegs GPFDIR all 0 xFFFF 设置F组端口为输出端口EDIS 需要注意 EALLOW 在DSP28 Device h头文件中 通过 defineEALLOWasm EALLOW 在C语言主函数中嵌入汇编语言指令 汇编指令 EALLOW 其含义为开放存储器映像寄存器 设置该命令后 可以对MMR内容进行修改 当需要配置或修改MMR内容时 必须先写入EALLOW汇编指令 反之 如果不首先写入EALLOW汇编指令 无法完成对相应MMR内容的修改 EDIS 为结束修改MMR的汇编命令 当MMR配置完成后 需要写入该命令 4 3 2 2控制数据串行输出函数 voidsendto1 unsignedcharkdab unsignedchari CLK1 0 控制时钟脉冲引脚输出设置为低电平for i 0 i 1 数据右移 提取下一位串行数据 74164为串行输入 并行输出移位寄存器 控制点阵的数据需要从DSP的gpio端口串行输出 为满足74164工作时序 采用GPIO端口模拟74164的工作时序 从DINC输出串行输出数据 同时 在CLK1脚模拟控制脉冲信号 4 3 2 3输出字符与字模阵列 在点阵模块中字符的显示 应用字模生成软件获得显示字符的字模 采用动态扫描的控制方式显示 以在点阵模块显示字符 中 为例 首先采用字模提取软件获得字符的字模 中 字的字模组合为 10H FEH 92H FEH 10H 10H 10H 10H 在控制显示时 采用动态扫描的显示方式 首先将字模中二进制数10H送入点阵模块的行扫描数据输入端口 然后在列扫描线上输出控制第一行点阵二极管点亮的数据 01111111 则点阵中第一行的第四个二极管点亮 显示 中 字上面的一点 接下来 将 FEH 送入点阵模块的行扫描数据输入端口 然后在列扫描线上输出控制第二行点阵二极管点亮的数据 10111111 此时 第二行的1 7二极管点亮 显示出 中 字的上面一横 之前第一行的第四个二极管灭 继续 行端口输入 92H 列端口输入控制第三行二极管点亮的控制信号 11011111 于是 在第三行上1 4 7二极管亮 其他行灭 依次类推 直到第八行显示 在编写程序中 采用数组数组dispdata 存放行值 用数组dispbit 存放列值 dispdata 8 0 x10 0 xFE 0 x92 0 xFE 0 x10 0 x10 0 x10 0 x10 dispbit 8 0 x7f 0 xbf 0 xdf 0 xef 0 xf7 0 xfb 0 xfd 0 xfe 用两个函数sendto1 dispbit 和sendto2 dispdata 分别发送数据 由此显示出字模 调整延时程序 voidDELAY unsignedlongk j for k 0 k 10 k for j 0 j 100 j 由于扫描速度很快 扫描8列的数据在人眼看来是同时的 所以就可以看到8 8LED字模中显示的字模 4 3 3参考主程序 include DSP28 Device h include DSP28 Globalprototypes h 端口GPIOF0用DINA表示 define 为宏定义 以下程序中用字符 DINA 代表成员变量GpioDataRegs GPFDAT bit GPIOF0 增加程序的可读性 其他端口定义用法相同 defineDINAGpioDataRegs GPFDAT bit GPIOF0 defineDINBGpioDataRegs GPFDAT bit GPIOF1 defineCLK2GpioDataRegs GPFDAT bit GPIOF2 defineCLEAR2GpioDataRegs GPFDAT bit GPIOF3 defineDINCGpioDataRegs GPBDAT bit GPIOB0 defineDINDGpioDataRegs GPBDAT bit GPIOB1 defineCLK1GpioDataRegs GPBDAT bit GPIOB2 defineCLEAR1GpioDataRegs GPBDAT bit GPIOB3 程序中引用的函数定义 voiddelay loop void 点阵动态显示控制的延时程序voidGpio select void GPIO端口设置程序voidsendto1 unsignedcharkdab 串行数据输出函数 输出行扫描数voidsendto2 unsignedchardat 串行数据输出函数 输出列扫描数voidDELAY void 定义变量数组 unsignedchardispdata 8 0 x10 0 xFE 0 x92 0 xFE 0 x10 0 x10 0 x10 0 x10 显示字符 中 字的行扫描数组unsignedchardispbit 8 0 x7f 0 xbf 0 xdf 0 xef 0 xf7 0 xfb 0 xfd 0 xfe 显示字符 中 字的列扫描数组unsignedcharkdab unsignedcharkdat 4 3 3参考主程序 主程序 voidmain void unsignedchari InitSysCtrl 系统初始化函数InitPieCtrl 初始化PIE模块到默认状态InitPieVectTable Gpio select 设置端口函数 初始化74164各控制引脚 CLEAR2 0 74164进行清零操作CLEAR1 0 74164进行清零操作CLEAR2 1 74164复位CLEAR1 1 74164复位CLK1 1 74164的CLOCK引脚置为高电平CLK2 1 74164的CLOCK引脚置为高电平DINA 1 74164数据输入端口置为高电平DINB 1 74164数据输入端口置为高电平DINC 1 74164数据输入端口置为高电平DIND 1 74164数据输入端口置为高电平while 1 sendto1 dispbit 0 sendto2 dispdata 0 DELAY sendto1 dispbit 1 sendto2 dispdata 1 DELAY sendto1 dispbit 2 sendto2 dispdata 2 DELAY sendto1 dispbit 3 sendto2 dispdata 3 DELAY GPIO端口配置函数 voidGpio select void EALLOW GpioMuxRegs GPBMUX all 0 x0000 设置B组端口为GPIO功能GpioMuxRegs GPBDIR all 0 xFFFF 设置B组端口为输出端口GpioMuxRegs GPFMUX all 0 x0000 设置F组端口为GPIO功能GpioMuxRegs GPFDIR all 0 xFFFF 设置F组端口为输出端口EDIS 行扫描数据串行输出函数 voidsendto1 unsignedcharkdab unsignedchari kdab dab CLK1 0 控制时钟脉冲引脚输出设置为低电平for i 0 i 1 数据右移 提取下一位串行数据 列扫描数据串行输出函数 voidsendto1 unsignedcharkdab unsignedchari kdab dab CLK1 0 控制时钟脉冲引脚输出设置为低电平for i 0 i 1 数据右移 提取下一位串行数据 外部扩展接口 外部扩展接口XINTF ExternalInterface F2812的XINTF采用异步非复用总线结构XINTF采用16位数据总线 可提供1M字的寻址空间 用于扩展外部存储器或并行的外设接口芯片 F2812不支持I O空间 当用户需要对片外设备进行操作时 可以使用XINTF接口 也可以使用哪个GPIO进行扩展 外部接口有哪些线 片选信号线数据总线地址总线读写使能信号线 以及其他信号线 外设接口描述 外部接口 XINTF 映射到5个独立的存储空间Zone0 Zone1 Zone2 Zone6 Zone7 当访问相应的存储空间时 就会产生一个片选信号 XINTF的5个空间共有3个片选引脚 其中Zone0 Zone1共用XZCS0AND1 Zone6 Zone7共用XZCS6AND7 Zone2单独使用片选信号 每个空间都可以独立地设置访问等待 选择 建立以及保持时间 同时还可以使用XREADY信号来控制外设的访问 外部接口的访问时钟频率由内部的XTIMCLK提供XTIMCLK可以等于SYSCLKOUT或SYSCLKOUT 2 3 2 1外设接口描述 16位数据总线 19位地址总线 写信号 低电平有效 读信号 低电平有效 读写控制信号 外设准备好 高电平有效 设定为微处理器模式或微计算机模式 低电平有效 有效时表明外设请求XINTF释放外部总线 即将地址 数据总线和宣统信号置为高祖状态 时钟输入引脚 当XINTF准许XHOLD的DMA请求时 该引脚输出低电平 表明扩展的外设可以驱动外部总线执行DMA操作 外部接口的访问 1 Zone2和Zone6Zone2和Zone6共享外部19条地址总线 Zone2的片选信号为XZCS2 Zone6的片选信号为XZCS6AND7因为两个区域采用不同的片选信号 所以对这两个区域的访问可以采用不同的时序 2 Zone0和Zone1Zone0和Zone1共用一个片选信号XZCS0AND1 采用不同的内部地址 Zone0的寻址范围是0 x002000 0 x003FFF Zonel的寻址范围是0 x004000 0 x005FFF 如果希望区分两个空间 需要增加其他控制逻辑在访问Zone0时 XA 13 1 XA 14 0 在访问Zonel时 XA l3 0 XA 14 1 外部接口的访问 3 Zone7Zone7是独立的地址空间 复位时 XMP MC 1 Zone7空间映射到0 x3FC000 复位后 通过改变寄存器XINTCNF2中的MP MC控制位 使能或屏蔽Zone7空间 如果XMP MC 0 则Zone7不能映射到0 x3FC000存储空间 而片上的ROM将映射到该存储空间 Zone7的映射与MC MC有关 而Zone0 Zonel Zonc2 Zone6总是有效的存储空间 与XMP MC状态无关 外部接口的访问 如果用户需要建立自己的引导程序 存放在外部空间 可以使用Zone7空间进行程序的引导 引导成功后 通过软件使能内部的ROM 以便可以访问存放在ROM中的数学表 BootROM映射到Zone7空间时 Zone7空间的存储器仍然可以访问 这是因为Zone7和Zone6空间公用一个片选信号XZCS6ANDCS7 外部接口的访问 XINTF配置寄存器组 3 2 3外部接口配置寄存器组 XINTF0时序寄存器 XINTF1时序寄存器 XINTF2时序寄存器 XINTF6时序寄存器 XINTF7时序寄存器 XINTF配置寄存器 XINTF块控制寄存器 XINTF修正寄存器 外部接口的应用 F2812片内提供了较大容量的Flash存储器 可以用来固化用户程序 一般用户无需再扩张非易失的程序存储器 但是由于Flash芯片的存取速度较慢 直接从Flash中运行用户程序时需要插入一定的等待周期 降低了DSP的执行速度 目前的DSP芯片均提供了上电引导功能 即上电时DSP内部固化的引导程序根据选定的引导模式 自动将用户代码从程序存储器Flash中加载到片内高速SARAM或扩展的SRAM中 然后在RAM中高速运行 由于片内RAM无需插入等待状态 因此 通常将用户程序加载到片内RAM中运行 当片内RAM容量不能满足需要时 或者需要保存较多的用户数据时 统称需要扩展外部存储器 由于DSP采用统一寻址方式 扩展的SRAM即可以用作程序存储器 上电时将部分代码从慢速的Flash存储器中加载到SRAM存储器中执行 也可以用于保存用户数据 例 通过XINTF扩展一片SRAM芯片CY7C1021V33 容量64KW 访问周期12ns 采用3 3V电源供电 外部接口的应用 CY7C1021V33真值表 DSP与SRAM的接口电路如图 F2812采用16位数据方式访问SRAM 地址空间位于Zone6 DSP高位地址A18 A16未参加译码 通常取A18 A16 000SRAM地址范围0 x100000 0 x10FFFF 外部接口的应用 无刷直流电机控制电路设计 基于TMS320F2812的无刷直流电机控制电路设计 无刷直流电动机的基本结构主要由电动机本体 转子位置传感器和功率电子开关电路组成的机电一体化系统 系统硬件电路结构 系统硬件电路结构 1 DSP电源供给与复位电路 系统硬件电路结构 2 电机驱动电源 功率驱
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 非织造布创新-洞察及研究
- 多媒体考古呈现-洞察及研究
- 小学科学实践活动方案
- 外墙瓷砖拆除合同(标准版)
- 电子商务分析工具协议
- 团队目标的合理化协议
- 送车位合同(标准版)
- 议事会合同(标准版)
- 劳动合同签订风险防范指南
- 房地产开发流程及合同管理规范
- 2024年安徽省泗县人民医院公开招聘护理工作人员试题带答案详解
- GB/T 22166-2008非校准起重圆环链和吊链使用和维护
- GB/T 12236-2008石油、化工及相关工业用的钢制旋启式止回阀
- 公共营养师三级模拟题
- GA/T 928-2011法庭科学线形痕迹的检验规范
- 《应用文写作与文献检索》课程教学大纲
- 鲫鱼解剖试验课件
- 社交网络分析
- (全科医学导论)4-全科医学的教育评价方法课件
- 烧结原料工技师实操考试题库(含答案)
- 大管棚施工记录表
评论
0/150
提交评论