|
Herzstück der hier vorgeführten Schaltungen ist jeweils ein programmierbarer Mikroprozessor von Atmel. Er empfängt per serieller Schnittstelle die Steuersignale vom Computer und setzt diese in ein so genanntes PulsWeitenModulationssignal (kurz PWM) um. Dieses PWM-Signal wird schließlich zu den TRIAC-Gates geleitet, welche letztendlich die Scheinwerfer in der Leistung steuern.
Bei der Wahl des Mikrocontrollers für die Dimmer gewann der ATtiny2313 (abwärtskompatibel zum AT90S2313) aufgrund seiner kleinen Abmaße und des geringen Preises. Um nun die Firmware in den Mikroprozessor zu bekommen, wird ein Programmieradapter für den Computer benötigt. Über diesen Anschluss wird die Firmware in Form einer Hex-Datei in den Prozessor gebrannt. Für diesen Zweck kann z.B. das Atmel STK500 Programmierkit verwendet werden. Wem dieses Paket zu teuer ist, kann aus einem der folgenden Adapter auswählen und entsprechend den Prozessor programmieren.
Grundsätzliche Infos/Links zu Programmieradaptern für den PC (externe Links)
Um einen Überblick über die Vielfalt im Internet erhältlicher Baupläne für Programmieradapter für den PC zu bekommen, hier nun eine kleine Lektürenauswahl diverser Artikel und Bauanleitungen für ISP-Adapter für Atmel-Prozessoren:
LPT-Port-Programmer http://s-huehn.de/elektronik/avr-prog/avr-prog.htm http://www.xs4all.nl/~sbolt/e-spider_prog.html#programmer (SP12-Programmer / Roboterprojekte)
COM-Port-Programmer http://www.lancos.com/siprogsch.html (PonyProg2000) http://s-huehn.de/elektronik/avr-prog/avr-prog.htm http://www.mikrocontroller-projekte.de (AVR910-Programmer / kleinere µC-Schaltungen) Generelle Informationen http://www.mikrocontroller.net/articles/AVR_In_System_Programmer
Programmieren eines AT90S2313, ATtiny2313 bzw. ATmega8 mit dem AVR910-ISP-Programmer
Die Informationen stammen zum Teil von "http://www.mikrocontroller-projekte.de/"
Die universellste Lösung um einen Atmel zu programmieren stellt wohl der AVR910-Programmer von Klaus Leidinger dar (www.mikrocontroller-projekte.de) Dieser Programmer nutzt einen internen AT90S2313 bzw. ATtiny2313, um andere AVR-Controller, wie den ATtiny2313 bzw. den ATmega8, zu beschreiben und zeichnet sich durch seine hohe Schreib-/Lesegeschwindigkeit und Zuverlässigkeit aus. Leider wird ein bereits beschriebener Prozessor innerhalb der Schaltung benötigt, sodass diese Programmieradaptervariante nur für diejenigen geeignet ist, die jemanden kennen, der einen Prozessor für sie beschreiben können. Zunächst der Schaltplan:

Nun muss noch eine Verbindung zwischen den sechs Pins (MOSI, RST, SCK, MISO, VCC und GND) und dem zu programmieren Prozessor hergestellt werden. Es empfiehlt sich, ein kleines Gehäuse zu nutzen, es mit einem kleinen Stecker zu versehen und diesen dann in die fertige Schaltung zu stecken, in der der Prozessor später auch arbeiten soll. Die Schaltung muss dann zum Zeitpunkt des Programmierens eingeschaltet sein. Dieses so genannte ISP (InSystemProgramming) erleichtert das Arbeiten mit µProzessoren unwahrscheinlich. Nach dem Aufbau der Schaltung und dem Verbinden mit der RS232-Schnittstelle des Computers, kann man den Programmer mit den Tools AVRProg oder AVRDude testen. Diese Tools können dann auch gleich die Prozessoren beschreiben. Dazu einfach eine passende hex-Datei laden, "ATtiny26"(!) in AVRProg oder "ATtiny2313" in AVRDude auswählen und auf brennen oder "flash" klicken. Die Tools sind größtenteils selbsterklärend - einfach ausprobieren, oder im hiesigen Forum nach Support bitten :).
Ebenso kann AVRdude mit folgendem Kommando genutzt werden: avrdude.exe -p t2313 -c avr910 -P com1 -U flash:w:"C:\blabla.hex":a (com1 kann auf den richtigen Com-Port abgeändert werden)
Damit die PC_DIMMER Firmware mit dem neuen ATtiny2313 läuft, müssen nun die Low-Fuses des Tiny2313 neu gesetzt werden. Dies kann derzeit am einfachsten mit AVRDude gemacht werden (es wird auf die AVRDude-GUI verzichtet, da es nur eine einzige Codezeile ist). 'In der Datei attiny2313patch.zip sind alle nötigen Dateien vorhanden. Am einfachsten entpackt man alle Dateien nach c:\temp. Dann gibt man unter Start Ausführen "command" bzw. "cmd" ein (je nach Betriebssystem) und gibt auf der Kommandozeile folgende Zeilen ein:
1) "cd\temp" 2) "avrdude -c avr910 -p t2313 -P com1 -U lfuse:w:0xed:m" (com1 kann auf den richtigen Com-Port abgeändert werden) 3) "exit"
ABER VORSICHT: beim ATtiny2313 kann man mit falschem Setzen der Fuse-Bits den Prozessor sperren. Will man einen externern Quarz nutzen, so muss bei AVR-Prog "Extern XTAL" und nicht "Extern Oscillator" gewählt werden!
Programmieren eines AT90S2313, ATtiny2313 bzw. ATmega8 mit dem SP12-/Kanda-ISP-Programmer
Die Informationen stammen zum Großteil von "http://www.xs4all.nl/~sbolt/e-index.html"
Der ATtiny2313 kann mittlerweile auch mit dem SP12-Programmer AVRDude programmiert werden. Diese Schaltung ist von einem Bekannten getestet worden und scheint gut zu funktionieren.Hier die (sehr simple) Schaltung:

Es ist darauf zu achten, dass der Programmer keine Spannungsversorgung und keinen Takt liefert. So muss der Prozessor mit +5VDC und GND, sowie mit einem externen Quarz ausgestattet werden (1 MHz bis 8 MHz). Ebenso muss die Masse des LPT-Ports mit der Masse des Prozessors verbunden werden. Nun muss noch eine Verbindung zwischen den sechs Pins (MOSI, RST, SCK, MISO, VCC und GND) und dem zu programmieren Prozessor hergestellt werden. Es empfiehlt sich, ein kleines Gehäuse zu nutzen, es mit einem kleinen Stecker zu versehen und diesen dann in die fertige Schaltung zu stecken, in der der Prozessor später auch arbeiten soll. Die Schaltung muss dann zum Zeitpunkt des Programmierens eingeschaltet sein. Dieses so genannte ISP (InSystemProgramming) erleichtert das Arbeiten mit µProzessoren unwahrscheinlich. Dieser Befehl sollte mit dem SP12-Programmer und AVRdude funktionieren, um eine Firmware zu laden: avrdude.exe -p t2313 -c sp12 -P lpt1 -U flash:w:"C:\blabla.hex":a Damit auch hier die PC_DIMMER Firmware mit dem neuen ATtiny2313 läuft, müssen ebenfalls die Low-Fuses des Tiny2313 neu gesetzt werden. Dies kann auch mit AVRdude gemacht werden (es wird auf die AVRdude-GUI verzichtet, da es nur eine einzige Codezeile ist.) In der Datei attiny2313patch.zip sind alle nötigen Dateien vorhanden. Am einfachsten entpackt man alle Dateien nach c:\temp. Dann gibt man unter Start Ausführen "command" bzw. "cmd" ein (je nach Betriebssystem) und gibt auf der Kommandozeile folgende Zeilen ein:
1) "cd\temp" 2) "avrdude -c SP12 -p t2313 -P lpt1 -U lfuse:w:0xed:m" 3) "exit"
Bitte noch einmal checken, ob das mit dem SP12 so einwandfrei funktioniert, da ich wie gesagt die Schaltung bislang nicht gebastelt habe :)
AUCH HIER GILT: beim ATtiny2313 kann man mit falschem Setzen der Fuse-Bits den Prozessor sperren. Externer Quarz ist nicht gleich "Ozillator"!
Dies ist die genormte Pinbelegung eines AVR-ISP (InSystemProgrammable) Anschlusses auf einer µProzessor Platine und sollte möglichst übernommen werden, um keine Probleme mit anderen Schaltungen aus dem Internet zu bekommen:

Nach erfolgtem und vor allem erfolgreichen Programmieren sollten beim Einschalten beide LEDs der PC_DIMMER-Platine leuchten. Nach Empfangen eines Datenpaketes (Frames) über den RS232-Bus erlischt die Receive-LED an PD1 des Controllers und blinkt ab dann bei jedem empfangenen Frame. Ab Version 2.3 der Firmware kann man den Bootvorgang (und die Software selbst) auch mit einem Diagnoseprogramm über die RS232-Schnittstelle überwachen.
Sollte das Programmieren des Chips auch nach mehrfachen Versuchen nicht funktionieren, so kann ein fertig programmierter Chip über mich bezogen werden.
|