cancel
Showing results for 
Search instead for 
Did you mean: 

RFID Read not working after MCU migration

Yves Bmnt
Associate III

Hi,

I changed the MCU on my design from STM32 L031 to L051 & L052 to have more flash then have a DAC output.

I kept exactly the same ST supplied libraries / APIs for the RFID part, and command them in the exact same way with all MCUs.

SPI to RFID chip runs @4Mbit/s.

My design is using the ST25r3911 for RFID in NFCV / 15693 standard.

Allthough the RFID works perfectly on the old design with L031, the RFID read returns a CRC error on the other 2.

The tag detect, ID read & single block write work fine though.

(The PCB design is exactly the same for the L031 and L051, only changed for L052 to add more functionalities)

Could anyone help please?

Kind regards,

Yves

3 REPLIES 3
Andrew Neil
Super User

Please show your schematics; also, what tools (including versions) are you using?

How to write your question to maximize your chances to find a solution

 

A change of tools (or tool versions) could cause timing variations, and might awake latent bugs.

 

Have you used an oscilloscope on the new hardware to verify signal integrity - levels, clean edges, noise, etc ?

Have you used an analyser to verify the actual comms on the wire ?

Compare & contrast the working & non-working cases.

 


@Yves Bmnt wrote:

the RFID read returns a CRC error


Is that in your software, or the reader itself ?

Again, compare & contrast the working & non-working cases.

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.
Yves Bmnt
Associate III

Hi Andrew,

sorry, I can't share the schematics for the electronics. However, they work fine with the L031 design.

I use STM32CubeIDE 1.19.0 at the moment, which is not the version I used several years ago for the inital working design.

The clock setup is slightly different from one MCU to another, I think I managed to replicate it, but I am still suspecting a possible clock setting or behaviour causing the issue.

I have checked the signals (SPI, RF) and they look good. They look similar on the working and non working boards.

The CRC error seems to come from the rfal_iso_15693_2.c file, in the iso15693VICCDecode function when checking if bit position is a multiple of 8


@Yves Bmnt wrote:

I use STM32CubeIDE 1.19.0 at the moment, which is not the version I used several years ago for the inital working design.


So have you rebuilt the L031 using that? Does it still work?

As noted, a change of version could affect things...

 


@Yves Bmnt wrote:

They look similar on the working and non working boards.


Only "similar" ?

So focus on what's different ...

 


@Yves Bmnt wrote:

The CRC error seems to come from the rfal_iso_15693_2.c file, in the iso15693VICCDecode function when checking if bit position is a multiple of 8


So focus-in on that:

  • Is it using the same CRC settings?
  • Is it being fed the exact same data?
  • Where, exactly, does the error occur?

 

PS:

 


@Yves Bmnt wrote:

can't share the schematics


Can you reproduce the behaviour on dev boards ?

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.