tlf35584是TC275配套电源安全IC,集成了电源DCDC和LDO、电源监控、MCU错误监控、WWDG和FWDG、功能安全输出(ss1、ss2)等,从复杂性上来讲称得上是SBC(System Basic Chip),通过SPI和MCU通信,自身的状态机有多种状态:init、normal、sleep、standby等,并通过spi 指令进行状态切换。上电tlf35584处于init状态,需要spi 指令切换到normal状态,mcu正常运行需要normal状态,因为init状态对应的功能安全输出(ss1、ss2)为低电平,正常应该是高电平,因为低电平控制车体抱闸,进行安全控制了。tlf35584的错误监控引脚连接mcu的smu输出pin,mcu运行正常需要输出电平变化的波,如果运行异常,该pin持续输出低电平,如果是持续输出高电平,有可能是短路,如果不配置smu,则该脚持续输出低电平,因此在不配置smu的情况下,需要关闭tlf35584的错误监控功能。
tlf35584 spi通信采用偶校验方式,具体详见datasheet,个别的重要寄存器为了避免被误写入或擦除,采用了保护的功能,如果想修改这些寄存器配置,需要先解除保护(unlock),配置完成后再进行保护(lock)。
init状态转换到normal状态需要一些条件,其中包括看门狗服务一次之后状态才可以切换,由于配置完tlf35584立即执行切换状态,导致无法正常切换,还停留在init状态,引发功能安全输出(ss1、ss2)持续为低电平,在切换状态之前增加延时即可解决这个问题。另外init状态对应的安全功能输出为低电平,normal状态对应的安全功能输出为高电平。
目前的配置流程如下:
1、unlock
2、启动WWDG功能并配置WDI进行trigger,配置阈值为9,该阈值理解为没有喂狗次数的累计阈
值,超出该阈值则停止工作;
3、配置close window time: 50ms
4、配置open window time:1000ms
5、lock
6、切换为normal状态
具体配置如下:
TLF35584_Unlock();
ProtectState = TLF35584_Read(PROTSTAT, 0xff);
TLF35584_Write(SYSPCFG0, 0x0A); //
TLF35584_Write(SYSPCFG1, 0x00); //
TLF35584_Write(WDCFG0, 0x99); //使能窗口看门狗以及切换喂狗方式为WDI
TLF35584_Write(WDCFG1, 0x09); //functional watchdog error threshold
TLF35584_Write(FWDCFG, 0x0B); //
TLF35584_Write(WWDCFG0, 0x00); //close window: 50ms
TLF35584_Write(WWDCFG1, 0x13); //open window: 1000ms
TLF35584_Lock();
ProtectState1 = TLF35584_Read(PROTSTAT, 0xff);
TLF35584_Write(DEVCTRL, 0xfa); //切换为normal状态
TLF35584_Write(DEVCTRLN, 0x05); //切换为normal状态