Just came across a relatively new concept called Gugaplexing (sorry no references) which can drive twice as many LEDs as Charlieplexing...
Charlieplexing allows us drive any unique LED in a matrix by setting two pins lo/hi. Gugaplexing uses a handful of transistors as tri-state invertors and allows us to drive additional unique LEDs in a matrix by setting two pins hi/hi or lo/lo. As with Charlieplexing, all other pins will be tri-stated.
Refer to the crude drawing below and work through the signal paths to see which LEDs are turned on when you make any two pins lo/hi, lo/lo, or hi/hi to see how it works. The columns labeled NOTP1, NOTP2, NOTP3, and NOTP4 are driven by the tri-state invertors. I use the blue lines to indicate "lo" and the red lines to indicate "hi" and I move them around the matrix drawing to help me visualize the signal paths.
A see a couple negatives with this method; (1) It requires additional circuitry, and (2) Where I've shown how we can drive a column full of LEDs at one time in a Charlieplexed matrix (with nice even brightness), the Gugaplex decoding only allows us to drive one LED at a time so duty cycles and brightness could be dramatically lower.
All in all, a very interesting concept.
Mike
ps: disregard LED numbers in drawing. they're just left over from some other drawing...
hi Mike, [K8LH]
As you say, the down side is the extra hardware and board area.
I think I would go the charlieplex route in a design and if that couldn't cut it, I would most likely goto to a PIC with a higher pin count.
To me gugaplexing sounds a bit too complex in its complexity when compared to the multplexing of charlieplexing and just increases the complexity of the program.
hi Mike, [K8LH]
To me gugaplexing sounds a bit too complex in its complexity when compared to the multplexing of charlieplexing and just increases the complexity of the program.
Just fine now, thank you. Had a bout with pneumonia back in the winter that took its toll for a while.
Just got a PICkit2 system for my big 70 birthday a couple of weeks ago, and have been learning assembly with it. I was using PICaxe for its simplicity, but felt challenged by the "exotic" language.
Learning assembly is easy. Learning M-sPasm proves more difficult.
Just fine now, thank you. Had a bout with pneumonia back in the winter that took its toll for a while.
Just got a PICkit2 system for my big 70 birthday a couple of weeks ago, and have been learning assembly with it. I was using PICaxe for its simplicity, but felt challenged by the "exotic" language.
Learning assembly is easy. Learning M-sPasm proves more difficult.
hi Mike, [K8LH]
As you say, the down side is the extra hardware and board area.
I think I would go the charlieplex route in a design and if that couldn't cut it, I would most likely goto to a PIC with a higher pin count.
To me gugaplexing sounds a bit too complex in its complexity when compared to the multplexing of charlieplexing and just increases the complexity of the program.
Definately some disadvantages but I suspect there are situations where this method might come in handy.
The article author uses a pair of 40 element arrays which contain the data direction register and output port register patterns to drive each individual LED in the matrix. I'd like to see if I could modify the matrix layout to simplify the transistor driver scheme and reduce the array handling overhead in the software driver.
Not that far along, yet. I have successfully programmed a light sensor and a temperature sensor. Soon I will get into the perplexing plexination of LEDs.
Yeah, we have them too. I was in line for the 'monia and flu a few years back. At my turn, the nurse said I would be getting the last 'monia shot. Behind me was an elderly gentleman, looked like he was on his last legs. I passed on mine so he could have it. He's probably dead now, and I got pneumonia. Life's a bar-room beauty queen, ain't it?
I usually check the obituaries in the morning paper before taking any chances! LOL