Why do you need this extra circuitry? Why can't a pic drive the strings direct?
I just checked and a 20 pin pic could drive 16 strings and only use about 0.3% (3mS) of it's processor time.
Or, am I missing something?
Mike.
Hi Mike
I am sure by direct driving you mean the data signal itself. (not the volts and amps).
The objective of this project was to avoid tedious programming of the sensitive and tight timing requirements of WS2811.
WS2811 Controller (inexpensive version with remote (or something similar) can produce 300 color FX) handles all of that. All we are doing with the PIC is to turn on specific string (as a switch).
Direct Drive: Let's say you want to direct drive with the PIC and multiplex the whole thing with your PIC (5o pixels by 15 stings).
1- You don't have enough output ports. You need 15 pins for horizontal and one port for data driving. I suppose you can cut back to 14 outs plus data.
2- PIC16F628A's internal clock is not fast enough to send all the addresses (750 pixels x 24 bit per pixel x time needed for each on/off, plus reset signal for refreshing, plus your overhead). You can add on an external clock to speed up the process, which will burn up two more of your outputs.
3- Then you really need to spend some time configuring the data transfer to the strings for specific number of pixels per string and individual FX. If i want to change from 50 pixels to 40 or 60 pixels per string then you have to completely overhaul the program.
It is doable but as I said I wanted to simplify the project. Buy a WS2811 controller, and programming of PIC is as simple as turning 1 or more outputs on or off without any worries about PWM, timing, interrupts, and so on.