Post Go back to editing

ADXL372: Purpose of 'User NVM' and NV memory technology used

Category: Datasheet/Specs
Product Number: ADXL372

Greetings - 

We are testing the ADXL372 for a customer who would like to understand better two elements of the ADXL372:

  1. The ADXL372 makes passing reference to user-programmable non-volatile memory in the device. Specifically, mention of user-programmable NVM is contained in the Status Register (address 0x04). I could not find reference elsewhere in the datasheet to user NVM. What is the user NVM and what purpose does it serve? How does one program it?
  2. The device must contain NVM to store its calibration constants - ADI must program this NVM during the production phase. What technology is this memory? Meaning: Flash, EEPROM, fuse-based (zener diode or some other fuse-based method), etc. If fuse-based, what is the fuse mechanism (zener diode, poly resistor, etc.).

Thanks and regards,

bill

  • Hi Bill, 

    the USER_NVM_BUSY bit in register 0x04 is read only (not programable by the user). As you mention in question 2, the ADXL372 NVM to stores the trim values set in production. Check bits for the registers are re-computed whenever there is a write to one of the User writeable register (0x20 – 0x3F). After the NVM is refreshed, the contents of the NMV are stored in local registers. When this update occurs, a checkbit is generated for the local NVM registers. If any of these registers are corrupted the error detection circuitry will generate an error and force a refresh of the NVM. This refresh is only done when the part is in measure mode. If it is in any other mode the refresh is held off until the part enters Measurement mode. The refresh of the NVM happens without any user interaction.

    The memory is fuse-based but I am not sure about the mechanism. I will forward this question to one of our design engineers. There might be some delay in the response because people is on vacation at this time of the year. 

    Regards , 

    Pablo. 

  • Thanks you Pablo.

    Item 1 was asking more about the purpose of the 'user programmable' NVM. I completely understand the internal cal values and how it is stored in NVM that only ADI can access, but how can the user program any of the user-programmable NVM? What purpose does this NVM serve?

    I look forward to learning more about the NVM fuse-based memory type.

    regards,

    bill

  • Hi Bill, 

    As I mention before, the NVM is not user programable. 

    Regards, 

    Pablo. 

  • Pablo,

    I think you're missing my question. The data sheet explicitly calls out a reference to user programmable NVM. From the Status Register (0x04), bit 5 definition:

    USER_NVM_BUSY 1 = nonvolatile memory (NVM) is busy programming fuses.

    What NVM is this bit representing? Is this a holdover from an unreleased feature? Or a typo of some form?

    thanks,

    bill

  • Hi Bill, 

    There is not explicit mention of a user programable NVMAs I said before, USER_NVM_BUSY bit in register 0x04 is read only (not programable by the user). The "programming" of fuses happens without any user interaction. The only propose USER_NVM_BUSY bit is for the USER to know if the trim values were loaded correctly in the NVM. 

    Pablo. 

  • Got it. Thanks. But the text IS confusing.