We are using the MFRC630 (MFRC63003) for RFID/NFC communication controlled by STM32L162VC MCU and are facing a problem with I2C communication. Some of the MFRC630 IC's do not respond after sending the I2C address, there is no ACK signal.
However when we warm up de MRFC630 on the boards with this issue they do start to respond.
The question i have is if anyone has seen this kind of behavior and what could be the cause.
At this moment we have about 10% failure rate from a batch of 100 boards with this IC (100 boards, 70 tested of which 7 are having this issue). From an earlier production batch of 100 we did initially not see this issue but at a cooler temperature some of them also show the same issue. The temperature at which this happens is different per IC. The failing 7 from 70 are failing at room temperature (about 21 degree Celcius). Some need a few degree more to start working (25 to 30), others more. Some of the working boards stop working at a bit lower temperature (about 15 degree) some only when much colder.
Our design works at 3.3V (MCU, MFRC630 (Vdd and Pvdd), I2C bus). MFRC630 Tvdd is 4V.
The I2C bus has 3 devices, the MCU (master), the MFRC630 and another device (LCD)
I2C pull-ups are 4k7
I2C frequency is 400kHz
Test case to find the cause of the problem:
Test case: a board with MFRC630 chip that fails at around 21 degree but works at around 25..30 degree Celcius. MFRC 630 chip markings: MFRC63003, 10 01, ZSD 924.
Test: board powered but MFRC630 in hard power-down mode (PDOWN pin high). Start the test by pulling the PDOWN pin low, wait 5ms (later increased to 400ms), then send I2C address 0x28 and wait for ACK. This is repeated until the IC responds with ACK after which further initialization takes place and NFC communication starts working. If the chip does not respond with ACK then repeat the test. In this case warming up IC always brings it into working condition. When the chip cools down the problem is back.
What i tried to find the cause:
-lower I2C pull-up to 3k3, 1k6 and 1k.
-Lower I2C frequency to 100kHz, then 50kHz and even 10kHz.
-Remove the 3th device (LCD) from the bus.
-Increase the operating voltage to 3.55V (Tvdd still at 4V).
All of this did not change the behavior of initial response after sending the I2C slave address.
Below are some scope images showing the issue (ACK not send) and the same images when ACK is sent when the IC is warmed up. Scope channel 1 (yellow, CLK) and 2 (Cyan, SDA) show the I2C signals near the MCU. Channel 3 shows the SDA line at the MFRC630 to see if it differs from the signal at the MCU.
No ACK after sending the address. (Channel 1 = CLK (Yellow) at MCU, 2 = SDA (cyan) at MCU, 3 = SDA at MFRC630)
No ACK after sending the address. same image showing only SDA at MFRC630.
ACK received after sending the address (and following read data). (Channel 1 = CLK (Yellow) at MCU, 2 = SDA (cyan) at MCU, 3 = SDA at MFRC630)
(Zoom in on above picture showing 8 bits + ACK/NACK) ACK received. (Channel 1 = CLK (Yellow) at MCU, 2 = SDA (cyan) at MCU, 3 = SDA at MFRC630)
Same sample only showing the SDA line on the MFRC.
I do have similar images which show the CLK line at the MFRC 630, and also images showing (P)Vdd if needed.
Any ideas what can cause this behavior?