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
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/
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
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?
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
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.
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 ;-)
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
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".
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.