Max7219 27k resistor

hi everyone,

For my project i’m using 4x max7219 ic’s.

First question
On every website/ google/ image or so, I found schematics using Rset 27k ohm resistor for each module.
But when I look up for pre modules they don’t use 27k ohm resistor but a 10k ohm resistor.

For my previous project I had a comparable project where I use one adjustable resistor between 0 to 30k ohm for all te modules, this way i could adjust the brightness, but this time i want to use an LDR.

Do I still need to place a resistor with that high value?

Second question
I can’t find the 10k Load resistor on any pre module.
On any website that sells those modules with a schematic, they show me the module with only Rset resistor, but on the schematic it shows with a 10k load resistor.

Are those resistor even needed? Or are they indirectly connected with the Arduino/ ground and Load?

I have attachment as example.

Thanks

The purpose of the resistor (ISET in the max7219 data sheet) is to set the maximum current so it does not exceed that which the display can tolerate. To regulate the brightness of the display, you use commands to the max7219 through library functions. Use the ldr to determine the ambient light and send the appropriate commands to the chain of display modules.

The 10k pull down resistor on the load pin on that schematic you have attached is unusual. Its purpose is not clear to me. Just omit it.

|500x381

|500x370

6v6gt: The 10k pull down resistor on the load pin on that schematic you have attached is unusual. Its purpose is not clear to me. Just omit it.

Then you have not done much work with MAX7219s. :grinning:

Placing two of them in that schematic is a blunder, only one is needed. Its purpose is to stabilise the "Load" line while the Arduino code initialises to prevent random interference on floating lines writing garbage (including "all on" data or "lamp test") to the display. It is important and in no way unusual! :roll_eyes:

Iset of 10k (the minimum recommended value) sets the LED current at about 40 mA but the brightness is software controlled in 16 steps or PWM divisions of that current.

Paul__B:
Then you have not done much work with MAX7219s. :grinning:

Placing two of them in that schematic is a blunder, only one is needed. Its purpose is to stabilise the “Load” line while the Arduino code initialises to prevent random interference on floating lines writing garbage (including “all on” data or “lamp test”) to the display. It is important and in no way unusual! :roll_eyes:

I have used a few but mainly MAX7221 devices (which are quite similar) with both 7 segment displays and 8x8 dot matrix panels and have not come across the problem. I have heard of all sorts of desperate attempts to stabilise suspect fake MAX7219 devices, including series resistors in the data lines, but if you say this is a standard solution, I’ll take it seriously. The MAX7219 is anyway quite a crude implementation of a shift register type device and the MAX7221 is supposed to be better.

When I say "stabilise", it has nothing whatever to do with "fake" or below-spec devices.

These are CMOS devices with ridiculously high input impedance and are sensitive to capacitive coupling within the wiring.

During initialisation of the microprocessor, its I/O pins are set as INPUT and connected to CMOS inputs of the MAX7219, so are simply floating inputs. Other adjacent wires may have transients or they pick up mains interference - a CMOS gate makes an excellent electrostatic field "sniffer". The MAX7219/ 7221 sees these as data (as well as latch and clock commands) and loads its registers accordingly - and randomly.

To prevent this, you hold any one of the three control lines down (or up) with a resistor. I'll leave you to figure out the consequence of each option but in general, it means that any data appearing in the MAX7219/ 7221 registers codes for a blank display and awaits the microcontroller to take control and update with the desired information.

The MAX7219 is not in any way a "degenerate" variant of the MAX7221. They are the same design except for the buffering of the clock input and the former has totem-pole outputs in case it is required to drive logic buffers (for high voltage displays) while the latter has open-drain outputs which limit the reverse voltage applied to overly-sensitive LEDs. In essence, the MAX7221 is the "crude" version. :sunglasses:

If your program initializes and clears the display very soon after boot time, and you don't care about flickering at boot time, the 10k resistor isn't required.

aarg: If your program initialises and clears the display very soon after boot time, and you don't care about flickering at boot time, the 10k resistor isn't required.

Note however that in this case you must initialise all registers in the MAX7219/ 7221 because you do not know which may have been corrupted. :astonished: