Nunja, das geht auch, ein Hardware I2C-Slave würde ich auch vorschlagen. Das PWM kannst du dir aber sogar per Software generieren, du brauchst für nen Motortreiber ja keine superhohen Frequenzen. Ich sag mal 10-50kHz als oberstes Maximum, soviel schafft kein physischer Motor. Deswegen kannst du mit z.B. Zählervergleichen in Software die Punkte für das Setzen und Löschen von Port-Pins berechnen und dann, wenn so eine Änderung eintritt, die Ports verändern. Gerade bei niedrigen Frequenzen kannst du dann den Controller bis zum nächsten I2C Interrupt oder Timer Interrupt in den Sleepmodus versetzen, das spart nochmal Strom. Um ehrlich zu sein, wollte ich sowas auch immer mal bauen, bin aber nie dazu gekomme, Zeitmangel. Für meine RGB-Treiberstufe für ein Moodlight brauch ich auch noch einen PWM Generator für 3 Kanäle, da werde ich das so machen und den Rest der Software auch noch mit reinquetschen.