2025-12-04 1:21 AM
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
2025-12-04 1:38 AM - edited 2025-12-04 1:49 AM
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.
2025-12-04 2:17 AM
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
2025-12-04 2:24 AM - edited 2025-12-04 2:26 AM
@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:
PS:
@Yves Bmnt wrote:can't share the schematics
Can you reproduce the behaviour on dev boards ?