K (Firmware)
Zeile 51: Zeile 51:
 
http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html
 
http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html
  
Zu beachten ist, dass bei der Version ohne externen Quarz noch im Init der Firmware der interne osccal gesetzt werden muss, da in den seltensten Fällen dieser auch wirklich so schwingt wie er soll. So etwas wie in der art:
+
Zu beachten ist, dass bei der Version ohne externen Quarz noch im Init der Firmware der interne osccal gesetzt werden muss, da in den seltensten Fällen dieser auch wirklich so schwingt wie er soll. So etwas wie in der Art:
  
 
<code>ldi temp,#?? <br>
 
<code>ldi temp,#?? <br>

Version vom 14. Oktober 2008, 16:06 Uhr

die Schematik
die fertige Platine (ältere Version)

AVRs sind Mikrocontroller, mit denen man allerhand anstellen kann. Es stellt sich bloß die Frage, wie man das Programm in die kleinen Steinchen bekommt. 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 bisschen 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 wie das Original, nur mit minimalisierter und somit sowohl billigerer als auch einfacher nachzubauender 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, dass bei der Version ohne externen Quarz noch im Init der Firmware der interne osccal gesetzt werden muss, da in den seltensten Fällen dieser auch wirklich so schwingt 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.