本帖最后由 史逸如 于 2022-7-3 11:44 编辑
TLSR9518B烧录器和Swire总线知识
工预善其事,必先利其器,这几天一直被TLSR9xxx的烧录器问题搅得很烦,区分开了TLSR9 Dev Key和Telink Burn Board这两者有着很大不同,前者支持2-wire JTAG和4-wire JTAG(见文档《AN_20200731_E_User Guide forTLSR9_DEV_KEY》),后者支持Swire和UART,且后者有2枚按键:
图1 TLSR9 Dev Key和Telink BurnBoard两种烧录器对比
槽点有二:
1. Telink Burn Board没有相应说明,且TLSR9518ADK80D板子接线也未提及
2. 没有像jlink那样出现信号指示(Jlink连接成功会亮绿灯,接错亮红灯,正在编程闪绿灯),板子同理没有任何指示信号
本身是128K SRAM+512KFlash,4K/Sector(0x1000),共128个扇区;RV32指令集。
图2 Flash大小
一、BDT报错Swire error问题
图3 TelinkBurn Board提示Swire error解决办法:固件升级
二、Swire总线知识
有几个很重要的参考链接,基于M6智能手环拆解:
以前开发过DHT11驱动,也是single-wire,但此swire非彼single-wire,还是差距很大,参考上面链接,知道先发起始字节0x5A,再发两字节地址,接着RW_ID,再就是数据,结束是0xFF。每个字节由9bit构成,MSB代表Cmd/Data,0代表后续序列为命令,1代表数据,起始和结束字节MSB均为1。每bit构成见下文详细描述。上述第2个链接有STM32模拟的Swire时序驱动。具体时序我抓取了波形,不知是我的LA精度不够还是烧录器固件时钟本身有偏移: 图4 Swire起始字节0x5A
通过量测,得到:
电平bit | Tlow(us) | Thigh(us) | 高低比值 | bit时间(us) |
0 | 0.375 | 2.125 | 5.67 | 2.5 |
1 | 1.875 | 0.625 | 3 | 2.5 |
官方描述0电平是Thigh/Tlow=4,1电平是Tlow/Thigh=4,由上表知总时间不变,但比值在波动(5.67+3)/2=4。