Arduino Uno Clone von AZ-Delivery
Der LGT8F328P Mikrocontroller der chinesischen Fa. Logic Green wird als Clone eines ATmega328 bezeichnet und ist bereits seit einigen Jahren am Markt. Von AZ-Delivery wird aktuell auf Basis dieses Mikrocontrollers ein preislich sehr interessanter Arduino Uno Clone angeboten, der meine technische Neugier geweckt hat. Im Bild ist das übersichtliche Design im Arduino Uno Footprint zu sehen.
Die Frage, ob das Ganze legal ist, muss in verschiedenen Ebenen betrachtet werden. Arduino ist Open-Source, also ist seitens der Arduino-Implementierung alles in Ordnung. Was den Mikrocontroller selbst angeht, wird zumindest im Beitrag auf Stackexchange (https://arduino.stackexchange.com/questions/69989/is-the-lgt8f328p-legal) ebenfalls Entwarnung gegeben.

AZ-Delivery stellt unter http://www.az-arduino.de/package_AZ-Boards_index.json ein eigenes Board Support Package (BSP) zur Verfügung, welches über die Preferences in der Arduino IDE aktiviert und dann über den Boardsmanager installiert werden kann. Die Konfiguration über das Menu Tools sieht dann folgendermaßen aus:

Bei neuer Hardware oder einem neu installierten BSP mache ich meist mit einem „Hello World“-Programm einen ersten Test, ob die Installation und die Hardware lauffähig sind. Das hier verwendete Programm LGT8F_HW.ino zeigt, dass der mit 32 MHz getaktete LGT8F328P schon mal seinen Dienst in der Arduino Umgebung tut. Das Programm, wie auch alle anderen hier vorgestellten, finden Sie auf Github zum Download.

Um die an mehreren Orten angegebenen Performancedaten zu verifizieren, habe ich mit Sieve und Dhrystone zwei Benchmarks bemüht, die ich auch schon auf dem Arduino Uno ausgeführt habe. In den folgenden beiden Screenshots sehen Sie die Ergebnisse. Für einen Coremark Benchmark ist leider die Hardware zu schwach. Die Ergebnisse sind in der Tabelle unten zusammengefasst. Ausserdem habe ich sie in meine Übersicht zu Arduino Benchmarks mit aufgenommen.


Board | Arduino Uno | LGT8F328P AZ-Delivery |
CPU | ATmega328p | LGT8F328P |
Clock | 16 MHz | 32 MHz |
Sieve Runtime | 14012 ms | 6172 ms |
Dhrystones/s | 17229.86 | 47125.88 |
VAX MIPS | 9.81 | 26.82 |
Wie die Resultate vergleichsweise zeigen, ist der Performancegewinn nicht nur auf die verdoppelte Taktfrequenz zurückzuführen.
Der LGT8F328P weist einen echten 8-Bit DA-Umsetzer (DAC) auf und bietet ausserdem acht 12-Bit AD-Umsetzerkanäle (ADC). Ein einfacher Test des gesamten ADDA-Subsystems erfolgt durch Bereitstellen einer analogen Ausgangsspannung durch den DAC und die anschliessende Erfassung des Spannungswertes durch einen Kanal des ADC. Das Programm LGT8F_ADDA_Test.ino übernimmt das. Aus den Logdaten habe ich die in den folgenden Grafiken gezeigten Darstellungen generiert.

Es zeigt sich ein hinreichend lineares Verhalten des ADDA-Subsystems mit einem leichten Verstärkungsfehler. Bei der Darstellung der Abweichungen kommt das noch besser zum Ausdruck.
Es zeigt sich hier ein Offset von ca. 10 mV und ein Verstärkungsfehler von ca. 50 mV über den gesamten Aussteuerungsbereich. Am oberen Ende des Bereichs erfolgt eine Begrenzung.
Eine Korrektur der Messwerte mit Hilfe der Trendlinie y = 0.0127x + 10.326 führt dann doch zu einer recht brauchbaren Kennlinie für das ADDA-Subsystem des LGT8F328P.

Mit dem LGT8F328P und darauf aufbauenden Boards hat man technisch gesehen eine Alternative zum ATmega328P. Ob man diesen Weg gehen will, werden dabei wohl außerhalb der technischen Daten liegende Aspekte bestimmen.
2023-02-09/CK