I have an issue quite similar to this one. The behavior of my MAX7221 is the following:
- when powering on the board the first time (let's from cold & dark) it turn on all the segments and does not respond to any SPI command
- turning off and on the power supply leads to the correct behavior
- turning off the power supply, short-circuit V+ with GND, and turning on leads to the same behavior of point 1.
Here my schematic:
- I checked the source of the IC: Mouser
- I tried with different SPI clock speeds: it changes nothing. When it works, it works always. When it hangs on power on, it does not respond until a power cycle.
- I tried with different C51 values: it changes nothing. From 0 pF to 2200 uF the behavior is exactly the same. On the 5V rail I only have another 10 uF placed close the power supply and a bunch of 100 nF placed close the other ICs.
- the datasheet says: "Display Blanked on Power-Up" but this is not true. Even when it works correctly, on power up it shows some random segments on. Anyway, I can issue the SPI commands to turn them off.
Because after a power cycling it works fine, I bet there is something about the capacitors. Because the MAX7221 does not have a reset pin, the only idea that comes to mind is to add a power switch to turn it on after a while... but I wonder if there is a more elegant solution.