Weird!!!! Cannot get 100% ACK from ATECC508A when using with STM32

Hi there!

I got a question which is related to SparkFun breakout ATECC508A and STM32 using HAL I2C API.

When I send data 0x00 to ATECC508A in order to wake it up, no ACK can be received. This wake up command is placed in initialization meaning it will be triggered once for every time when STM32 gains power. Here comes to the interesting part, if I press RESET button frequently to reboot STM32 and trigger wake up command within a certain period , says, 2 or 3 press per second, I can receive ACK from each press. On the other hand, if I just press RESET button 1 time per second or just power on STM32 without pressing RESET, no ACK can be received. Speed of I2C I am using is 100kHz. As ACK can be received under certain condition, I think slave address and wiring should not have problem. I have no idea on this weird issue and appreciate any assistance from you guys~~~Cheers!