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

概要

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

原理图

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

  • 23
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值