Werkbank für Software: AVR-Testboards "light"

ATmega16-Testboard

Klarer Fall, Testboards für Atmel AVR-Prozessoren kann man fertig kaufen. Sie lassen sich aber auch leicht selber herstellen, zumal, weil sie immer nur vorübergehend gebraucht werden, eben zum Testen neuer Schaltungen und Programme. Danach liegen sie nur noch rum.

Heutzutage, nachdem ARDUINO-Boards und Klone aus China für " 'nen Appel und 'n Ei" zu bekommen sind, lohnt ein Selbstbau wohl eher nicht, wenn der in den ARDUINO Nano- oder Uno-Boards verbaute ATmega328P mit 32kB Flash und eine begrenzte Anzahl Ports ausreichen. Programmieren lassen sie sich immerhin auch mit BASCOM über die ISP-Schnittstelle.

Nachfolgend werden einfache Testboards beschrieben für die AVR-Prozessoren
ATmega 8/48/88/168 (28 Pin) und ATmega 16/32/644 (40 Pin).
Schaltung und Platinen-Layout sind bei beiden vergleichbar konzipiert und mit Absicht auf das Notwendigste beschränkt:

  • Spannungsregler 5V
  • Sockel für den jeweiligen Prozessor
  • Auf Stift- oder Buchsenleisten herausgeführte Anschlüsse
  • ISP 10-Sockel für die Programmierung. Mit dem Jumper J1 kann wahlweise +5V an den Anschluss VTG gelegt werden.

Es sind also weder Taster (bis auf den für Reset), Anzeigen, Buzzer oder weitere Peripherie auf den Testboards vorgesehen. Für die jeweilige Aufgabe passende Kombinationen lassen sich so individuell zusammenstellen. Gibt dann halt etwas Kabelsalat, der sich aber bei Verwendung von Flachkabeln in Grenzen hält.

Zusatzmodule:

  • Für den Fall, dass Fuse-Bits zerschossen wurden, lässt sich ein Quarzoszillator aufstecken.
    Der Pin 1 in Abb. 1 ist an der spitzen Ecke des Oszillatorgehäuses.
  • Achtfach LED-Zeile mit 20mA-LED.

Quarzoszillator

Abb. 1: Zusatzmodul steckbarer Quarzoszillator

Achtfach LED-Leiste

Abb. 2: Zusatzmodul achtfach-LED-Zeile zur Statusanzeige von Output-Ports

Geschmackssache ist die Verwendung von Buchsenleisten zum losen Einstecken von Verbindungsdrähten oder von Stiftleisten mit aufgesteckten Buchsenleisten und angelöteten Flachkabeln. Fehlerfreie Software zu schreiben, ist ja schon eine Herausforderung für sich. Wenn aus Buchsenleisten rausgesprungene Drähte oder Wackelkontakte noch dazu kommen, macht es wirklich keinen Spaß mehr. Ich bevorzuge Stiftleisten auf den Boards, löte Flachkabel an Buchsenleisten und stecke diese auf. So viel Zeit muss sein. Bei zusammengesteckten Quick-and-dirty-Aufbauten geht es besonders dann, wenn man auf die Schnelle etwas testen will, dann doch nicht wirklich "quick".

Das Board für den ATmega8 ist als Prototyp etwas zu gedrängt geraten. Deshalb habe ich das ATmega16-Board etwas größer ausgelegt. Da kommt man auch bei voller Verdrahtung mit dem Finger noch an den Reset-Taster.

ATmega8-48-88-168 testboard Schaltung

Abb. 3: ATmega8/48/88/168 Testboard Schaltung

ATmega16-32-644 Testboard Schaltung

Abb. 4: ATmega16/32/644 Testboard Schaltung

Beispielhaft ist nachfolgend die ATmega16/32/644-Platine gezeigt, detaillierte Unterlagen im Download.

ATmega16 Testboard Leiterbahnentwurf

Abb. 5: ATmega16/32/644-Testboard, Leiterbahnentwurf

Übertragen der Test- in die Zielkonfiguration

Wenn die doch recht ausladenden Controller in der PDIP-Bauform auch in der Zielanwendung verwendet werden sollen, bleibt alles so wie mit den Testboards ausprobiert. Mir sind die PDIP-Controller für den wirklichen Einsatz zu groß. Dort setze ich das jeweilige Äquivalent in der SMD-Bauform ein (z.B. TQFP 32 oder TQFP 44 bei ATmega 8/16/32). TQFP 64-Bausteine, z.B. beim ATmega 128, sind mir wegen des Pin-Abstandes von nur noch 0,5 mm dann doch zu filigran. Abgesehen von der etwas anderen Pin-Belegung war die Übertragung von der Testkonfiguration (PDIP auf dem Testboard nach TQFP auf dem Anwendungsboard) bisher völlig problemlos. Auch die Hochrüstung des mit einem ATmega 32 (PDIP 40) auf dem Testboard vorab entwickelten Antennentuners auf den ATmega1284P (TQFP 44) verlief ohne unliebsame Überraschungen.

Bewährt haben sich beim Platinen-Layout für SMD-Controller:

  • quadratische Massefläche im Inneren unterhalb des Controllergehäuses, an die alle GND-Pins geführt werden. Die einzige (!) Verbindung des ADC Analog GND (Pin 28 bei ATmega16/32/1284P)  an Masse erfolgt genau hier.
    Gibt es noch eine analoge Elektronik, z.B. OpAmps an den ADC-Eingängen, werden deren Masseanschlüsse an ADC Analog GND geführt. So bleiben ADC-Messungen sauber.
  • 100 nF-Stützkondensatoren von den mehrfach vorhandenen VCC-Anschlüssen nach Masse. Diese puffern die Betriebsspannung VCC bei den digitalen Schaltvorgängen im Controller. Die Betriebsspannung wird an einen der VCC-Pins angelegt.
    Insbesondere um die TQFP 44-Controller geht es meistens recht eng zu. Statt sich mit 100nF SMD 0603-Winzlingen abzuquälen, nimmt es der AVR nicht übel, wenn mal ein VCC-Pin nicht mit einem Stützkondensator versorgt ist.

Einordung: