Forum: Mikrocontroller und Digitale Elektronik Grundausstattung für Atmel 8051er Prgrammierung


von Christian W. (clupus)


Lesenswert?

Hallo,

ich wollte eigentlich nur fragen:
Ich hab noch einige "alte" 8051er Chips von Atmel rumliegen. Nun
würde ich die ungern wegwerfen, insbesondere weil sie ungebraucht sind.
Ich hab in der Zwischenzeit mich in die AVR-Technik ein bisschen
eingearbeitet und bin damit in Kombination mit avr-gcc sehr zufrieden.
Nun meine Fragen:
Gibt es eine (sinnvolle) Möglichkeit für die 8051er mit einem
C-Compiler zu compilieren? Welcher Compiler ist da verfügbar (Linux,
sollte frei sein)?
Wenn ich mal eine hex-Datei hab, wie bekomm ich die am besten auf den
Chip? Für AVR gibt es eine Unmenge an ISP-Programmern, aber für den
AT89C8055 muss man eine externe Programmier-Platine erstellen (soweit
kein Problem). Aber mit welchem Programm (wieder Linux und möglichst
frei) kann ich dann das File übertragen? Ich hab nämlich keine Lust
einen eigenen Programmer mit Hard- und Software (PC & µC zum Steuern)
zu entwickeln. Da hab ich nicht die Zeit zu.

Danke schonmal
Christian

von Detlev (Gast)


Lesenswert?

Ich habe damals mit sdcc gearbeitet. War ganz brauchbar, gibt es auch
für Linux (eh nur Kommandozeile), mit AVRGCC aber nicht zu vergleichen.


http://sdcc.sourceforge.net/

von Christian W. (clupus)


Lesenswert?

Lässt sich der AVRGCC vllt. mit -mmcu=avr2 und einigen (selber
erstellten) Dateien und ggf. einem "Übersetzungsskript" dazu
missbraucchen, einen 8051er zu programmieren? (Man müsste halt eine
avr/ioXXX.h erstellen und auch prüfen, ob das mit den Registern
funktioniert.) Die Frage ist primär: Wie stark unterscheiden sich die
Befehlssätze von einer Classic-AVR und einer 8051er Architektur? Kann
man da mit einem einfachen Script einige Assambler-Befehle umsetzen und
dann ist das Ding lauffähig oder ist das zu viel Aufwand?

Lohnt es sich da mehr direkt auf Assembler zu gehen?

Wie dem auch sei, ich muss die Codes auf den Chip bringen. Gibt's da
irgendwelche Möglichkeiten?

MfG
Christian

von Detlev (Gast)


Lesenswert?

AVR und 8051 sind vollkommen verschieden. Mein Tipp: Wenn du noch nie
mit einem 8051 gearbeitet hast, lass es lieber. Warum willst du dich in
eine neue Hardware einarbeiten?

von Christian W. (clupus)


Lesenswert?

Aus mehreren Gründen:
1. Weil eine Kombination aus einem AT89C55 einem ext. Flash und einem
ext. RAM günstiger sind als ein ATmega128 mit externem RAM
2. die "großen" Megas sind im TQFP-Gehäuse. Da bin ich mir nicht
sicher, ob ich das ohne weiteres hinbekomme. (von der Platine her)

Außerdem würde ich denen hier gerne eine Aufgabe zuteilen.

MfG
Christian

von Detlev (Gast)


Lesenswert?

Na, dann viel Spaß. Übrigens gibt es von Atmel auch 8051 kompatible
Prozessoren, die ISP tauglich sind, also nur ein simples Kabel an der
parallelen Schnittstelle zum Programmieren brauchen. Da gibt es auch
Software für Linux, glaube ich. Musst du mal googlen.

von Schoasch (Gast)


Lesenswert?

Handlet es sich jetzt um eine AT89C55? Dann brauchst du ja nicht mal ein
externes Ram. Der hat ja eh schon eins dabei. Flash ist ja auch mit an
Bord. Also ich wünsche dir echt viel Spass mit den Dinger. Ich mag
8051er.
Theoretisch könntest du dir auch relativ einfach ein Parallelport
Programmer selber basteln.
Aber hier mal eine Lösung:
http://chaokhun.kmitl.ac.th/~kswichit/easy2/easy2.htm
oder
http://chaokhun.kmitl.ac.th/~kswichit/shiao/prog.htm

Und bevor du sie in die Tonne trittst, melde dich halt mal bei mir ;-)

von Christian W. (clupus)


Lesenswert?

Ich selber hab auch auf den "alten" 8051er angefangen. Da hab ich in
Assambler "laufen lassen" gerlernt ;-). Nur habe ich nie einen
Programmer für die 40-poligen sondern nur für die 28-poligen (?) (2051)
gebaut und der lief mit einer Software unter Windoof.
Und nun suche ich halt...
Ggf. kann ich auch ohne C auskommen (macht ja auch mal Spaß),
allerdings wäre dann ein Assebler nicht schlecht.

Um mal kurz zu resümieren, was ich noch alles bräuchte:
- Programm-Dongle für 8051 (nur Atmel) (Linux! s.u.)
- passende Software für Aufladen von hex-files für Linux
- *Linux*-Assembler für 8051er

MfG
Christian

von A.K. (Gast)


Lesenswert?

Da du wohl auf die Flash-Kapazität anspielst: Assembler-Programme
jenseits dessen was WINAVR in einen Mega644 reinkriegt sind "etwas
exotisch". Unterhalb Compiler ists also unrealistisch. Und damit rückt
erstmal dieser Compiler in den Vordergrund, die Hardware in den
Hintergrund.

WINAVR kannst du vergessen, GCC generell. Für einigermassen grosse
8051-Programme kommt villeicht SDCC in Frage, oder du investierst 3 bis
4-stellig. Also wirf erst mal einen Blick auf SDCC und entscheide ob der
überhaupt in Frage kommt.

Flash-Programmieren wäre reichlich einfach, wenn du nicht ausgerechnet
alte Chips verheizen wolltest. Aktuellere Versionen (z.B.
AT89C51RD2/ED2) besitzen einen Bootloader, so dass als "Dongle" ein
MAX232 ausreicht. Alte Versionen sind nicht ISP-fähig und benötigen
einen deutlich aufwendigeren Programmer, der nicht in der Zielschaltung
programmiert, sondern durch Rausziehen und Umstecken des Controllers in
den Programmer.

Das ganze klingt etwas nach "Um jeden Preis Geld sparen".

von Peter D. (peda)


Lesenswert?

Für den AT89C55 brauchst Du ein Programmiergerät.

Der AT89C55 wird allerdings nicht mehr hergestellt, sondern der
AT89C55WD und die unterscheiden sich !

Ehe Du ein Programmiergerät baust, must Du also feststellen, welchen Du
hast und ob das Programmiergerät genau diesen unterstützt.


Ich würde aber erst zu der Investition in einen 8051 mit Bootloader
raten (AT89C51ED2), den man einfach per RS-232 anschließen kann.

Wenn dann die Programme laufen, kannst Du ja immer noch ein
Programmiergerät bauen und den mit Bootloader nur zum Entwickeln
nehmen.


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.