
Beschreibung
Das zentrale Element einer hardwarenahen Mikrocontrollerentwicklung ist
ein
Controllerboard mit Programmiermöglichkeit.
Die Atmel AVR Prozessoren bieten mit der Möglichkeit der seriellen
"in
Circuit" Programmierung mit nur 3 Pins + Reset optimale Bedingungen
für
die Entwicklung.
Am Stecker St3 lässt sich mittels Flachkabel IC-Sockel ein "In
Circuit"
Testbetrieb herstellen, bei dem die Software des Mikrocontrollers in
der
Zielschaltung entwickelt und getestet werden kann. Der
Mikrocontroller muss bei diesem Controllerboard nicht mehr ständig
zwischen Zielschaltung und Programmieradapter gewechselt werden.
Ich habe festgestellt, dass es die "Nullkraft" Sockel (meist Textool) in der schmalen, 20Poligen Ausführung nur noch selten, und wenn, dann zu horrenden Preisen zu kaufen gibt. Auf dem Layout habe ich deshalb Platz für eine breite, 24 oder 28 polige Universalfassung gelassen. Diese sind zwar nicht wirklich viel billiger, dafür einfacher zu beschaffen. In diese Fassung kann man dank der breiteren Öffnung auch die schmalen ICs (rechtsbündig) einsetzen.
Da die Mikrocontroller AT90S2313 und AT90S1200 Pinkompatibel sind, funktioniert das Board natürlich mit beiden. Gestestet habe ich bis jetzt nur die 2313er Variante.
Das Layout der 16 poligen Steckverbinder passt natürlich zu meinen anderen vorgestellten Erweiterungsboards, so dass für die meisten Eventualitäten vorgesorgt ist.
Schaltungsbeschreibung
Auf dem Board befindet sich alles, um den Betrieb des Testboards mit
möglichst
wenigen zusätzlichen Strippen zu ermöglichen. Lediglich ein
beliebiges
Steckernetzteil mit ausreichender Leistung und mindestens 8V muss
angeschlossen
werden. Dabei ist es egal, ob das Netzteil Wechsel- oder Gleichspannung
anbietet.
Mit dem Schalter S1 wird das Board Stromlos geschaltet. Der Schalter S3
versorgt, falls gewünscht und über den "InCircuitEmulator"
angeschlossen, die Zielschaltung mit 5V, so dass gegebenenfalls
während der Tests auf eine zusätzliche separate
Stromversorgung verzichtet werden kann. Der dritte Schalter (S2)
verhindert eine ungewollte Beeinflussung des Reset-signales bei
angeschlossenem Programmieradapter, aber z.B. inaktivem Programmer.
Leuchtdioden zeigen die Schalterzustände zur kontrolle an.
Wichtigster Teil des Controllerboards ist der dreifache Analogschalter
CD4053. mit diesem IC werden die drei für die Programmierung
benötigten Portleitungen im Ruhezustand, d.h. /Reset="High", auf
die entsprechenden Ports nach aussen geführt. Wird das /Reset
Signal "Low" (während des Programmierens, gesteuert durch die
Programmer Software) Schaltet die Verbindung auf den Programmierport.
Von dort gehen die Leitungen geschützt mit Widerständen zu
den Pins der Programmierschnittstelle. Da die serielle Programmierung
(und nur diese funktioniert mit dieser Schaltung!) immer nach dem
gleichen Muster funktioniert, sollten eigentlich alle als
Free- oder Shareware angebotenen Programme problemlos funktionieren.
Einen
kleinen Testbericht, sowie einige Links zu Programmern gibt es auf der
Seite
"meine Tools" . Bei
diesem Test habe ich festgestellt, das die Widerstandswerte R1-R3 doch
eine Rolle spielen. Während einige Programme problemlos bei einem
Wert von 1K Ohm funktionierten (AT-Prog, PonyProg, SP12), gab es bei
anderen
Lesefehler. Nach verkleinern des Wertes auf 220 Ohm funktionierte alles
problemlos.
Die auf dem Testboard vorhandene serielle Schnittstelle kann mit den Jumpern Jp1 an- oder abgeklemmt werden, so dass die Portsignale nicht gestört werden. Bei angeschlossener serieller Schnittstelle darauf achten, dass die Portleitungen auf einem ev. angeschlossenen Testboard nicht belegt sind.
Die Pinbelegung des "InCircuitEmulator" Steckers ist angepasst an die
Flachband IC-Sockel. Da diese die Pinreihen anders belegen, als die
Pfostensteckverbinder, ist die Numerierung nicht identisch mit den
Portpins (Pin1 an St3 = Pin 20
am IC usw.) Wenn man die rote Markierung am Flachbandkabel aber immer
auf
die Seite mit der 1 anschliesst, kann man nichts verkehrt machen.
Mit dem Schalter S3 wird die Zielschaltung auf Wunsch mit 5V versorgt.
Sourcecode zum Testen für AVR Mikrocontroller
Das Testprogramm setzt abwechselnd je
einen Pin der beiden Ports auf "Low". Das Timing habe
ich mittels Interrupts realisiert, so dass das Programm recht
übeschaubar
klein geworden ist. Ansonsten dürfte es dazu nichts zu sagen zu
geben.
Dazu gehört noch die Definitionsdatei 2313def.inc
Bestückungsplan und Stückliste
| Widerstände:
R1-R3 = 220 Widerstand R4 = 1K Widerstand R5,R6 = 470 Widerstand Kondensatoren: Halbleiter: |
Sonstiges:
St1,St2 = PB Wannenstecker 16 Pol. St3 = InCircuitEmulator Wannenstecker 20 Pol. St4 = Printstecker 5 Polig gerade, z.B. Reichelt PSS 254/5G und Gegenstück PSK 254/5W, sowie PSK-Kontakte St5 = Sub-D9 9 Pol. Buchse gewinkelt (Eu) X1 = Quarzfassung, Quarz je nach Anwendung S1-S3 = Schalter Printmontage Raster 2,54mm Ta1 = Shadow Taster z.B. Reichelt DIT1 K1 = Printanschlussklemme 2Polig Jp1 = Steckerleiste 2*2 Polig und 2 Jumper Kühlkörper für Spannungsregler (z.B. Reichelt V4330K oder V4330F). Textoolfassung 20 polig oder 24/28 Polig breite Öffnung. Siehe Text Flachband IC-Sockel 20Polig schmal (z.B. Reichelt KK20025C), Flachbandleitung 20 Polig. Siehe Text. |
Download
Hier die beschriebenen Files zum Download (shift/Maustaste zum
Download):
Schaltplan
2313Mikrocontrollerboardboard
Platinenlayout
gezippt. Achtung: Das Layout aus einen geeigneten Grafikprogramm
heraus
ausdrucken! (nicht aus dem Browser) Platinenmass: 100*160mm
Testprogramm Lauflicht.asm und dazu das
Definitionsfile 2313def.inc
Für einen ersten Test hier noch das Intel
Hex File direkt für den Brenner.
Kompiliert wurden die Testprogramme mit dem kostenlosen AVRStudio
von
Atmel .