The Maxim 72xx LED Controller IC
The MAX7219/MAX7221 are compact, serial input/output display drivers that interface microprocessors to 7-segment numeric LED displays of up to 8 digits, bar-graph displays, or 64 individual LEDs. Included on-chip are a BCD code-B decoder, multiplex scan circuitry, segment and digit drivers, and an 8x8 static RAM that stores each digit.
A convenient 4-wire serial interface (SPI) connects to all common microprocessors. The devices may be cascaded, with communications passed through the first device in the chain to all others.
Individual digits may be addressed and updated without rewriting the entire display. The MAX72XX also allow the user to select code-B decoding or no-decode for each digit.
The devices include
- a 150uA low-power shutdown mode
- analog and digital brightness control
- a scan limit register that allows the user to display from 1 to 8 digits
- a test mode that forces all LEDs on
Topics
Revision History
April 2014 version 2.4
- Improved reliability of initialization code to remove artifacts
- Changed order of hardware initialization for SS, _csPin
- Changed initialisation sequence at begin()
- Fixed memset bug identified by bperrybap
- Reworked command SPI transmissions for efficiency
- Cleanup up compiler warnings on inline wrapper code functions
- Cleaned up examples begin() - better defined library default values
- Reviewed and tidied up some documentation
March 2014 - version 2.3
- Extensive rework of the font system
- New font Microsoft Excel VBA based builder tool available
- Removed USE_FONT_ADJUST and related code - replace by builder tool
- Fixed width font has been removed from the library. Definition still available in font builder
- fontype_t definition changed to suit new requirements
- Transform zoning implemented (contiguous subset of services)
- Transformation functions, control, clear, setRow methods overloaded with range specifier
- User callback for L/R rotation function syntax added a device parameter
- New Zones example
- USE_*_HW hardware types now separated out for future flexibility
- Rework of the library to use new schema for defining hardware characteristics
- New utility code to map out digits and segments for unknown hardware types
- Rechecked and reworked examples for new library
November 2013 - version 2.2
- Replaced reference to SPI library with inline code to allow for different select lines
- Obsoleted INCLUDE_HARDWARE_SPI conditional compile switch
- Fixed legacy code function name error when USE_FONT_ADJUST switch turned on
- Implemented USE_PAROLA_HW to allow cheaply available matrix modules to be used in ganged mode
- Fixed reversal of bit field for set/get Row/Column functions -> flipped charset data
- Added Eyes example program
- Upgraded and reorganized documentation
June 2013 - version 2.1
- Include the selection of hardware SPI interface (10x speed improvement)
- Tidied up comments
April 2013 - version 2.0
- Major update and rewrite of library code:
- Improved speed and efficiency of code
- Increased level of abstraction in the library for pixel methods
- Increased level of abstraction for character and font methods
- Increased number of functions and added variable sized font
- Changed defines to enumerated types within the scope of the class
- Updated functionality to simplify controlling multiple devices
- Changed text and comments to be aligned to doxygen documentation generation
June 2012 - version 1.0
- Incorporated elements of Arduino LedControl (Eberhard Fahle) and MAX7219 libraries
- Easier functionality for pixel graphics treatment of 8x8 matrices
Copyright
Copyright (C) 2012-14 Marco Colli. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA