使用TPL5010实现硬件看门狗功能

发布时间:2024年01月17日

概要

硬件看门狗实际上就是一个定时器,有一个输入和输出,它的功能是定期检查芯片内部的情况,一旦发生错误就向芯片发出重启信号。使用硬件看门狗,可以预防程序发生死循环。应用看门狗电路后单片机可以在无人状态下连续工作。硬件看门口电路,利用一个定时器来监控主程序的运行。

原理图

1.硬件看门狗原理图
硬件看门狗原理图
2.TPL5010时序图在这里插入图片描述 在这里插入图片描述

代码

///硬件看门狗初始化。需要将WAKE引脚设置为输入模式,DONE引脚设置输出模式
#define WD_DOWN_Pin   GPIO_PIN_11     
#define WD_DOWN_GPIO_Port GPIOD
#define WD_WAKE_Pin       GPIO_PIN_12
#define WD_WAKE_GPIO_Port GPIOD

#define WD_DOWN_PIN_SET 	HAL_GPIO_WritePin(GPIOD, WD_DOWN_Pin, GPIO_PIN_SET)
#define WD_DOWN_PIN_RESET 	HAL_GPIO_WritePin(GPIOD, WD_DOWN_Pin, GPIO_PIN_RESET)
#define WD_DOWN_PIN 		HAL_GPIO_ReadPin(GPIOD, WD_WAKE_Pin) 

static void rt_watchdog_thread_entry(void* parameter)
{	
	rt_thread_delay(50);        	//等待稳定下来
	WD_DOWN_PIN_SET;
	rt_thread_delay(1);         	//输出一个脉冲喂狗
	WD_DOWN_PIN_RESET; 
	
	while(1)
	{
		if(WD_DOWN_PIN ==1)     	//拉升高电平持续时间是20ms左右
		{
			rt_thread_delay(50);    //等待WAKE拉低电平
			WD_DOWN_PIN_SET;
			rt_thread_delay(1);     //大于100ns高电平脉冲喂狗
			WD_DOWN_PIN_RESET;
		} 
		//app_comm_door_motor_tx_process();		
		rt_thread_delay(5);         //间隔采样时间需要小于20ms
	}
}

小结

主要根据TPL5010芯片手册的时序图,编写相应控制代码。

软件看门狗和硬件看门狗区别

在这里插入图片描述

TPL5010资料

https://download.csdn.net/download/weixin_43211055/88737506?spm=1001.2014.3001.5503

文章来源:https://blog.csdn.net/weixin_43211055/article/details/135567776
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。