Post Go back to editing

AD7770 MEMMAP_CRC_ERR Occurence

Category: Hardware
Product Number: AD7770

Hi, Guys
Thnk you for your support.

"MEMMAP_CRC_ERR" error occurs when the AD7770 is initialized according to the following procedures (1) to (3).
Please advise me what should I do to prevent the error from occurring.

(1) Hardware reset
(2) Enable the CRC check function (SPI_CRC_ERR) for SPI communication.
(3) Write the set value to 16 registers (*4) in succession.

*1 This does not occur when the CRC check function in (2) is disabled.
*2 This does not occur when an error check (reading GEN_ERR_REG_1) is performed for each write to one register in (3).
*3 No problem in the initial processing immediately after power-on. This problem occurs when this procedure is executed during operation.

*4 List of registers to be set and written (16 registers in total)    
CH0_CONFIG~CH7_CONFIG (Addr: 0x000~0x007)   
GENERAL_USER_CONFIG_1 (Addr: 0x011)   
GENERAL_USER_CONFIG_2 (Addr: 0x012)   
ADC_MUX_CONFIG (Addr:0x015)   
SRC_N_MSB (Addr: 0x060)   
SRC_N_LSB (Addr: 0x061)   
SRC_IF_MSB (Addr: 0x062)   
SRC_IF_LSB (Addr: 0x063)   
SRC_UPDATE (Addr: 0x064)

  • Hi  ,

    After reading the MEMMAP_CRC_ERR to be set, can you confirm the register values are the same with what you have written?

    Please perform a register read before and after the bit sets and share the result here. 

    *2 This does not occur when an error check (reading GEN_ERR_REG_1) is performed for each write to one register in (3).

    Can you please confirm this does not occur when you write to one of the registers, but only occurs when you write to 16 registers you listed?

    Thanks,
    Janine

  • Hi JEstayo,

    thank you for your support.

    After reading the MEMMAP_CRC_ERR to be set, can you confirm the register values are the same with what you have written?

    The following procedure was used to confirm the results.

    1) Executed setting value writing to 16 registers
    2) Executed reading of 16 registers  => Confirmed that the read values matched the written values
    3) Executed reading the MEM_CRC_err flag => Confirmed that an error occurred
    4) Executed to read 16 registers =>  Confirmed that the read values are the same as the written values

    The following is the data of the registers.

    CH0_CONFIG ~ CH7_CONFIG(0x000~0x007) => 0x00
    GENERAL_USER_CONFIG_1(0x011) => 0x74
    GENERAL_USER_CONFIG_2(0x012) => 0x08
    ADC_MUX_CONFIG(0x015) => 0x40
    SRC_N_MSB(0x060) => 0x00
    SRC_N_LSB(0x061) => 0xC8
    SRC_IF_MSB(0x062) => 0x00
    SRC_IF_LSB(0x063) => 0x00
    SRC_UPDATE(0x064) => 0x01

    Can you please confirm this does not occur when you write to one of the registers, but only occurs when you write to 16 registers you listed?

    As a result of confirmation, this occurred when consecutive writes were executed to two or more registers.

    Best Regards,
    Yuki.


  • Hi  ,

    When you write to consecutive registers, what is the frame size of your SPI transactions?

    Thanks,
    Janine

  • Hi Janine,

    The frame size is 8bits.

    Best regards,
    Yuki.

  • Hi  ,

    Can you please verify that the timing specifications in table 3 are met? 

    After writing to the decimation registers, please set the bit SRC_LOAD_UPDATE high for at least two MCLK periods and return the bit to 0 before attempting another update. Please share your entire register settings also.

    Thanks,
    Janine

  • Hi Janine,

    > After writing to the decimation registers, please set the bit SRC_LOAD_UPDATE high for at least two MCLK periods and return > > the bit to 0 before attempting another update. 

    I tried this, but it did not improve.

    Can you please verify that the timing specifications in table 3 are met? 

    The timing meets the spec.

    PDF

    I will share the register settings.

    PDF

    Best Regard,
    Yuki.