Hi,

That was a great explanation walkura and thanks for the "human" explanation. Now I would try to dig into the software aspects a little. I am a complete self taught and know my lackings, so please correct me if I am conceptually wrong.
  • While changing cycles within the software the loop latency may be variable if you are not using your own asm interrupts to deal with that. Since this is all about PBP my recommendations are for time critical routines use asm. As already proved asm+PBP=muscle. Considering a round-robin multitasking with no blocking codes would ensure specific time slots alloted to different routine on priority basis.
  • Your load is imbalanced. I have seen a few cheap soldering irons which has a single diode inside them. Causing to draw current in only cylce.
  • For ease of manufacturing I have seen MOSFETs on a common heatsink. This reduces a per channel MOSFET Rds-On difference and thus should be avoided for a stable design and utilize the MOSFETs property of negative temperature co-efficient for balancing.
  • Per cycle flux reset may be applied during the dead-time with its own pros-cons (may not be applicable for ZVT implementation)
  • Since the current drawn per cycle is also a function of the impedance it may be accomodated in software as well as almost all hardware designs support current sensing.
  • Sometimes ADC based current sensing can take longer to come into action and kill your MOSFETs. So my advice is use a comparator based sensing to quickly turn-off your MOSFETs under fault conditions and use the current sense for your other tasks or PID.
  • If you are into serious intelligent smps design then consider the dsPIC (No PBP support however). Your tasks become real easy for only smps implementation.