olimex:
But let me clarify something: Yes, the MAX7219 can be used also with common anode displays, BUT you will have problems with the working specs of the chip. The segments pins can manage much less current than the digits pins and this maybe isn't a problem if you are using very small displays, but with bigger displays you have to put some sort of driver, am I right?
No, quite wrong.
It makes no difference.
CrossRoads is confusing you in his earlier post with statements that are only relevant if you continue to think of it as needing to display (multiplex) digit by digit.
CrossRoads:
MAX7219 doesn't do common anode without other hardware support.
Not true.
CrossRoads:
It is designed for common cathode - drives up to 8 segment lines high, and one of 8 common cathode lines (digit select lines) low at a time.
His later post is more correct.
It is not an electrical problem, it is coding. If you use a common anode display, you just connect it up the same as a matrix, cathodes to cathode drivers, anodes to anode drivers. Same number of components.
What happens now is that you are multiplexing one segment of all the digits at once, then the next segment of all digits at once and so on, rather than all segments of one digit at once. But the chip performs the multiplexing for you. All you need to know is that it has eight registers into which you write this data. Normally (which is to say, with a common cathode display) each of those registers contains all the segment data for one digit and you could use the internal decoder to map four bits of that byte as a value to be converted by the chip to a 7-segment pattern but this completely restricts you to digits 0 to 9 (and "H", "E", "L", "P"!).
If using a common anode display, you probably also want one byte to correspond to one digit so you write those bytes into an 8-byte array. You then write the code (or if you are desperate, I will write it for you) to shift corresponding bits of each of those digits into the MAX7219, one bit from each array byte at a time (which is no trouble, as you have to load the MAX7219 with the bits serially in any case and you only have to do this each time you have to change the data displayed, not to multiplex it), then the next bit from each array byte and so on.
The only practical limitation as I believe I explained before (in that other thread), is that if you were using only four digits, then if you had a common cathode display you could restrict the chip to a 1 in 4 multiplex and have each digits powered for a full quarter of the time, whereas for a common anode display, you are constrained to a 1 in 7 multiplex and have each segment powered for one seventh of the time (or one eighth if you are using the decimals), so you cannot push the brightness up quite as much. If you are using eight digits, there is of course no difference and the MAX7219 in any case delivers much more current than the crude shift register solutions.