I.MX6U GPT定时器浅析

引入:I.MX6U除了EPIT定时器还有GPT定时器。

GPT定时器简介:

I.MX6U GPT定时器浅析_第1张图片

1.32位定时器

2.向上计数

3.12位分频值

4.三个输出比较通道,可设置为输出模式

5.两个输入捕获通道,可以设置触发方式

6.可以产生比较中断,捕获中断,和溢出中断。

7.计数器可以运行在restart和free-run模式

I.MX6U GPT定时器浅析_第2张图片

问题一:时钟源可以选择哪几种?

I.MX6U GPT定时器浅析_第3张图片

 1.ipg_clk_24M

2.ipp_ind_clkin

3.ipg_clk

4.ipg_clk_32k

5.ipg_clk_highfreq

问题二:restart和free-run模式有何区别

可通过GPT控制寄存器GPT_CR选择)

restart:

当计数器达到比较值,计数器复位并从0x00000000重新开始

重新启动功能仅与比较通道1相关联。

对通道1的比较寄存器的任何写访问都将复位GPT计数器。 这是这样做是为了避免当比较值从在进行计数时,从较高的值到较低的值。

free-run:

在free-run模式下,当所有三个通道发生比较事件时,计数器不重启; 相反,计数器会继续计数直到0xffffffff,然后将其翻转到
0x00000000)。

问题三:有哪些重要寄存器?

1.GPTx_CR:GPT控制寄存器

I.MX6U GPT定时器浅析_第4张图片

SWR(bit15):复位 GPT 定时器,向此位写 1 就可以复位 GPT 定时器,当 GPT 复位完成以后此为会自动清零

EN_24MI.MX6U GPT定时器浅析_第5张图片

EN_24M(bit10) :0:失能24M时钟 1:使能24M时钟,如果时钟源不选择ip_clk_24M,此位可以不设置。

I.MX6U GPT定时器浅析_第6张图片

FRR(bit9) :运行模式选择,当此位为 0 的时候比较通道 1 工作在重新启动(restart)模式。当此位为 1 的时候所有的三个比较通道均工作在自由运行模式(free-run)。

I.MX6U GPT定时器浅析_第7张图片

CLKSRC(bit8:6):GPT 定时器时钟源选择位,为 0 的时候关闭时钟源;为 1 的时候选择ipg_clk 作为时钟源;为 2 的时候选择 ipg_clk_highfreq 为时钟源;为 3 的时候选择外部时钟为时钟源;为 4 的时候选择 ipg_clk_32k 为时钟源;为 5 的时候选择 ip_clk_24M 为时钟源。

I.MX6U GPT定时器浅析_第8张图片

ENMODE(bit1) :GPT 使能模式,此位为 0 的时候如果关闭 GPT 定时器,计数器寄存器保存定时器关闭时候的计数值。此位为 1 的时候如果关闭 GPT 定时器,计数器寄存器就会清零。

I.MX6U GPT定时器浅析_第9张图片

EN(bit) :GPT 使能位,为 1 的时候使能 GPT 定时器,为 0 的时候关闭 GPT 定时器。

2.GPTx_PR:GPT预分频器寄存器

I.MX6U GPT定时器浅析_第10张图片

PRESCALER24M(bit15:12):如果时钟源使用ip_clk_24M则此位为24M时钟的分频值。

PRESCALER(bit11:0),这就是 12 位分频值,可设置 0~4095,分别对应 1~4096 分频

GPTx_SR:GPT状态寄存器

I.MX6U GPT定时器浅析_第11张图片

ROV(bit5) :回滚标志位,当计数值从 0XFFFFFFFF 回滚到 0X00000000 的时候此位置 1

IF2~IF1(bit4:3) :输入捕获标志位,当输入捕获事件发生以后此位置 1,一共有两路输入捕获通道。如果使用输入捕获中断的话需要在中断处理函数中清除此位。

OF3~OF1(bit2:0):输出比较中断标志位,当输出比较事件发生以后此位置 1,一共有三路输出比较通道。如果使用输出比较中断的话需要在中断处理函数中清除此位。

GPTx_IR:GPT中断寄存器

I.MX6U GPT定时器浅析_第12张图片

I.MX6U GPT定时器浅析_第13张图片

ROVIE(bit5):溢出中断

IF2IE(bit4):通道二输入捕获中断使能 1:使能 0:失去能

IF1IE(bit3):通道一输入捕获中断使能 1:使能 0:失去能

IF3IE(bit2):通道3输出比较中断中断使能 1:使能 0:失去能

IF2IE(bit1):通道2输出比较中断中断使能 1:使能 0:失去能

IF1E(bit0):通道一输出比较中断中断使能 1:使能 0:失去能

GPTx_OCR1:GPT比较寄存器1

保存的值决定了何时比较事件将在输出比较通道1上产生。
处于重启模式(FRR = 0)时,通道1的比较寄存器将复位GPT计数器。

GPTx_OCR2:GPT比较寄存器2

GPTx_OCR3:GPT比较寄存器3

GPTx_ICR1:GPT输入捕捉寄存器1

是只读寄存器,用于保存输入捕获通道1上一次捕获事件期间计数器中的值。

GPTx_ICR2:GPT输入捕捉寄存器2

GPTx_CNT:GPT计数器寄存器

是主计数器的寄存器。 GPT_CNT是一个只读寄存器,可以读取而不会影响GPT的计数过程。

你可能感兴趣的:(I.MX6UL+Linux)