HF-AS5047U Driver  0.1.0-dev
HF-AS5047U C++ Driver
Loading...
Searching...
No Matches
AS5047U_REG::PROG Struct Reference

PROG – OTP programming control register (0x0003, default 0x0000) More...

#include <as5047u_registers.hpp>

Public Attributes

union { 
 
   uint16_t   value 
 
   struct { 
 
      uint16_t   PROGEN: 1 
 
      uint16_t   reserved_1: 1 
 
      uint16_t   OTPREF: 1 
 
      uint16_t   PROGOTP: 1 
 
      uint16_t   reserved_4: 1 
 
      uint16_t   reserved_5: 1 
 
      uint16_t   PROGVER: 1 
 
      uint16_t   reserved_7: 1 
 
      uint16_t   reserved_8_15: 8 
 
   }   bits 
 
};  
 

Static Public Attributes

static constexpr uint16_t ADDRESS = 0x0003
 

Detailed Description

PROG – OTP programming control register (0x0003, default 0x0000)

Bits Name R/W Description
0 PROGEN R/W OTP program enable (0 = Normal operation, 1 = Enable OTP

| | | read/write access) 1 | (reserved)| - | Reserved (must be 0) 2 | OTPREF | R/W | OTP refresh trigger (1 = refresh shadow registers with OTP | | | content) 3 | PROGOTP | R/W | Start OTP programming cycle (set 1 to begin burning OTP fuses) 4 | (reserved)| - | Reserved (must be 0) 5 | (reserved)| - | Reserved (must be 0) 6 | PROGVER | R/W | Program verify mode enable (1 = enable guard-band verification mode) 7-15 | (reserved)| - | Reserved (must be 0)

Writing this register controls the OTP programming sequence:

  • Set PROGEN=1 to enable OTP programming mode (allow OTP registers 0x0015–0x001B to be written).
  • Then set PROGOTP=1 to initiate the OTP burn procedure. The PROGOTP bit will self-clear when the programming cycle completes.
  • The PROGVER bit can be set to 1 to enter verification mode (guard band test) after programming.
  • Toggling OTPREF (e.g., set to 1) reloads the non-volatile data from OTP into the device's shadow registers (useful after programming or to revert soft writes).

After starting a programming cycle, the host should poll the PROG register until it reads 0x0001, indicating the procedure is complete (PROGEN remains set, other bits cleared). It is recommended to perform verification and a power cycle (with PROGVER and OTPREF as described in the datasheet) to ensure OTP programming success.

Member Data Documentation

◆ [union]

union { ... } AS5047U_REG::PROG

◆ ADDRESS

constexpr uint16_t AS5047U_REG::PROG::ADDRESS = 0x0003
staticconstexpr

◆ [struct]

struct { ... } AS5047U_REG::PROG::bits

◆ OTPREF

uint16_t AS5047U_REG::PROG::OTPREF

◆ PROGEN

uint16_t AS5047U_REG::PROG::PROGEN

◆ PROGOTP

uint16_t AS5047U_REG::PROG::PROGOTP

◆ PROGVER

uint16_t AS5047U_REG::PROG::PROGVER

◆ reserved_1

uint16_t AS5047U_REG::PROG::reserved_1

◆ reserved_4

uint16_t AS5047U_REG::PROG::reserved_4

◆ reserved_5

uint16_t AS5047U_REG::PROG::reserved_5

◆ reserved_7

uint16_t AS5047U_REG::PROG::reserved_7

◆ reserved_8_15

uint16_t AS5047U_REG::PROG::reserved_8_15

◆ value

uint16_t AS5047U_REG::PROG::value

The documentation for this struct was generated from the following file: