Die Entwicklung des TiNo2 (1)

Da während der Jahre 2021 und 2022 Microprozessoren Mangelware waren, habe ich mich auf die Suche nach Alternativen für den doch in die Jahre gekommenen ATmega328P begeben. Einen adäquaten Ersatz, bzw. eine Weiterentwicklung stellt der ATmega4808 dar. Er ist ebenfalls im allseits bekannten TQFP32 Gehäuse erhältlich, hat statt 32kB jedoch 48kB Flash, aber nur 256 Byte EEPROM (ATmega328: 2kB). Eine wirklich gute Sache ist das SRAM mit 6kByte beim Atmega4808 (ATmega328: 2kB, wobei ich die Grenze mit dem TiNo schon erreicht hatte). Die Peripherie des Prozessor Kerns ist von Grund auf neu entwickelt.

Ich werde in mehreren Beiträgen behandeln wie der Übergang vom ATmega328P zum ATmega4808 leicht gelingt. In diesem Beitrag:

  • Support durch die Arduino IDE
  • Programmer
  • Bootloader

Arduino IDE support

Die Chip Familie AVR-0, zu der der Atmega4808 gehört, wird vom MegaCoreX in der Arduino IDE unterstützt (Installationsanweisung).

Einstellungen in der Arduino IDE

Nachdem MegaCoreX installiert ist, Board auswählen:

ParameterEinstellungAnmerkung
BoardMegaCoreX -> ATmega4808
Clockinternal 1MHz oder 4MHz
BODdisabled*
EEPROM*
Pinout32 pin standardlegt die Board Variante fest
Reset PinReset*
BootloaderOptiboot (UART0 default pins)*
* ) nur fuer Bootloader Programmierung wichtig. Fuses werden beim programmieren des Bootloaders geschrieben.

Im Prinzip funktionieren einfache Sketches des Atmega328P unverändert auch auf dem Atmega3208. Bei Timern/PWM, Ruhe Modi, Interrupts, Systemtakt oder ADC wird es komplizierter, und man muss sich mit dem Datenblatt beschäftigen, soweit man die Möglichkeiten des Chips verstehen will. Hier möchte ich ausdrücklich Stefan Wagner für die Beispiel Sketches danken. Er hat mit dem „Wagiminator“ das erste Makerboard zur Verfügung gestellt, und dazu einige Code Schnipsel die mir sehr geholfen haben.

Programmierung und Bootloader

Das Flashen des ATmega4808 erfolgt über ein UPDI (Unified Program and Debug Interface), das ist ein Ein-Leiter Bus. Programmieren muss man mit einem UPDI kompatiblen Programmer, wie z.B dem  microUPDIJTAG2UPDI, SerialUPDI oder einem offiziellen Atmel/Microchip Programmer, wie dem Atmel-ICE.

Atmel ICE Programmer

Dieser Programmer ist das universellste und bequemste Werkzeug, denn mit dem kann man auch den Debugger im Microchip-Studio Programm nutzen. Leider ist das Ding sehr hochpreisig . Teuer will ich nicht sagen weil ich finde, dass es seinen Preis wert ist, wenn man professionell arbeiten will. Um Kosten zu sparen, habe ich nur die blanke Leiterplatte gekauft und konfektioniere alle Adapterkabel selbst. Die Platine passt zufälligerweise genau in eine transparente Tic-Tac Schachtel, welche genug Schutz für die Elektronik bietet.

SerialUPDI

Während der Atmel-ICE zusammen mit den notwendigen Adapterkabeln über 120 EUR kostet, kann man sich einen serialUPDI Adapter leicht für unter 5 Euro herstellen. Es handelt sich dabei um einen modifizierten handelsüblichen USB-Serial Adapter, bei dem die RX Leitung über eine Schottky Diode mit der TX Leitung verbunden wird. Mit dieser einfachen Modifikation funktionierte der Programmer auf Anhieb, auch mit hohen Baudraten. Ein sehr kostengünstiger Programmer, der auch zuverlässig funktioniert und von der Arduino IDE unterstützt wird.

Zwischen den Anschlüssen RXI und TXO kann man die eingelötete Schottky Diode erkennen

Bootloader

Die vom MegaCoreX bereitgestellten Optiboot Bootloader funktionieren. Das heisst: den Programmer braucht man im Leben eines TiNo2 genau einmal, nämlich um den Bootloader zu flashen. Danach übernimmt der Bootloader das Flashen der Sketches über das serielle Interface. Die Baud Rate ist 115200 Bd, was eine extreme Verbesserung gegenüber den 9600 Bd ist, die ich beim TiNo1 verwenden musste, wegen dessen 1 MHz Takt. Bei den neuen Prozessoren wird die Taktfrequenz nämlich nicht ausschliesslich über Fuses definiert sondern erst zur Laufzeit.

Im nächsten Beitrag gehe ich auf den Prozessor ATmega4808 und dessen Peripherie ein.

WEITER

Ein Kommentar zu “Die Entwicklung des TiNo2 (1)

Hinterlasse einen Kommentar