DSP课件第九章TMS320LF240x片内外设
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、程序举例
(1)IOPx0~ IOPx7(x=A、B、C、E、F)轮流设置低电平输出
(1)WD计数寄存器(WDCNTR)——地址7023h
8位WD计数寄存器存放WD计数器的当前值D7~D0。WDCNTR 是一个只读寄存器,复位后为0,写寄存器无效。由预定标器的输出 提供计数时钟。
(2)WD复位关键字寄存器(WDKEY)——地址7025h
当55h及紧接其后的AAh(复位关键字)写入WDKEY时,将清除 WDCNTR。 其 他 任 何 值 的 结 合 写 入 或 写 入 任 何 值 都 不 能 清 除 WDCNTR。
第9章 TMS320LF240x片内外设
9.1 看门狗(WD)定时器模块
看门狗(WD)定时器模块用来监视软件和硬件操作,在软件进入 一个不正确的循环或者CPU出现暂时性异常时,WD定时器溢出以产 生一个系统复位。大多数芯片的异常操作和CPU非正常工作的情况 都能通过看门狗的功能清除和复位。因此看门狗的监视功能可增强 CPU的可靠性,以确保系统运行的安全和稳定。
1、I/O复用控制寄存器
I/0复用控制寄存器用来控制多路选择器,选择功能复用引脚是作 为特殊功能(MCRx.n=1)还是通用I/0功能(MCRx.n=0)。
2、数据和方向控制寄存器
1、端口A数据和方向控制寄存器 (PADATDIR) ——地址7098h D15~D8 AnDIR——定义IOPAn(n:7~0)引脚的方向和电平。
8 位 WDKEY 是 一 个 可 读 写 寄 存 器 , 复 位 后 为 0 。 读 该 寄 存 器 WDKEY并不返回最近的关键字值,而是返回WDCR的内容。
(3)WD定时器控制寄存器(WDCR)——地址7029h
8位WDCR用来存放看门狗配置的控制位。
2、 看门狗(WD)定时器的操作
( 1 ) 、 WD 计 数 器 ( WDCNTR) 溢 出 或 向 WD 复 位 关 键 字 寄 存 器 (WDKEY)写入一个不正确的值
9.2 数字输入/输出(I/O)模块
LF240x采用哈佛结构,有3个独立的空间:程序空间、数据空间和 I/O空间。3个空间对外共用一个16位地址总线和一个16位数据总线,并 以3个片选线、和区分不同空间。其中,I/O空间可接外部设备,是 LF240x与外部设备联系的接口。
数字I/O模块也具有连接外部设备的功能,是LF240x除I/O空间外另 一个与外部设备联系的接口。
控制两种功能的选择。
(2)数据和方向控制寄存器(PxDATDIR,x=A,B,C,D,E,F)
当引脚作为通用I/O时,用来控制选择各I/O引脚的数据方向(输入 还是输出)和当前引脚对应的电平(高或低)。读通用I/O引脚的电平或 向引脚输出电平,实际上是对相应的寄存器(PxDATDIR)进行读写操 作。
1、 看门狗(WD)定时器模块的结构
看门狗(WD)定时器模块的结构如下图所示。WD模块的所有寄 存器都是8位长,该模块与CPU的16位外设总线的低8位相连。
看 门 狗 定 时 器 的 时 钟 ( WDCLK) 是 一 个 低 频 时 钟 , 由 CPU 的 CLKOUT产生。当CPU处于低功耗模式IDLE1和IDLE2时,仍能保证 看门狗继续计数。仅当看门狗使能时,WDCLK才有效。WDCLK的 频率由下式计算:
LF240x有41个数字I/O口,其中绝大多数具有另一功能,“另一功能” 都是SCI、SPI等片内外设模块的功能引脚。数字I/O口是第二功能。
LF240x有41个数字I/O口,所有这些共享引脚的功能可通过数 字I/O模块中的9个16位控制寄存器来控制。
控制寄存器可以分为两类。
(1) I/O复用控制寄存器(MCRx,x=A,B,C)
当系统不正常时,也就不能给WDKEY写入正确值使WDCNTR清0, 则WDCNTR将计满溢出,并在一个WDCLK(或用WDCLK除以预定标因 子)时钟后发生系统复位操作。
任何其他次序的写入55பைடு நூலகம்和AAh值或写入其他值都不能使WDCNTR 清0,从而使系统复位。
(2)、使用WD检查位 WD定时器控制寄存器(WDCR)的检查位(WDCHK2~WDCHK0)一直 和一个二进制常量101相比较。如果WD检查位与这个值不匹配,就会产 生一个系统复位。所以一旦软件执行了错误的WDCR写操作或一个外部 激励干扰(例如电压尖峰或其他干扰源)破坏了WDCR的内容,即除101以 外的任何值写到WDCR的D5~D3位都会产生一个系统复位。 注意,向WDCR写入值时必须包括写到D5~D3的值101。 当系统上电复位时,看门狗就被使能。WD定时器被缺省为最快的 WD速率。一旦复位由内部释放,CPU就开始执行程序,同时WD定时器 就开始计数。因此为了避免过早发生复位,应在程序刚开始时就对WD进 行配置。
0 定义对应的引脚IOPA7~IOPA0为输入。 1 定义对应的引脚IOPA7~IOPA0为输出。 D7~D0 IOPAn——I/O引脚名(n:7~0)。 如果AnDIR=0即引脚IOPAn(n:7~0)为输入时, 0 对应的I/O引脚输入的值为低电平。 1 对应的I/O引脚输入的值为高电平。 如果AnDIR=1即引脚IOPAn(n:7~0)为输出时, 0 设置相应的引脚使其输出为低电平。 1 设置相应的引脚使其输出为高电平。
WDCLK=(CLKOUT)/512 当CLKOUT=40MHz时,WDCLK=78125Hz是一个典型值。 除 HALT 低 功 耗 模 式 外 , 无 论 片 内 任 一 寄 存 器 的 状 态 如 何 。 WDCLK都将使能WD定时器功能。
WD模块的结构框图
WD模块有3个控制寄存器对其进行控制和管理:
当系统正常工作时,WD计数器WDCNTR以WD控制寄存器所选的 速 率 进 行 增 计 数 , 在 WDCNTR 溢 出 前 , 只 要 给 复 位 关 键 字 寄 存 器 WDKEY 写 入 一 个 正 确 值 ( 先 写 入 5 5 h, 紧 接 着 写 入 AAh) 就 可 以 使 WDCNTR清0,即从0开始计数而不会产生溢出。