STM32どのタイマ、ウォッチドッグの独立したウィンドウのウォッチドッグカウンタ、プリスケーラ、タイムアウト時間の計算

ディレクトリ

1、基本的な、ユニバーサルタイプのタイマー

2、独立したウォッチドッグタイマ

3、ウィンドウウォッチドッグタイマ 


共有する前に、STM32 GPIOの原則、特性、選択および設定RTCプリスケーラクロック非同期および同期プリスケーラの計算方法を、他のモデルに似て、この簡単な説明STM32L011マイクロコントローラのタイマーを(パラメータ設定を、本論文では説明に焦点を当てて構成、その後の再タイマーのすべてのタイプの特性に関しては後述する)、STM32タイマが汎用タイマの広い範囲、タイマー実質的に独立したウォッチドッグタイマ、ウォッチドッグタイマウィンドウ等を有しています。

1、基本的な、ユニバーサルタイプのタイマー

STM32の基本的な、プログラマブルタイマの一般的なタイプは、16ビットのオートリロードレジスタおよび関連する組成物である、そこには、実質的にユニバーサルタイプの3つの重要なタイマレジスタに配置されている:カウンタレジスタを登録し、プリスケーラ自動再送次のようにリロードレジスタは、具体的に説明します:

  • カウンタレジスタ:そこカウント、カウント、カウントアップとダウン、または3、カウンタクロックがプリスケーラで分周することができる一方でダウン。

  • プリスケーラレジスタ:カウンタクロック周波数を分割することができ、1と65536の間の分周比は、(本明細書STM32L011と呼ばれます)。

  • リロードに登録:カウンタ値がカウンタレジスタのカウントが再びロードされるときにオーバーフロー(デクリメントしながら、またはアンダーフロー値に達した)に達すると、更新イベントを送信します。

0xFCは、カウンタが有効になっている場合、タイマは、タイミングの効果に応じては0x00 0xFC意志からカウンタ数を(タイミングカウンタレジスタとプリスケーラレジスタによって決定される)クロックの実行を開始し、2プリスケーラを使用して、カウンタレジスタの値を仮定しました下に示すように、割り込みが生成され、制御レジスタは、タイミングチャートを決定するプリスケーラでカウントされた時間のは0x00 0xFC長から新たなカウントを開始する時刻を更新されます。

 レジスタの数(小数点:252)の0xFC値2プリスケーラタイミングサイクルを使用しては、(クロック周波数32MHzのと仮定して)次のように計算されます。

次のように1HZ 1秒/周波数は、63492HZは、0x00の0xFC、63492秒のタイミング期間からカウンタカウントであり、STM32CuBeMX構成を使用することです。

0xFCは、タイミング図を下に示されているプリスケーラ4を用いて、カウンタレジスタの値を仮定する。

数器寄存器数值为0xFC(十进制:252),采用2预分频的定时周期计算如下(假设使用32MHZ的时钟频率):

计数器从0x00计数到0xFC,定时周期为31746秒,使用STM32CuBeMX配置如下所示:

2、独立看门狗定时器

独立看门狗定时器激活后,计数器开始从复位值 0xFFF (可通过窗口寄存器修改)递减计数,当计数器计数到终值 (0x000) 时会产生一个复位信号,在递减的过程中将键值 0x0000 AAAA 写到密钥寄存器中,计数器将会重载,从而避免产生看门狗复位,独立看门狗框图如下所示:

 独立看门狗定时器有三种关键寄存器:窗口寄存器、预分频器寄存器和重载寄存器,具体说明如下所示:

  • 窗口寄存器:默认值为 0x0000 0FFF(十进制:4095),当计数器值大于窗口寄存器中存储的值时,如果执行重载操作,则会产生复位;

  • 预分频器寄存器:可对计数器时钟频率进行分频,分频系数最大为256(这里指STM32L011);

  • 重载寄存器:当计数器计数到终值 (0x000) 时会产生一个复位信号,计数器寄存器将装载重新计数。

独立看门狗定时器时钟由LSI振荡器提供,STM32L011中LSI频率为37KHZ,看门狗定义周期时间的方式和基本、通用类型可编程定时器完全一致,假设定义1秒周期的看门狗定时器,超过1秒不喂狗就进行系统复位,计算方式如下所示:

 当然由于LSI振荡器精度有限,在运行过程中会存在一定误差,使用STM32CuBeMX配置如下所示:

3、窗口看门狗定时器 

窗口看门狗定时器是可编程的自由运行递减计数器,窗口看门狗激活后当递减计数器值小于 0x40(从 0x40 递减到 0x3F) 时复位,在窗口阈值之外重载递减计数器时也会复位,只有在0x40~窗口阈值之间喂狗系统才可以正常运行,窗口定时器时序图如下所示:

时序图解析如下所示:

  • T[6:0]:7 位计数器,用来存储看门狗计数器的值,它每隔PCLK 个周期递减一次,当它从 0x40 递减到 0x3F(T6 清零)时会产生复位;

  • WDGTB[1:0] :定时器时基 ,有4种方式修改预分频器的时基:00:CK 计数器时钟 (PCLK div 4096) 分频器 1、01:CK 计数器时钟 (PCLK div 4096) 分频器 2、10:CK 计数器时钟 (PCLK div 4096) 分频器 4和11:CK 计数器时钟 (PCLK div 4096) 分频器 8;

  • W[6:0]:7 位窗口值,用于与递减计数器进行比较的窗口值,超过窗口阈值系统会复位;

  • 当递减计数器值从 0x40 递减到 0x3F时系统会复位;

  • 0x40~W[6:0]之间可以刷新喂狗,确保系统正常运行。

窗口定时器超时值的计算公式如下:

STM32L011中窗口看门狗定时器基于APB1频率,假设APB1 频率等于 32 MHZ,定义65毫秒周期的窗口看门狗定时器,计算方式如下所示:

 使用STM32CuBeMX配置如下所示:

发布了140 篇原创文章 · 获赞 7874 · 访问量 67万+

おすすめ

転載: blog.csdn.net/m0_38106923/article/details/104066285