热度 37
2012-11-19 20:45
3266 次阅读|
6 个评论
写在最前,不喜请略过。本博文的主要内容已在QQ空间、人人网、网易博客、百度空间等平台发表过,最近进行了排错和稍稍修改,作者为Mr_D_prince(斌斌-龙臻),也就是本人,前两者均为我在非技术论坛的昵称。在技术论坛我更喜欢newofcortexm3这个昵称,原因无他,我就是个技术新人。之所以文章类型为什么是整理,是因为博文的主要内容均来自TI相关的技术手册,我只是做了下解读或者整理。 用户可以通过 GPIO 限制选择寄存器来选择GPIO引脚的输入限制类型。主要由输入异步,仅与SYSCLKOUT同步,采用采样窗限制这几种限制类型。本博文主要讲第三种类型。 GPIO 控制寄存器 GPxCTRL(x=A,B,C) 为配置为输入限制的引脚指定了采样周期。采样周期介于限制采样周期之内,是相对于系统时钟周期的倍数,由该寄存器的QUALPRDn位来指定,一个采样周期可以用来配置8路输入信号,具体的配置请见表1。而 GPIO 限制选择寄存器 GPxQSELy(x=A,B,C;y=1,2) 指定了采样窗是 3 个采样点还是 6 个采样点。当有3个或6个连续的采样周期相同时,输入信号才会被采集。 表1: GPIO Port A Qualification Control (GPACTRL) Register Field Descriptions 以上介绍的两个寄存器主要是为 GPIO 的采样窗限制功能进行了必要的配置。下面我引入图 1 ( Qualification Using Sampling Window )和图 2 ( Input Qualifier Clock Cycles ),来使大家清楚地知道 GPIO 的输入限制是怎样完美的去除我们不需要的噪声的。 图1: Qualification Using Sampling Window 图2: Input Qualifier Clock Cycles 因为输入的信号时异步的,为了同步,在限制窗开始之前必须要有一个 SYSCLKOUT 的延迟。在图 2 中,输入限制将忽略这个尖刺小脉冲。 QUALPRD 位域值限制采样周期, 8 位值范围为 0~255。 当 QUALPRD 为 0 时,无限制输入,此时采样周期与 SYSCLKOUT 同步。对于任意一个“ n ”值,限制周期 = 2*n 个系统时钟周期( SYSCLKOUT ),即每 2*n 个系统时钟周期, GPIO 引脚进行一次采样。当 6 个采样都为同一个值时,才可以确定一个输入。 具体的采样周期的配置和采样窗的配置可参考上文列出的表格。 当有输入限制时将检测输入变化,输入必须稳定( 5*QUALPRD*2 )个 SYSCLKOUT 周期,以保证检测时 6 个采样点的采样相同。例如 QUALPRD=1 时,输入必须有 10 个或者 10 个以上的稳定的 SYSCLKOUT 周期,因为外部信号是异步驱动的, 11 个 SYSCLKOUT 周期宽度的脉冲可以确保可靠的识别。 欲完整了解GPIO可参考附件。由于水平有限,难免会有错误,一切以TI提供的技术手册为准。