出口欧盟的产品,每次上电都需要的内部重要资源检测,某些安规有这个需求
出口欧盟的产品,每次上电都需要的内部重要资源检测,某些安规有这个需求1,对【内部RAM】写5A/A5确认【内部RAM】是正常的
2,对内部 【sfr/xfr】 写 5A/A5 确认【sfr/xfr】是正常的
===这时不要打开总中断
=========================================================
部分还需要检测主时钟是否正常,那就选用支持 RTC 功能的 MCU
3,用【外部32768-RTC时钟】检测【内部高速IRC】的误差在1%以内
用【内部高速IRC】确认【外部32768-RTC时钟】是正常的
对芯片的RAM、sfr寄存器、xfr寄存器写入指定数据,
然后读出进行对比,判断读写是否正常。
注意:部分寄存器是只读或者只写
读写寄存器进行判断:
P6M1 = 0x55; P6M0 = 0xaa;
printf("P6M1 = 0x%02bx, P6M0 = 0x%02bx\r\n",P6M1,P6M0); //sfr
if((P6M1 != 0x55) || (P6M0 != 0xaa))
{
printf("test error.\r\n");
}
else
{
printf("test ok.\r\n");
}
P1PU = 0xec;
P3PU = 0x55;
printf("P1PU = 0x%02bx, P3PU = 0x%02bx\r\n",P1PU,P3PU);//xfr
读写RAM进行判断:
u8 i;
for(i=0; i<IDATA_LENTH; i++)idataBuffer = 0x55;
for(i=0; i<IDATA_LENTH; i++)
if(idataBuffer != 0x55)
{
return 1; //测试0x55错误
}
for(i=0; i<XDATA_LENTH; i++)xdataBuffer = 0xaa;
for(i=0; i<XDATA_LENTH; i++)
if(xdataBuffer != 0xaa)
{
return 2; //测试0xaa错误
}
{:4_197:}{:4_197:}很厉害~~~ 尊重当地国的要求,符合安规,有要求都可以 SFR都要写,那设备不是都要失控了?
页:
[1]