Hier eine (nicht ganz vollständige) Liste der von mir
eingesetzten
Tools, sowie einigen Programme, die ich nützlich finde. Die 8051
Programme
auf meinen Seiten habe ich auf den RAD51 Assembler angepasst.
| Tools für 8051 und kompatible | Tools für AVR Controller |
Assembler
RAD51 ist ein freeware Assembler von Systronix
mit recht umfangreicher Ausstattung (Windows). Alle 8051 sources meiner
Seiten sind darauf angepasst.
TASM31 Tabellengesteuerter Assembler von Halcyon
für viele Zielprozessoren, Shareware, keine Einschränkungen,
super Ausstattung, DOS basierend!
8051 Softwaresimulation
3w.mundivia.es/hvasquez/sim535/
Windows basierender Simulator für den 80535 und seine Verwandten.
www.vaultbbs.com hat ebenfalls
einen sehr gutem 8051 Emulator auf Windows Basis.
Eprom Brenner und Emulator
c`t eProp zum brennen der Eproms ist bei mir seit vielen Jahren im
Einsatz. Ich würde heute allerdings ein standalone Gerät
vorziehen.
Zum testen der Schaltungen emuliere ich die Eproms mit dem Eprom
Simulator
aus Elektor 10/92, der immer noch seinen Dienst tut.
Für Atmel 89C2051 benutze ich ein Eigenbaugerät, das mal
als universeller Eprom und Controller Brenner gedacht war ;-)
Im Internet gibt es aber eine Menge Anleitungen zu solchen Geräten
mit PC Anschluss.
Einige Beispiele:
www.erikbuchmann.de Auf seiner
Mikrocontrollerseite gibt es neben viel Informationen auch einen
Bausatz
für einen 89C2051 Programmer
www.batronix.com Properitäre
Programmierumgebung mit Assembler und Brenneransteuerung.
www.qsl.net/dg5dbz/atprog/atmel_ger.html
Pläne und Software zum brennen der 20 poligen Atmel Chips 89C2051
und 4051 (Parallelportanschluss)
http://home.tiscali.de/peterd/tools/proflash/index.htm
Komplette Anleitung für einen AT89xxx Brenner. benötigt
leider einen gebrannten Controller dieses Typs (engl.)
Weitere Tools für 8051
Während der Programmentwicklung benutze ich ein Board auf Basis
des 80C535, das es als Einzelplatine, Bausatz oder Fertiggerät von
der Firma yCon verkauft
wird.
Um eine Kompatibilität mit den Erweiterungen von Batronix
herzustellen,
habe ich mir ein Adapterboard erstellt, auf dem sich auch eine serielle
Schnittstelle und der Analogkomperator des 89Cx051 befindet. Mit dem
entsprechenden
Anschlusskabel lässt sich damit ganz enfach ein 89Cx051 Emulator
aufbauen.
Daraus könnte bei Gelegenheit auch mal ein Projekt für diese
Seite werden.
Als Monitorprogramm während der Entwicklung benutze ich Paulmon2, eine wirklich geniale Entwicklung von Paul Stoffregen. Dessen Projektseiten sind seit vielen Jahren ein Begriff in der 8051 Internetwelt. Hier gehts zu Pauls 8051 Homepage
Entwicklungsumgebung
AVR Studio von Atmel
dürfte
hier im freeware Bereich den Standart setzen, und wird auch von mir
verwendet.
Ganz neu werden seit der Version 4.08 des Studio (1.73 des
Assemblers) endlich auch #if Statements unterstützt.
Für die IDE des Studios angepasst gibt es auf der Seite der AVRfreaks
einen kostenlosen C Compiler (AVRgcc) und etliche Tools dafür. Man
muss sich lediglich auf der Seite registrieren.
Als weitere Hochsprache gibt es noch eine Basic Variante (BASCOM) bei
www.mcselec.com
, die in Deutschland z.B. vom Elektronikladen
vertrieben wird. Dieses Basic ist auch für den 8051
erhältlich.
Die kostenlose Demo Version erlaubt eine Imagegrösse von 2KB, was
exakt für einen 90S2313 ausreicht, und ermöglicht damit einen
echten Test.
zusätzliche AVR Tools
Ein fast unentbehrlicher Helfer beim errechnen von Timerwerten (auch PWM) und Baudraten ist AVRcalc von Kevin Rosenberg.
Programmer
für den Parallelport
Wie fast nicht anders zu erwarten gibt es mittlerweile eine ganze Reihe
kostenloser Programmiersoftware für die beliebten AVR Controller.
Leider verwenden die meisten Programmierer eine eigene Pinbelegung, was
insbesondere bei der Evaluierung zu einigem Aufwand führt. Um die
Übersicht über die Anschlussbelegungen zu behalten hier
folgende
Tabelle:
|
Schalterstellung**
|
|
|
|
|
|
|
Software
|
|
|
(auch mit SP12) |
|
|
|
|
|
|
|||
|
AVR Pin (Testboard)
|
|
||||
|
MOSI (5)
|
|
|
|
|
|
|
MISO (4)
|
|
|
|
|
|
|
SCK (3)
|
|
|
|
|
|
|
Reset (2)
|
|
|
|
|
|
|
GND (1)
|
|
|
|
|
|
|
5 auf 15 |
|||||
Und die Links zu den jeweiligen Programmern:
| BASCOM | Basic mit kompletter IDE, erlaubt ein Brennen aus der IDE heraus (Demoversion bis 2 KB kostenlos) |
| PoniProg | Sehr umfangreicher Programmer für fast alles was sich mit 5 Volt programmieren lässt (kostenlos) |
| WinAVR | Sehr schönes (Win)Programm ohne Schnörkel, aber mit allem was nötig ist (kostenlos, derzeit Beta) |
| SP12 | DOS basierender Programmer mit Commandmodus und Turbo C Sourcecode (kostenlos) |
| YAAP | Jespers Programmer mit vielen Features, mehrere Anschlussbelegungen möglich, auch SP12/WinAVR (kostenlos) |
| AT-Prog | Sehr funktioneller Programmer. Seit Version 1.9 kostenlos nur bis 1K Programmgrösse |
| FBprog | DOS basierender Programmer mit Menüführung (kostenlos) |
| ISP_AVR | einfacher DOS basierender Programmer mit Commandline Modus. Auf der gleichen Seite gibt es noch eine 32Bit Version, die bei mir aber Lesefehler produziert. |
Da die Programme teilweise recht unterschiedlich nützliche Features bereithalten, wollte ich mir zumindest die Möglichkeit des schnellen wechselns offenhalten, und nicht mehrere Adapter jedesmal Umstecken müssen. Zu diesem Zweck habe ich aus einem 4 poligen Drehschalter und einigen Strippen eine Adapterbox gebaut. Damit lassen sich alle Programmer einfach anschliessen, und schnell vergleichen. Eine Besonderheit hat hier der YAAP Programmer, er benötigt noch eine Brücke zwischen den Pins 5 und 15, was ich mit einem zusätzlichen Schalter gelöst habe. Man kann ihn aber auch auf die SP12 Variante umstellen, und sich diese Schalterposition sparen. Die Nummern der Schalterstellungen korrospondieren dabei mit den Nummern der Tabelle. Position 6 ist noch frei.

Wenn man kein Hexcode Fenster zur Kontrolle der gebrannten Bytes
benötigt,
tut WinAVR seinen Job. Praktisch ist dabei, dass nach dem Brennen der
Reset
Pin sofort freigegeben wird, was in Verbindung mit dem
AVR-Testboard einen Programmstart ohne zusätzlichen
Tastendruck
ergibt. Ähnliche Funktionalität bietet auch AT-Prog. Wer aus
einer DOS Umgebung programmiert findet dieses Feature auch bei den DOS
Programmen. PoniProg und YAAP bieten etwas mehr Funktionen,
insbesondere
PoniProg hat eine Menge verschiedener programmierbarer ICs. Auf den
Seiten
von PoniProg und YAAP findet sich übrigens auch der Dongle
für
den Atmel Programmer des mittlerweile nicht mehr erhältlichen
STK200
Boards.
Bei meinen Versuchen hat sich herausgestellt, das ja nach verwendetem
Programmer und Kabellänge die ursprünglich im AVR-Testboard
eingesetzten Schutzwiderstände R1-R3 mit 1K Ohm zu hochohmig sind.
Ich habe sie auf 220 Ohm heruntergesetzt, was bei mir mit allen
genannten
Programmern funktioniert hat. Falls jemand Probleme mit Lesefehlern hat
sollte er hier zu suchen anfangen. Die Widerstände könnten im
Prinzip ganz entfallen, eine gewisse Schutzwirkung hat ja auch schon
der
Analogschalter.
Rettung bei versehentlich falsch gebrannten Fuses
Vor lauter Begeisterung wenn der Brenner erst mal funktioniert, dauert es meist nicht lange, bis zum ersten mal mit der Fuse Bit Einstellung experimentiert wird. Von dort ist es nur ein kleiner Schritt, bis plötzlich nichts mehr funktioniert... Erster Veracht ist meist die falsch programmierte SPIEN Fuse (ATmega...), die jedoch im seriellen Programmiermodus sinnigerweise gar nicht programmiert werden kann. Meist hat ein Missverständnis beim einstellen der Taktquelle stattgefunden. Gemeint war ein externer Quarz, eingestellt wurde ein externer Oszillator. Da der ATMega dann aber nicht den Oszillator für den Quarz bereitstellt, sondern ein sauberes Taktsignal an XTAL1 erwartet, funktioniert erst mal nichts. Um das zu beheben, braucht man keinen High Voltage parallel Programmer und auch nicht gleich ein STK500 Board anzuschaffen, es reicht wenn man dem falsch gebrannten ATMega einen ordentlichen Takt anlegt. Da mir das auch schon zum wiederholten Male passiert ist, und ich jedesmal keinen Taktgenerator "zur Hand hatte", habe ich mir mittels eines ausgeschlachteten Quarzoszillators einen AVR-Preserver gebastelt:
| Schaltplan |
Layout:
bei dem Layout reicht auch ein Stück Lochraster |
![]() ![]() |
![]() |
| Stückliste: | Fertig:
eingeschrumpft und mit dem Y-Kabel |
| 1* 10 Pol Wannenstecker liegend z.B.
Reichelt WSL10W 1* Kondensator 100nF 1* Quarzoszillator z.B. Reichelt OSZI 4.000 (Frequenz unkritisch) passender Schrumpfschlauch zum einschmelzen, damit es kkeinen Kurzschluss gibt Zum Herstellen des "Y-Kabels": 30cm Flachbandkabel 10 Pol 2* Pfostensteckverbinder zum aufquetschen 10 Pol z.B. Reichelt PFL10 1* Wannenstecker zum aufquetschen 10Pol PFL10SK |
![]() |
Natürlich habe ich mir keine Platine dafür angefertigt,
ein Stück Lochraster reicht vollkommen. Rechts wird ein Stück
Silberdraht als "Prüfspitze" angelötet, die während des
Programmierens auf den XTAL1 Pin des AVR gehalten wird. Wenn die
Ursache allen Übels wirklich das falsche Fuse bit war, wird es
jetzt wieder gehen! Die Frequenz des Quarzoszillators ist übrigens
nicht sehr kritisch, solange sie >= 1MHz und im Bereich der
erlaubten
Maximalfrequenz des Controllers ist (oder natürlich darunter). Der
10 polige Wannenstecker hat die gleiche Pinbelegung
wie der standart
10pol. ISP Adapter von Atmel. Mit einem kurzen Stück Flacbandkabel
und drei Schneidklemmverbindern kann man sich eine praktische
"Verlängerung" für das Programmierkabel herstellen, oder man
presst gleich einen zusätzlichen Verbinder auf das Originalkabel.
Ein weiterer Vorteil hat die Schaltung auch noch: Da man ja weiss,
warum man den "Preserver" aufgebaut hat, brennt man die Fuses jetzt
sicher nicht mehr falsch!
Hilfreich zum Thema "Fuses"
ist auch der online
Fusebitrechner von Mark Hämmerling! (fast) unentbehrlich
für avrdude.
| Für den Fall,
dass es doch
mal die Reset Pin Fuse war, die
versehentlich falsch gesetzt wurde hilft doch nur noch die High Voltage
Programmierung. Dafür habe ich mir mir gerade einen Brenner
auf Basis eines abgespeckten STK500 Boards aufgebaut. Grundlage
hierfür ist
der HVProg
von Tobias Hammer. |
|
![]() |
![]() |
| Adapter für HV-Programmmierung: Eine sehr schöne Adapterplatine, ideal geeignet zum selber ätzen hat Dieter G. (DL8YES) entwickelt und für alle zur Verfügung gestellt. Vielen Dank dafür, Dieter! Im pdf sind Schaltplan, Bestückungsplan und das Layout zum ausdrucken auf Folie enthalten: HV-Prog-Adapter.pdf Der Adapter wird mit einem 20 poligen Flachbandkabel an den HV-Prog angesteckt. Umschalten des HV-Schalters nicht vergessen und eine Spannungsquelle anschließen, die kurzzeitig ca. 500mA liefern kann. Natürlich darf immer auch nur ein Controller gesteckt sein. Die Platine wurde von Dieter getestet mit: Mega16/32, Mega8, Tiny26, Tiny2313, Tiny15, Tiny13 Die Zuordnung der Sockel ist dem Schaltplan zu entnehmen. Viel Spaß damit | |
![]() | |
Diese Seite ist Teil eines Framesets. Kein Inhalsverzeichnis? Mit
Home
gelangen Sie zum Index.