概述
如何判断芯片正常启动,芯片上电后,能够正确的执行程序代码,这是最好的判断依据。例如芯片正常工作的电压为1.64V(不同的芯片正常工作的电压可能不一样)。芯片启动时间为,供电电压上升到1.64V之后,到芯片正常工作的时间,在这个时间内,主要经历了芯片等待时钟稳定、FLASH初始化、读取FLASH TRIM值等操作。
在启动代码中,添加IO口高电平输出程序,然后通过示波器进行测试,能够精准的测量出芯片的启动时间。即测量电压1.64V到IO口的上升沿时间间隔,其中IO口上升沿汇编指令操作,理论上不能计算到芯片启动时间中。
代码配置
因为内核不一样,IO口置高的汇编程序也不一样,例如,对PB02配置为高电平输出,汇编代码如下。
CK80x系列:
//set pb0.2 out
lrw r1,0x60002000
movi r2,0x200
st.w r2,(r1,0x0)
//set pb0.2 high
lrw r1,0x6000200c
movi r2,0x04
st.w r2,(r1,0x0)
E90x系列:
//set pb0.2 out
la a1,0x60002000
la a2,0x200
sw a2,(a1)
//set pb0.2 high
la a1,0x6000200c
la a2,0x04
sw a2,(a1)
实操图(APT32F173X芯片)
工具:示波器、电源(可配置输出电压斜率)。
注意事项
IO口置高汇编代码,需要放在启动代码的最前面,这样可最大程度上规避,代码造成的测量误差。