实验目的
本节视频的目的是熟悉定时器的基本结构,学习看门狗定时器的功能和控制方法,并实现基于定时器中断方式控制程序。
实验原理
定时器
TMS320C6748有4个定时器/计数器,均可配置为64位计数器、两个独立32位计数器及自动重装32位计数器,可以产生周期中断DMA事件及外部事件。定时器/计数器还可以用于捕获外部输入信号边缘并计数。此外,定时器1还可以用作64位看门狗计数器。本实验使用的是定时器1。
定时器的功能
(1)定时
时钟源一般来源于DSP内部,当然也可以选择来自于外部。
(2)计数
可以利用它的功能来计算外部脉冲在一段时间内到来的次数,所以叫做计数器(记录外部脉冲的次数)。因为内部有一个计数的count,如果用作定时就是先输入一个数字,然后在来了一个时钟之后count自动减一。如果用成计数就是在一个脉冲到来之后count自动加一。
(3)看门狗
一些定时器设计有信号连接到内部器件的复位,因此可用于看门狗定时器模式。
定时器的特性
(1)64 位自增计数器
(2)定时器模式:
64 位通用定时器模式(低32位定时器叫Timer12,高32位定时器叫Timer34)
双32 位非链式通用定时器模式模式
双32 位链式定时器模式
看门狗定时器模式
(3)2种时钟源:
内部时钟
外部时钟/事件输入定时器的相连引脚
(4)3种工作模式:
一次工作(定时器运行一个周期然后停止)
持续工作(定时器在每个周期结束自动清零并继续工作)
持续工作周期性重载(定时器在每个周期自动获取重载寄存器的值并继续工作)
(5)产生 CPU 中断
(6)产生输出事件让设备复位(仅看门狗模式)
(7)产生 DMA 同步事件
(8)产生输出事件到定时器输出引脚(如果引脚可用)
(9)外部事件捕获相连的定时器引脚(如果引脚可用)
看门狗
看门狗,又叫watchdog timer,是一个定时器电路,由于芯片的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误、不在程序区、取出错误的程序指令等,都会陷入死循环,程序的正常运行被打断,由DSP控制的系统无法继续正常工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。
看门狗就是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号的电路。看门狗命令在程序的中断中拥有最高的优先级。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位,所以在使用看门狗时要注意清看门狗。
定时器的时钟源
时钟信号可分为内部时钟和外部时钟输入,定时器0和定时器1的时钟为PLL0_AUXCK(旁路时钟,24MHz),定时器2和定时器3默认状态下使用的时钟为PLL0_SYSCLK2(为系统频率的二分之一,228MHz),可通过定时器配置将其时钟设置为PLL1_SYSCLK2(可以避免因CPU主频变化对设备产生的不利影响)。
定时器时钟源由定时器控制寄存器(TCR) 时钟源 (CLKSRC12) 位选择。复位后,时钟源为内部时钟。两个时钟源都可以驱动定时器时钟:
• 设置 CLKSRC12 = 0 为内部时钟。
• 设置 CLKSRC12 = 1 为输入引脚 TM64P_IN12 外部时钟。
实验使用的是定时器1,定时器1时钟来源于PLL旁路时钟, 即晶体振荡器时钟24MHz。
所以看门狗时间间隔:T=计数周期*(1/24MHz) =0x07270E00/24000000s=5s
0x07270E00 是程序中设定的计数周期。在main.c的宏定义中设定。
程序流程设计中首先要初始化串口终端,接着进行定时器初始化,然后在串口终端输出打印信息,在主循环中等待等待输入字符,并复位看门狗定时器。
定时器配置源码
配置定时器的函数源码和函数使用说明可以查看timer.c。其中,第一个参数是定时器模块寄存器的基地址,第二个参数是用于配置定时器模块。
周期配置源码
配置定时器周期的函数源码和函数使用说明可以查看timer.c。其中,第一个参数是定时器模块寄存器的基地址,第二个参数是要设置周期的定时器,第三个参数是设置的周期大小。
看门狗定时器使能源码
配置使能看门狗定时器的函数源码和函数使用说明可以查看timer.c,参数是定时器模块寄存器的基地址。
定时器使能源码
配置复位看门狗定时器的函数源码和函数使用说明可以查看timer.c,参数是定时器模块寄存器的基地址。
操作现象
实验设备
本实验使用的硬件接口为UART2 RS232接口,所需硬件为实验板、仿真器、RS232 交叉串口母母线、USB转RS232串口线和电源。
硬件连接
(1)使用 RS232 交叉串口母母线和 USB 转 RS232 串口线连接实验板的UART2串口和电脑的 USB
口。
(2)连接仿真器和电脑的USB接口,
(3)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。
软件操作
设置串口调试工具:
(1)先在设备管理器查看串口的端口号;
(2)再设置串口调试工具,波特率设置为115200。
CCS操作:
导入工程,选择Demo文件夹下的对应工程
编译工程
将CCS连接实验箱并加载程序
点击运行程序,串口调试终端会打印提示信息,若在 5s 内无任何信息输入将复位系统。
由于在仿真加载模式下,复位后程序不会自动运行,故只会打印一次信息。若将程序烧写到NANDFLASH后,并在NANDFLASH档位启动系统,系统复位后程序会再次运行,将会持续打印提示信息。