很多工程师在对按键去抖动都会采用软件延时的方法,今天介绍下关于Piccolo DSP GPIO所具有的硬件去抖功能.
信号首先同步于系统时钟,在输入到内核改变之前要经过一定周期个数的量化,这种方式可以滤除噪声。量化窗口输入的结构示意图如图所示。
由图可知,外部的管脚输入信号经过一个量化窗口到达DSP内核。量化窗口的时间宽度取决于采样间隔和采样个数。采样间隔由GPxCTRL寄存器决定,采样个数由寄存器GPxQSELn决定。
如果QUxLPRDn = 0,采样间隔为一个系统周期整数倍。如果QUxLPRDn = N (N≠0),采样周期为系统周期的2N倍。如表所示
采样个数可以配置位三个或六个。通过寄存器GPAQSEL1、GPAQSEL2、GPBQSEL1来配置,当外部管脚电平状态发生变化时,量化窗口检测到三个或六个周期内相同的状态时,才把此次状态改变传送到内核,否则会当成杂波滤除。
量化窗口的宽度与采样周期和采样个数有关,当采样周期和采样个数确定之后,量化窗口的宽度就确定了。量化窗口与采样周期及采样个数的关系如表所示。
现举例说明量化窗口的用法及效果。假如某个GPIO引脚为数字输入,量化模式为6个采样周期量化,采样周期寄存器中QUxLPRDn值为一,则采样周期为两个系统时钟周期宽度,量化输入的结果如图所示。
[ 本帖最后由 安_然 于 2011-10-10 16:41 编辑 ]
|