AVR-Programmiergrät

AVRISP.png

AVRs sind kleine niedliche Steinchen mit den man allerhand anstellen kann. Die Frage die sich stellt ist nur, wie bekommt man das Programm in die kleinen Steinchen. Dafür hat der Hersteller Atmel sich eine Schnittstelle erdacht, mit dieser Schnittstelle kann man den Controller seriell programmieren. Danach behält er die Daten in seinen Flash und jedes mal wenn man Spannung anlegt geht die post ab und das Programm läuft. Da Atmel relativ freundlich ist was Entwicklungsumgebungen angeht, kann man bei Atmel auch fast alles bekommen für Lau, außer die Hardware halt, die kostet logischerweise ein bischen. Da aber auch der Hobbybastler eine Zielgruppe darstellt für Atmel hat er es dieser Gruppe einfach gemacht und einen relativ einenfachen Programmer geschrieben. Dieser Programmer kann auch AVRs in Schaltung programmieren (ISP). Dies ist ausführlich in der Application Note 910 beschrieben. Dies hier ist ein vereinfachter Nachbau der im Prinzip aber das selbe tut, nur mit minimaler Hardware. Da es nachfrage nach diesen Programmer gibt werden wir in kürze einige Platinen fräsen und unter die Leute bringen. Aber man wird schnell merken das es das Henne EI problem gibt, denn auf den Programmer befindet sich ja auch ein Controller, der erst mal programmiert sein will. Auch hier werden wir abhilfe schaffen und versuchen ein Komplettset anzubieten mit allen nötigen teilen und einem fertig programmiert Controller. Die jetzige Version ist noch auf eine vorhandene RS232 (kann auch mit einen USB<->RS23 betrieben werden) angewiesen, eine USB-Version ist in Vorbereitung. Die Spannungsversorgung erfolgt über die Zielschaltung in der der zu programmierende Controller steckt, es ist also auf die Pinbelegung des Steckers zu achten. Als Programm kann AVRdude benutzt werden, dort ist AVR910 als Programmer einzutragen. AVRdude gibt es für Unixe und Windows, AVR-Studio bringt selber ein Programm mit welches selbstverständlicherweise auch mit diesen Programmer funktioniert.

AVR-Board mit Ethernet

Der Schaltplan

Der Schaltplan gestaltet sich recht übersichtlich. Im großen und ganzen verrichten drei ICs die Arbeit. Da wären zum einen der ATmega32 von Atmel der mit den internen RC-Oszilator läuft und der ENC28J60 von Microchip der mit einem 25MHz externen Grundwellen Quarz läuft. Verbunden sind die beiden ICs per SPI-BUS, einen sparsamen seriellen 4-Drahtbus. Der MAX232 sorgt für das anpassen der Logikpegel der RS232 an die des ATmega32. Der ATmega32 sorgt für die Verarbeitung der vom ENC28J60 empfangenden Ethernetframes, wobei der ENC28J60 einige Frames zwischenspeichern kann, damit nicht so schnell Frames verloren gehen. Der TCP/IP-Stack wird komplett im ATmega32 realisiert. Das Platinenlayout ist einseitig ausgelegt und mit DIL-Gehäusen bestückt, so das es auch für den nicht so begabten Löter eine Chance gibt das Projekt hardwareseitig ohne Verluste zu Ende zu bringen. Einzig ein kleiner Drop-Down-Wandler ist in SMD gemacht, besitzt aber dafür auch nur 8 Beinchen. Die Stromaufnahme der Platine liegt ca. bei 150mA, kann aber durch diverse Sleep-Stufen noch reduziert werden.

Aufbau- und Prüfplan

Zum Aufbau hält man am besten ein Netzteil bereit, damit man die Schaltung Stück für Stück überprüfen kann. Ein altes MobiltTelefonnetzteil sollte es tun. Das Netzteil sollte natürlich Gleichspannung (DC) liefern und bei etwa 150 mA nicht in die Knie gehen.

Beim aufbauen werden die kleineren Bauteile zuerst aufgelötet. Zum Beispiel in folgener Reihenfolge:

  • Spannungswandler
  • Diode
  • C1, C7, C6

Dann die Stromversorgung anlöten. Strom einschalten. Auf der Kühlfläche unter dem Dropdown-Wandler sollte man nun gegen Masse 3.3V messen. Am Pluspol von C6 sollten auch 3.3V gegen Masse anliegen.

  • IC3 einlöten, prüfen ob zwischen Pin 2 (GND) und Pin 1 (Vcc) 3.3V zu finden sind. Zwischen Pin 2 und Pin 10 sollten etwa -6 bis -7 V zu messen sein.
  • U1 einlöten
  • Quarz, C4, C5, C3, C2
  • R5

Am Quarz sollte man nun 25 MHz messen. Das erfordert natürlich ein entsprechendes Gerät.

  • R1, R2, R3, R4
  • L1, alternativ eine Drahtbrücke
  • RJ45-Jack, überflüssige Plastiknasen kann man abbrechen. Das hält schon.

Board ans LAN anschliessen. Wenn die Link-LED an ist, ist alles in Ordnung.

  • Rest einlöten

Ganz zum Schluss lötet man den Atmel ein. Der kann auch gerne gesockelt werden.

Firmware reinladen (z.B. avrdude) und mit ping testen.

SVN

Anon-SVN:

svn co svn://anonsvn.h3q.com/svn/mikrokontroller

Entwickler-SVN:

svn co svn+ssh://svn.h3q.com/svn/mikrokontroller

Trac:

https://anonsvn.h3q.com/projects/mikrokontroller