神农鼎 发表于 2023-11-28 09:50:22

出口欧盟的产品,每次上电都需要的内部重要资源检测,某些安规有这个需求

出口欧盟的产品,每次上电都需要的内部重要资源检测,某些安规有这个需求
1,对【内部RAM】写5A/A5确认【内部RAM】是正常的
2,对内部 【sfr/xfr】 写 5A/A5 确认【sfr/xfr】是正常的
===这时不要打开总中断

=========================================================
部分还需要检测主时钟是否正常,那就选用支持 RTC 功能的 MCU
3,用【外部32768-RTC时钟】检测【内部高速IRC】的误差在1%以内
      用【内部高速IRC】确认【外部32768-RTC时钟】是正常的


乘风飞扬 发表于 2023-11-28 19:06:21

对芯片的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错误
    }


mojotang 发表于 2023-11-29 10:14:28

{:4_197:}{:4_197:}很厉害~~~

草木灰06 发表于 2025-1-22 14:03:19

尊重当地国的要求,符合安规,有要求都可以

vxfklthz 发表于 2025-1-28 23:44:09

SFR都要写,那设备不是都要失控了?
页: [1]
查看完整版本: 出口欧盟的产品,每次上电都需要的内部重要资源检测,某些安规有这个需求