I've been working on a project for quite a while now, which involves the ESP8266 NodeMCU (v1.0), as well as two SPI Modules: ENC28J60, and RFID-RC522. With that being said, I encountered a problem recently, which I haven't been able to resolve so far. Working with micro-controllers and electronics is still a learning experience for me, so my knowledge here is limited. When I assembled the prototype for my project on breadboards, everything was working fine in the end. So I thought I can move on, and design my first PCB (ever).
After doing so, I quickly noticed that something is not working right: When inspecting the serial output, I found out that only the Ethernet-module (ENC28J60) has been recognized, whereas the initialization of the RFID-module (RFID-RC522) didn't work out. My first guess was, that the RFID-module was broken. After testing only the module on the breadboard, the initialization of the RFID-module worked out fine. Also, when only pluging the RFID-module into my PCB, it is recognized without any problems.
After some research, I found out the problem might stem from the SPI-lines on my PCB, as they should approximately have the same length when working with high frequency devices, such as the ESP ( https://resources.pcb.cadence.com/blog/2019-tips-for-optimal-high-speed-spi-layout-routing ). So I designed another PCB, with exactly this condition (+ I also tried to keep the SPI-routes short). When I soldered my newly designed PCB, I still got no positive result. The problem stays the same.
Does anyone have an idea, why only one of the SPI-devices is recognized, during initialization phase? The initialization of all the other devices works fine. I have attached the schematics of my PCB-design to this thread.
As a side information: I am using the LM3940 voltage regulator. When measuring the voltage, I get almost exactly 3.3 V (as required by my modules).
I would really appreciate any comment and help on this.
Please let me know if some information is missing. I will reply as soon as I can.