TLF35584开发记录(一)

最近在调试基于主芯片MPC5744的bootloader以及电源管理芯片TLF355884,将调试记录都进行了一个整理记录。

TLF35584是一个用于电源惯例和监控的集成芯片,多用于汽车中提供多个电压轨和电源管理。

 TLF35584引脚:

TLF35584硬件电路上,有几个引脚值得注意:

  • MPS引脚: 若将引脚上拉至5V,则进入编程模式,忽略窗狗的周期性触发,忽略INIT时间内的错误监控;若将引脚接地,则进入非编程模式,需要提供窗狗的周期性触发,错误监控被打开,若未检测到窗狗的周期性触发或者检测到错误,TLF35584将复位。
  • ENK、WAK引脚:输入脚,在TLF35584的INIT状态跳转至Normal状态过程中,忽略这两个引脚;在Normal状态跳转至Sleep状态过程中,检测到这两引脚为高电平,将切换到Wake状态,并产生中断;在Normal状态跳转至Standby状态过程中,检测到这两引脚为高电平,将切换到INIT状态,并产生一个Reset(ROT)。
  • SDISPI信号数据输入
  • SDOSPI信号数据输出
  • SCLSPI信号时钟
  • SCSSPI信号片选
  • WDI:TLF35584功能框图:硬件看门狗触发

TLF35584功能框图: 

 

TLF35584的SPI格式:

CMD(1 bit)+ Address(6 bit) +Data(8 bit) +Parity(1 bit)。

0bit:CMD = 1为写操作;CMD = 0读操作;

1~6bit:16进制地址;

7~14bit:数据;

15bit: Parity,前面15个bit里,1为奇数个,则此位为1;1为偶数个,则此位为0。

TLF35584窗狗看门狗:

TLF35584有两个独立看门狗:窗狗(WWD,上电默认打开)、功能狗(FWD,上电默认关闭)。

通过给寄存器WWDSCMD触发,达到喂狗目的。

喂狗的编程逻辑为:

先读地址0x17的值(寄存器WWDSCMD),若TRIG_STATUS位是1,则TRIG位取反,往地址0x17里写入数据:00000000,信息组装,SPI格式为:1010111000000001,即0xAE01;若TRIG_STATUS位是0,则TRIG位取反,往地址0x17里写入数据:00000001,信息组装:1010111000000010,即0xAE02。

    uint16_t Storage_35584[];
	
	Storage_35584[1] =SPI35584_readvalue(0x2E00);	 // 读寄存器WWDSCMD(地址0x17)

	if ((Storage_35584[1]&0x0100) == 0x0100)
		{
				SPI35584_sendvalue(0xAE01);          //往寄存器WWDSCMD写数据(地址0x17),喂狗
		}
	else
		{
				SPI35584_sendvalue(0xAE02);          //往寄存器WWDSCMD写数据(地址0x17),喂狗
		}

窗狗喂狗过程有三个阶段:Long Open Window(可理解为处于上电初始化时间内)、Closed Window、Open Window。 

上电默认使用SPI喂窗狗,因此,在Long Open Window阶段内至少使用一次SPI喂狗,

在Long Open Window阶段内可配置WDCFG0寄存器选择pin WDI喂狗或者SPI喂狗配置WWDCFG0、WWDCFG1寄存器修改watchdog open window、watchdog closed window时间

在Long Open Window阶段,如果没有得到有效的喂狗,则窗狗识别为“无效的WWD触发”,将进入“Soft reset”,在“Soft reset”后,打开一个新的Long Open Window,如果在第二个Long Open Window内没有得到有效的喂狗,将进入“Hard reset”,重新打开一个Long Open Window。Long Open Window重置是有限的,第三个Long Open Window内,仍然没有有效的喂狗,状态机进入“FAILSAFE”。

在Long Open Window阶段第一次喂狗后,立即进入Closed Window阶段,Closed Window时间是固定的,期间禁止喂狗,如果期间收到有效的触发信号,窗狗识别为“无效的WWD触发”。Closed Window将随着此无效触发而终止,并将启动Open Window。

在Open Window阶段需触发一个下降沿表示有效的喂狗信号,Open Window阶段检测到有效喂狗后,立即进入Closed Window阶段,如此,循环Open Window、Closed Window阶段。如果Open Window阶段没有得到有效的喂狗,窗狗识别为“无效的WWD触发”,并启动一个新的Open Window。

 一次错误或者无效的喂狗触发,将使窗口看门狗错误计数器(寄存器WWDSTAT)增加2,一次正确的喂狗触发,将使窗口看门狗错误计数器(寄存器WWDSTAT)减1。当窗口看门狗错误计数器的数值超过阈值时,将报错(寄存器SYSSF、寄存器INITERR)。

TLF35584状态机: 

当连接到电池(Power-On-Reset POR)时,TLF35584自动打开,并进入INIT状态,可通过SPI命令请求状态转换,在片选(SCS)的有效上升沿触发时实现转换。值得注意的是,在状态转换过程中,最后一次拉高片选(SCS)前必须有大于60us的缓冲时间,以确保状态成功转换。 

请求状态转换涉及到两个寄存器:DEVCTRL和DEVCTRLN(更改LDO的配置也是配置这两个寄存器)。写入DEVCTRLN的数据必须与写入DEVCTRL的数据按位取反,只有当这两个寄存器连续写入,请求才能接受,并在第二个请求命令结束,片选(SCS)的有效上升沿生效。

在无效请求的情况下(错误的顺序或DEVCTRLN、DEVCTRL数据没有按位取反),将无法实现状态转换,并设置相应的状态标志(寄存器SYSSF,NO_OP位)。

    Storage_35584[9] =SPI35584_readvalue(0x4E00);//读寄存器DEVSTAT(地址0x27),了解当前的状态

	SPI35584_sendvalue(0xABD5);   //往寄存器DEVCTRL写数据(地址0x15),请求转换到normal状态

	SPI35584_sendvalue(0xAC2B);   //往寄存器DEVCTRLN写数据(地址0x16),与寄存器DEVCTRL按位取反


	Storage_35584[10] =SPI35584_readvalue(0x4E00);//读寄存器DEVSTAT(地址0x27),了解当前的状态

  • 36
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值