你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32N6570 OTP配置

[复制链接]
KingChen2025 发布时间:2025-2-18 10:34

STM32N6570 OTP配置可是个头函数来配置如下:

ifndef NO_OTP_FUSE

/**

  • @brief User OTP fuse Configuration

  • The User Option Bytes are configured as follows :

    • VDDIO_HSLV = 1 (enable the configuration of pads below 2.5V,

      • I/O speed otpmization at low-voltage allowed)

        • XSPI1_HSLV = 1 (enable I/O XSPIM Port 1 high-speed option)

          • XSPI2_HSLV = 1 (enable I/O XSPIM Port 2 high-speed option)

            • Other User Option Bytes remain unchanged

              • @retval None */

            static int32_t OTP_Config(void)

            {

            define BSEC_HW_CONFIG_ID 124U

            define BSEC_HWS_HSLV_VDDIO3 (1U<<15)

            define BSEC_HWS_HSLV_VDDIO2 (1U<<16)

            uint32_t fuse_id, bit_mask, data;

            BSEC_HandleTypeDef sBsecHandler;

            int32_t retr = 0;

            / Enable BSEC & SYSCFG clocks to ensure BSEC data accesses /

            __HAL_RCC_BSEC_CLK_ENABLE();

            __HAL_RCC_SYSCFG_CLK_ENABLE();

            sBsecHandler.Instance = BSEC;

            / Read current value of fuse /

            fuse_id = BSEC_HW_CONFIG_ID;

            if (HAL_BSEC_OTP_Read(&sBsecHandler, fuse_id, &data) == HAL_OK)

            {

            / Check if bit has already been set /

            bit_mask = BSEC_HWS_HSLV_VDDIO3 | BSEC_HWS_HSLV_VDDIO2;

            if ((data & bit_mask) != bit_mask)

            {

            data |= bit_mask;

            / Bitwise programming of lower bits /

            if (HAL_BSEC_OTP_Program(&sBsecHandler, fuse_id, data, HAL_BSEC_NORMAL_PROG) == HAL_OK)

            {

            /* Read lower bits to verify the correct programming */
            
            if (HAL_BSEC_OTP_Read(&sBsecHandler, fuse_id, &data) == HAL_OK)
            
            {
            
              if ((data & bit_mask) != bit_mask)
            
              {
            
                /* Error : Fuse programming not taken in account */
            
                retr = -1;
            
              }
            
            }
            
            else
            
            {
            
              /* Error : Fuse read unsuccessful */
            
              retr = -2;
            
            }

            }

            else

            {

            /* Error : Fuse programming unsuccessful */
            
            retr = -3;

            }

            } }

            else

            {

            / Error : Fuse read unsuccessful /

            retr = -4; }

            return retr;

            }

            endif / NO_OTP_FUSE /

            还可以使用CubeProgrammer来配置(注意更新CubeProgrammer最新版本)。

            STM32N6570-DKOTPCubeProgramm.png

收藏 评论0 发布时间:2025-2-18 10:34

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版