(Firmware)
Zeile 1: Zeile 1:
 
[[Bild:AVRISP.png|thumb|200px|die Schematik]]
 
[[Bild:AVRISP.png|thumb|200px|die Schematik]]
 
[[Bild:AVRisp.jpeg|thumb|200px|die fertige Platine (ältere Version)]]
 
[[Bild:AVRisp.jpeg|thumb|200px|die fertige Platine (ältere Version)]]
[[Bild:AVRisp-Bestueck.png|thumb|200px|der Bestückungplan]]
 
  
 
AVRs sind Mikrocontroller 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 seinem Flash und jedes mal, wenn man Spannung anlegt geht die Post ab und das Programm läuft.  
 
AVRs sind Mikrocontroller 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 seinem Flash und jedes mal, wenn man Spannung anlegt geht die Post ab und das Programm läuft.  
Zeile 16: Zeile 15:
  
 
== Bauteilliste ==
 
== Bauteilliste ==
 +
 +
[[Bild:AVRisp-Bestueck.png|thumb|200px|der Bestückungplan]]
  
 
{| border="1" cellspacing="0" cellpadding="2"
 
{| border="1" cellspacing="0" cellpadding="2"

Version vom 2. Februar 2007, 16:26 Uhr

die Schematik
die fertige Platine (ältere Version)

AVRs sind Mikrocontroller 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 seinem 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 für Lau bekommen, außer die Hardware halt. Die kostet logischerweise ein bischen Geld. Da aber auch der Hobbybastler für Atmel eine Zielgruppe darstellt, hat er es dieser Gruppe einfach gemacht und einen relativ einfachen 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 Nachfragen nach diesem Programmiergerät 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 programmierten Controller.

Die jetzige Version ist noch auf eine vorhandene RS232 angewiesen, um betrieben zu werden. Man kann natürlich auch mit einen USB-RS232-Wandler arbeiten. Eine USB-Version ist in Vorbereitung.

Die Spannungsversorgung erfolgt über die Zielschaltung in der der zu programmierende Controller steckt. Man muss also auf die Pinbelegung des Steckers achten. Als Programm kann mensch AVRdude benutzen. AVRdude gibt es für Unixe und Windows (darwinports, FreeBSD-Ports etc.). Nach der Installation muss man nach einer avrdude.conf suchen. Dort ist AVR910 als Programmiergerät einzutragen. AVR-Studio bringt selbst ein Programm mit, welches auch mit diesem Programmiergerät funktioniert.

Direkt fräsbare oder ätzbare Layouts sollten im SVN zu finden sein.

Bauteilliste

der Bestückungplan
Anzahl Bauteil
5 C1, C2, C3, C4, C5: 0.1 uF
1 R1: 270 Ohm
1 R2: 470 Ohm
1 IC1: AT90S2313P
1 IC2: MAX232
1 X1: D-SUB-9-Buchse
1 JP1: 2x5 Pinleiste
1 JP2: 1x1 Pinleiste
1 S1: 4-Pin Taster NO (offen per default)
1 LED1: Dual-LED, im Zweifelsfall eine Standard-LED


Die Bauteile kosten etwa 5-6 Euro.

Firmware

http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html

Zu beachten ist das bei der Version ohne externen Quarz, noch im Iint der Firmeware der interne Osccal gesetzt werden muss, da in den seltensten Fällen dieser auch wirklich so schwinkt wie er soll. So etwas wie in der art:

ldi temp,#??
out osccal,temp

sollte reichen. Natürlich kann es sein der der Wert "??" experimentell ermittelt werden muss.