Es gibt einen Nachbau des Atmega328P, den LGT8F328p. Doch ist das wirklich ein Nachbau? Ich würde sagen, jain.
Ich habe ihn mal getestet, dazu habe ich mir 2 Nano Varianten und einen Einzelchip zuschicken lassen.
Variante 1 ist mit externen Oszillator auf dem Board, wie der normale Nano. Statt des CH340G oder FT232 hat das Modul einen HT42B534 zur USB-Kommunikation. Zumindest im Windows stellte das kein Problem dar, es wurde unbemerkt im Hintergrund innerhalb von 5 Sekunden installiert. Auch die Arduino IDE hatte kein Problem damit.
Variante 2 arbeitet mit dem internen Oszillator, welcher im Lieferzustand auf 32 MHz eingestellt ist. Hier ist ein CH340 drauf, also auch kein Problem.
Um ihn zu verwenden, muss das Board in der IDE installiert werden. Ich habe dieses verwendet:

Dort steht auch, wie man es installiert.
Die meisten Sketche können 1:1 oder mit wenigen Änderungen übernommen werden. Die Nano's sind pinkompatibel. Das Erstaunliche, ich habe mal mit dem Blink Sketch angefangen und beim hochladen vergessen, den LGT8F328p einzustellen. Die Einstellungen waren noch auf dem Nano, trotzdem wurde es hochgeladen und funktionierte. Das war eine echte Überraschung.
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Doch nun zu den größten Unterschieden. Der Chip selber kann mit bis zu 32 MHz betrieben werden (ATMega nur 20 MHz). Er funktioniert schon mit 1,8 Volt - und das auch bei 32 MHz! Der ATMega kann die 16 MHz erst ab 4,5 Volt, bei 1,8 Volt maximal 4 MHz. Wie ich so bin, habe ich den LGT8F328p mal übertaktet. Mit 40 MHz und 3 Volt gab es keine Probleme.
Der A/D Wandler kann auf 11 oder 12 Bit erhöht werden, beim ATMega sind es nur 10 Bit. Es sind sogar Differenzmessungen möglich.
Es gibt 3 interne Referenzspannungen - 1,024 Volt, 2,048 Volt und 4,096 Volt, der ATMega hat nur 1.1 Volt. Im Gegensatz zum ATMega musste die Spannung nicht kalibriert werden, sie stimmte auf den beiden Modulen und dem Einzelchip absolut genau.
Nun meine Dinge, warum ich den Chip jetzt verwende. Die Boards sind schon für 99 Cent bei Aliexpress erhältlich. Wie beim ATMega gibt es auch eine Version als Nano, Mini, Uno oder andere.
Sie haben neben PWM auch einen echten Analogausgang. Wenn ich zum Beispiel eine Sinuswelle erzeugen will, muss ich im Anschluss nicht viel filtern. Ich kann auch einfach eine beliebige Gleichspannung ausgeben.
Es gibt einen Hochstromausgang (muss im Sketch aktiviert werden), der liefert 80 mA. Da kann man schon ein ordentliches Relais (mit Freilaufdiode) anklemmen.
Der LGT8F328p hat einen 16 Bit Timer mehr, die Frequenz beträgt bis zu 64 MHz, beim ATMega nur 20 MHz. Somit ist er nicht nur schneller, beim runterteilen lassen sich auch krumme Frequenzen genauer einstellen.
Doch es gibt auch einen ganz großen Nachteil, der LGT8F328p hat keinen EEPROM. Dieser kann zwar simuliert werden, dann geht es aber vom Speicherplatz des Flash ab. Das wäre nicht so schlimm, man beachte aber, dass sich ein Flash nur ca. 10000 mal beschreiben lässt (EEPROM mehr als 100000 mal). Hier sollte man also nicht zu oft Informationen schreiben. Die Nutzung eines externen SPI EEPROM wäre die bessere Lösung.
Hier mal einige Bilder des Analogausgangs ohne irgendwelche Filterung mit 25 Hz, 1 kHz und 1 MHz. Erstaunlich, oder?
Fazit: Für die meisten Schaltungen werde ich jetzt den LGT8F328p benutzen.