Hello,
I'm designing what's essentially an I2C-to-PWM output driver, based on SLG46533.
For PWM, I'm using a DFF+Delay circuit described in September 2018 GreenPAK Cookbook, page 38: "Technique: Setting a Constant Duty Cycle". To control the PWM duty cycle, I use an idea from Application Note AN-1144 "I2C IO Controllers 8-bit BUS". I update CNT/DLY module's Counter Data via I2C by sending a command to modify the appropriate registers; for example, CNT2/DLY2 in SLG46533 is reg<1543:1536>. This solution works great in emulation, but...
My question is: every time I modify the Counter Data - am I rewriting the NVM? Is there a limit to how many times I can do this? Is there perhaps a more elegant way to control up to 3 PWM outputs' duty cycles via I2C?
I'm attaching my design to this message, too
Thanks!
Hi Peterpotnin, you can also see//www.wsdof.com/sites/default/files/an-cm-248_pwm_c...PWM implementation. All counter data changes are in electric dependent memory, so after the chip reset all the registers are copied from the NVM again. Those registers like RAM have huge count of writing cycles.
Thank you guys for being so responsive and knowledgeable! In addition to PavloZ's answer, here's what I got from Dialog's Alex Richardson over email (which solves my predicament):