8、ZYNQ PS外设之定时器

  在 ZYNQ 嵌入式系统中,定时器的资源是非常丰富的,Zynq 的 PS 的 CPU0 和 CPU1 都有各自独立的 32 位私有定时器和 32 位看门狗定时器这两个 CPU 同时共享一个 64 位的全局定时器( GT)。除此之外, PS 中还有一个 24 位的系统看门狗定时器( SWDT)两个 TTC( Triple Timer Counters)定制控制器,每个 TTC 定时器里面包含三个定时器/计数器。系统看门狗定时器可以在系统发生灾难性的故障时(如 PS 中的 PLL 工作异常)发出信号, 使得系统程序重新启动,保证了系统安全可靠的运行。 TTC 用于计算来自 MIO 引脚或 EMIO 引脚的信号脉冲宽度,每个 TTC 都有三个独立的计数器。

  看门狗需要不停的“喂狗”, 在这里就是不停的读预加载寄存器再写入预加载寄存器。 如果不能及时喂狗, 那么看门狗就会超时, 并且产生一个复位输出。

  定时器的系统框图如下图所示:

 

  图中的几种定时器都有连接到中断控制器( Interrupt Controller),我们可以很方便的使用定时器来完成定时器中断的实验。其中私有定时器( CPU Private Timer)是最为常用的。

  Zynq 的私有定时器和看门狗定时器具有以下共同的特性:

  (1)时钟频率为 CPU 时钟频率的一半,如 ARM 的工作时钟频率为 666.666Mhz,则私有定时器的时钟频率为 333.333Mhz。

  (2)定时计数器位宽为 32 位, 当计数器递减至 0 后产生中断;

  (3)有一个 8bit 预分频器, 可以对参考时钟进一步分频,更好的控制中断周期;

  (4)可以配置单次模式或者自动重载模式;

  (5)有一个可配置的预加载寄存器,通过配置起始计数值来设置定时时间,定时器时间可以通过下式计算:定时时间 = 1/定时器频率*(预加载值+1)

  看门狗定时器多了以下功能:

  (1)当看门狗没有及时“喂狗”导致的系统复位输出

  (2)看门狗定时器可以设置为定时器模式或者看门狗模式

 

 

 

posted @   孤情剑客  阅读(697)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
点击右上角即可分享
微信分享提示