How many PWM outputs does the Atmega4809 really have? The Microchip site claims it has 8.
The datasheet for the Atmega4809 microcontroller is split up into two pdfs. This one is for the megaAVR family. It describes the timer configuration for generic timers used in PWM. This one describes a few specifics of the pin layout for the Atmega4809.
For PWM, the Atmega4809 has:
- One 16-bit Timer/Counter type A with dedicated period register, three compare channels (TCA)
- Four 16-bit Timer/Counter type B with input capture (TCB)
- One 16-bit Real Time Counter (RTC) running from external crystal or internal RC oscillator
From what I understand, the one TCA timer has PWM 3 output channels and TCB timers each have only one output channel. That makes 7 PWM output channels. Does that mean the real-time counter (RTC) can be configured as a PWM output?
Best Answer
I am not sure where does the number 8 come from, but I can see total of 10 possible PWM outputs in the datasheet.
The RTC has no easy & direct way how to create PWM output.
On the other hand TCA timer can be run in split 8bit mode. Citing from the megaAVR family datasheet, page 193:
You can enable this mode by setting bit 0 in
CTRLD
register. The meaning ofCTRLB
register changes then and you can enable all 6 outputs there. So, if it is acceptable to have 8bit only PWM with common clock source for all 6 channels, you can use this mode.Atmega4809 datasheet shows, in page 8, which pins can be outputs of TCA0 mapped to.
TCB timers add 4 PWM channels, one for each counter.
If you really need more PWM channels, it is maybe possible to get one or few more (in a bit hacky way) through the custom logic unit. Use suitable source of periodic events (maybe the RTC?) to flip an output of CCL as needed.