Overview

The MAX7219 is a compact, serial input/output common-cathode display driver IC manufactured by Maxim Integrated (Analog Devices). It interfaces microcontrollers to up to 8 digits of 7-segment numeric LED displays, bar-graph displays, or an 8x8 LED dot-matrix display.

It integrates a BCD Code-B decoder, multiplex scan circuitry, segment and digit drivers, and an internal static RAM that stores display data. Communication uses a simple 3-wire serial SPI interface (DIN, CLK, LOAD/CS), and multiple MAX7219 modules can be daisy-chained together to form large LED ticker displays.

Quick reference

Operating Voltage (VCC)4.0 V to 5.5 V DC (5.0 V nominal)
Display Support8 digits ×\times 7-segments + DP OR 64 individual LEDs (8x8 Matrix)
Interface3-wire SPI serial interface (DIN, CLK, LOAD / CS)
Daisy-chainingSupported via DOUT pin
Brightness Control16-level digital intensity control via internal PWM
Current ControlSingle external resistor (RSETR_{SET}, typically 10 kΩ10\text{ k}\Omega) sets peak LED current
Shutdown Mode150 µA low-power feature retain state

Pinout

24-Pin DIP Package / Standard 8x8 Dot Matrix Module Input & Output Headers

text
           ┌──────────┐
      DIN ──│ 1     24 │── DIG 0
    DIG 0 ──│ 2     23 │── DIG 4
    DIG 4 ──│ 3     22 │── GND
      GND ──│ 4     21 │── DIG 2
    DIG 2 ──│ 5     20 │── DIG 3
    DIG 3 ──│ 6     19 │── VCC
    DIG 7 ──│ 7     18 │── ISET
      GND ──│ 8     17 │── SEGA
    DIG 5 ──│ 9     16 │── SEGB
    DIG 1 ──│ 10    15 │── SEGC
  LOAD/CS ──│ 11    14 │── SEGD
      CLK ──│ 12    13 │── DOUT
           └──────────┘
PinNameTypeDescription
1DINDigital InputSerial Data Input (Data clocked into 16-bit shift register on CLK rising edge)
2, 3, 5, 6, 7, 9, 10, 21, 23DIG 0DIG 7Driver Output8 Digit Cathode Drive lines (sink current from common-cathode LEDs)
4, 8, 22GNDPowerGround (0 V)
11LOAD / CSDigital InputChip Select / Load input (Latch data on LOAD rising edge)
12CLKDigital InputSerial Clock input (up to 10 MHz)
13DOUTDigital OutputSerial Data Output for daisy-chaining to next MAX7219 DIN
14–17, 20, 24SEGASEGG, DPDriver Output8 Segment Anode Drive lines (source current to LED segments)
18ISETPower InputConnects to RSETR_{SET} resistor to VCCV_{CC} to set peak segment current
19VCCPower InputSupply voltage (+4.0 V to +5.5 V DC)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply VoltageVCCV_{CC}4.05.05.5VDC
Logic High InputVIHV_{IH}3.5VCCV_{CC}VDIN, CLK, LOAD
Logic Low InputVILV_{IL}00.8VDIN, CLK, LOAD
Segment Drive CurrentISEGI_{SEG}-30-40-45mAVCC=5.0 VV_{CC} = 5.0\text{ V}, RSET=9.53 kΩR_{SET} = 9.53\text{ k}\Omega
Shutdown Supply CurrentICC,offI_{CC,off}150µAShutdown=0x00Shutdown = 0x00
Clock FrequencyfCLKf_{CLK}10MHzSPI clock rate

Control Register Map (16-Bit Word Transferred MSB First)

A 16-bit serial frame consists of an 8-bit Address byte (D15D8) followed by an 8-bit Data byte (D7D0):

Address HexRegister NameData Byte Functions
0x00NO-OPNo Operation (Used when passing data through daisy-chained modules)
0x01 to 0x08DIGIT 0 to DIGIT 7Segment / Dot Matrix row data byte (0x00 to 0xFF)
0x09DECODE MODE0x00 = No BCD decode (Raw matrix mode); 0xFF = BCD Code-B decode for Digits 0–7
0x0AINTENSITY0x00 (Min brightness, 1/32 duty cycle) to 0x0F (Max brightness, 31/32 duty cycle)
0x0BSCAN LIMIT0x00 (Display Digit 0 only) to 0x07 (Display Digits 0–7)
0x0CSHUTDOWN0x00 = Shutdown mode (Display off); 0x01 = Normal operation
0x0FDISPLAY TEST0x00 = Normal operation; 0x01 = Display Test mode (All LEDs ON)

Initialization Sequence Example

  1. Write 0x0C01 (Exit Shutdown mode -> Normal operation).
  2. Write 0x0B07 (Set Scan Limit to all 8 digits / 8 matrix rows).
  3. Write 0x0900 (Set Decode Mode to No-Decode for matrix or raw 7-segment drive).
  4. Write 0x0A07 (Set Intensity to medium brightness 8/16).
  5. Write 0x0F00 (Disable Display Test mode).

Wiring

MAX7219 Module PinMicrocontroller (Arduino / ESP32)Notes
VCC5VMust be 5V DC (3.3V power is insufficient for red LEDs)
GNDGNDGround
DINMOSI / Serial Data Out (e.g. D11 on Uno / GPIO23 on ESP32)Serial Data
CS / LOADSS / Chip Select Pin (e.g. D10 on Uno / GPIO5 on ESP32)Latch signal
CLKSCK / Serial Clock Pin (e.g. D13 on Uno / GPIO18 on ESP32)Clock signal

Common mistakes

  • Leaving chip in Shutdown mode (0x0C00): On initial power-up, the MAX7219 defaults to Shutdown mode with the display turned off. Software MUST write 0x01 to register 0x0C during startup.
  • Powering from 3.3V: The MAX7219 requires VCC4.0 VV_{CC} \ge 4.0\text{ V}. Operating on 3.3V causes dim, flickering, or unlit LED segments.
  • Daisy-chaining without proper power distribution: Cascading 4 or 8 dot-matrix modules in a chain draws >1.5 A> 1.5\text{ A} when all LEDs are illuminated. Power the VCCV_{CC} and GNDGND rails of downstream matrix panels directly from a dedicated 5V power supply rather than passing current through thin PCB traces.

Notes

  • Uses standard libraries like MD_MAX72XX and LedControl for scrolling marquee text and matrix graphics.

Assets & downloads