I was studying some LED matrix designs on the Net and came across the one below:
- DMD: Dot Matrix Display 32x16 (link to product)
- (somewhat poorly drawn) schematics of an old version of the product.
Its design puzzled me because I couldn't tell how it limits the current through each LED and through the shift registers outputs without any current limiting resistors.
For clarity, here are the relevant parts of the schematics diagram linked above.
VCC is 5V.
Here are the relevant datasheets:
- APM4953 - Dual P-Channel Enhancement Mode Mosfet
- 74HC595 - 8-bit serial-in, serial or parallel-out shift register
- Unfortunately, I know nothing about the LED used (so I assumed common 2V, 20mA red LED indicators).
As far as I can tell, to light a LED, say D512, one has to:
- turn on the high-side PFET by setting HI1 to
LOW, thus turning row HO1 on, and
- set the '595 shift register output QH (pin 7) to
In this case, the current path would be the following:
My question is: what is limiting the current through the LED and '595 QH output?
My best guess is that, somehow, the '595 is clamping the current to the desired value of 20mA, which incidentally may be the forward current intended to be pushed through a common LED indicator. Is that it? If so, why does that happen?
Another guess is that there is a specific combination of VCC, multiplexing scheme, LED forward voltage and current that magically limits the current.
In any case, is this the Right Way of Designing It(TM)? Or is this just a trick in which the '595 is being used outside its specs?