Ahh that's nice then, as long as excessive amounts aren't wired up, or someone accidentally points a death ray at the panels or something, I don't know...
One of those things, it's an obvious failure point, but actually a tiny risk in practice, I suppose. (Nice when that happens, eh?)
I was thinking a little more about the best controller configuration and the best way looks like simply taking 50% duty signal and just OR it with Boost signal, plus I can easily add that buck stage to it as it is independent
Hmm... yeah. Indeed, interesting that, switching dynamics aside -- the shorting-mode switching can operate independently of the polarity switching, so you can do literally that, without even synchronizing the two. You will in general incur additional switching edges that way (switching is the nonlinear behavior here!), so it's of course better with sync.
I know offhand, the, I think the AVR-DA Timer Counter A (TCA) can do a mode like this, but probably you'd choose TCD for its better control and fault features. I know little about PICs but I have to imagine they've got similar functionality with the COG stuff, and, whatever the CCL equivalent is, if not actually the same things. And sure, if you generate it the other way, you could even just use a pair of TCBs and CCL to do the toggle flip-flop, logical OR with a one-shot (reset by event from the master TCB), and whatever EVOUT or CCLOUT pins give your waveform. With AC (analog comparator) routed to reset/fault the thing for peak current control.
Uh, which'll use up all six LUTs on a AVR64DA64 won't it, so you better not need anything else I suppose, but that should just do I think. Or yeah, use TCD, or whatever other configs, there's lots of options as long as you aren't doing it at moderately high frequencies (under 200kHz is probably no problem at all?).
The main downside to AVR-DA in comparison to others is probably the relatively low clock frequency / low resolution timers. At 24 (or "overclocked" to 32) MHz, running at 200kHz would be kinda chunky (~7 bits ENOB in the PWMDAC), and the control is going to start looking like a sigma-delta modulator. (Counterpoint: just dither the LSB to get an already reasonably strong MPPT signal?) In contrast to the XMEGAs that can do 128MHz "sub-cycle" resolution (which is, uh, because PLL clock source for the timers, I think it was?), or probably a lot of PICs that just run at whatever 64MHz or more and so have that available for timers too, or if any of them have similar multiplied clock or Vernier or whatever methods too. (Which, AVR-DA's TCD is only 12 bits anyway, but does have a "dither" function to fill in the "missing" 4, so that's something too, I guess.) And, plenty of ARMs with powerful and fast timers, needless to say.
The second downside to AVR-DA is the ADC is only ~125kSps. For peak current mode, you don't need any acquisition to handle things on a cycle-to-cycle basis so that's fine, and for average current mode, loop BW < Fclk is okay, so that's fine as well. But if you want more bandwidth to be certain, or more channels per controller or something, that would be a reason not to go this way. (Do the other AVR-Dx have faster peripherals? I haven't checked. But you'll be heavily limited by the CPU power, doing any kind of DSP at such a rate.)
Tim