Forum: Mikrocontroller und Digitale Elektronik AVR Studio mit AT89C51 MPU


von IGGE (Gast)


Lesenswert?

Kann ich den AT98c51 MPU im AVR Studio Programmieren (Assembler)?
Und wo bekomme ich die Include Datei her?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nein, der Assembler, der beim AVR Studio dabei ist, ist ein reiner
AVR-Assembler.

Was gehen sollte ist, dass du das beiliegende Programmierwerkzeug
stk500.exe (lässt sich über den Programmierdialog aufrufen) benutzen
kannst, um ein vorliegendes Firmwarefile (Intel-Hex-Format) mittels
eines STK500 in einen AT89C5x zu programmieren.

von Peter Diener (Gast)


Lesenswert?

Hallo,

du meinst sicher den AT89c51 (>neunundachtzig).
Das ist ein 51er, kein AVR. Demzufolge kann ihn der AVR Assembler auch 
nicht. Ich weiß auch gar nicht, ob es überhaupt kostenlose Compiler 
dafür gibt. Wir verwenden für 51er einen teuren, kommerziellen Compiler. 
Du kannst es vielleicht mit ein paar Demoversionen versuchen.

Grüße,

Peter

von IGGE (Gast)


Lesenswert?

Danke für die schnelle Antwort.
der MPU ist doch ISP-fähig, kann ich mein ISP USB MK2 Programmieradapter 
dafür nehmen? oder brauche ich was anderes?

von Thorsten F. (thorsten)


Lesenswert?

Der C51 ist nicht ISP fähig.
Du braucht den S51 oder S52. Die beiden können zumindest vom STK500 
programmiert werden.

von IGGE (Gast)


Lesenswert?

Sorry ich habe oben nicht mein genauen MPU-Typ genannt, habe den 
AT89C51ED2.
Laut Datenblatt hat der ein SPI Interface mit den Üblichen ISP 
Programmierleitungen, wie bei einem Atmega8 z.B.,
bis auf das die RST-Leitung bei dem Atmega8 Negiert ist.
Eventuell verstehe ich den Unterschied nicht ganz.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

IGGE wrote:

> Laut Datenblatt hat der ein SPI Interface mit den Üblichen ISP
> Programmierleitungen, wie bei einem Atmega8 z.B.,
> bis auf das die RST-Leitung bei dem Atmega8 Negiert ist.

Dann könnte er wirklich kompatibel mit dem genannten AT89S51 sein,
d. h. du kannst ihn mit einem STK500 flashen.

von Ralf (Gast)


Lesenswert?

> Sorry ich habe oben nicht mein genauen MPU-Typ genannt, habe den AT89C51ED2.
Wo ist dann das Problem? Lies das Datenblatt, das zeigt dir dann, dass 
der ED2 einen internen Bootloader hat, welcher über die serielle 
Schnittstelle seine Befehle erhält. D.h. du brauchst keine externe 
Hardware, um das Teil zu programmieren, sondern nur einen Assembler oder 
C-Compiler.
Programmiert wird das Teil dann über die Atmel-FLIP-Software.
Funktioniert wunderbar, wenn dein Board dafür ausgelegt ist: An den 
/PSEN-Pin muss über einen 1k-Widerstand ein Taster nach GND. Wird der 
Taster beim Einschalten gedrückt, startet der interne Bootloader, und du 
kannst über FLIP dein Programm runterschicken und brauchst wie gesagt 
keine zusätzliche Hardware, nur eben den passenden Assembler oder 
C-Compiler. Gibts in Demo-Versionen von Keil, Wickenhäuser, etc. Der 
SDCC unterstützt 8051 soweit ich weiss auch, also alles da, was du 
brauchst :)

Ralf

von IGGE (Gast)


Lesenswert?

Lassen wir mal den bootloader außen vor.
Der AT89C51ED2 hat, laut Datenblatt, die ISP Leitung die ich gerne zum 
flashen nehmen möchte ( SCK/MOSI/SS/und MISO ).
Das ist zur Zeit mein Verstäntnissproblem, weil ich die MPU mit dem MK2 
flashen möchte, wenn das überhaupt geht.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

IGGE wrote:

> Das ist zur Zeit mein Verstäntnissproblem, weil ich die MPU mit dem MK2
> flashen möchte, wenn das überhaupt geht.

Meines Wissens ist das entsprechende Feature der umschaltbaren
Reset-Funktionalität nur im STK500 implementiert worden.

von Johannes M. (johnny-m)


Lesenswert?

Die Anschlüsse MOSI, MISO und SCK gehören zum SPI-Interface, das 
zunächst nichts mit In-System-Programming zu tun hat! Bei den meisten 
AVRs (es gibt einige Ausnahmen, namentlich die 64-pinnigen 
ATMega128-Derivate) und bei einigen anderen µCs wird die Hardware des 
SPI für die In-System-Programmierung benutzt. Beim AT89C51ED2 ist das 
afaik nicht der Fall! Das Datenblatt sagt zur Programmierung:
1
There are three methods of programming the Flash memory:
2
1. The on-chip ISP bootloader may be invoked which will use low level routines to program
3
the pages. The interface used for serial downloading of Flash is the UART.
4
2. The Flash may be programmed or erased in the end-user application by calling lowlevel
5
routines through a common entry point in the Boot ROM.
6
3. The Flash may be programmed using the parallel method by using a conventional
7
EPROM programmer. The parallel programming method used by these devices is similar
8
to that used by EPROM 87C51 but it is not identical and the commercially available
9
programmers need to have support for the AT89C51RD2/ED2. The bootloader and the
10
Application Programming Interface (API) routines are located in the BOOT ROM.
Eine In-System-Programmierung über SPI ist demnach nicht 
implementiert. Es geht nur mit dem integrierten Bootloader (über UART), 
durch das Programm  oder parallel mit einem Programmiergerät. Mit dem 
STK500 kannst Du da nichts anfangen.

von IGGE (Gast)


Lesenswert?

@ Johannes
Danke für die Antwort. Binn noch ein blutiger Anfänger auf der µC 
Schiene.
Also kann ich den chip nicht mit meinem MK2 flaschen.

von Peter D. (peda)


Lesenswert?

IGGE wrote:
> Also kann ich den chip nicht mit meinem MK2 flaschen.

Du kannst ihn doch ohne MK2 flashen, es ist völlig überflüssig.

Einfach direkt per MAX232 an die COM anschließen und per Flip flashen.


Peter

von IGGE (Gast)


Lesenswert?

danke für eure Hilfe Jungs.
könnt ihr mir noch ein Schaltplahn dazu Schiken?
Kann ich mit AVR Studio den Syntax für die MPU Schreiben, ich denk doch.
Und danach mit ATMEL-Flip in den Chip!

von Johannes M. (johnny-m)


Lesenswert?

IGGE wrote:
> Kann ich mit AVR Studio den Syntax für die MPU Schreiben,
Was für eine "Syntax" willst Du da schreiben? Nochmal: Das AVRStudio 
heißt so, weil es für AVR-Mikrocontroller gemacht ist. Dein AT89C51 ist 
aber ein 8051er Controller und hat einen komplett anderen Befehlssatz. 
Du musst Dir entsprechende 8051er-Tools besorgen, um den programmieren 
zu können.

von IGGE (Gast)


Lesenswert?

Vielen dank für eure Hilfe und Gedult, binn jetzt um einiges schlauer.
Habe bis jetzt nen Atmega8 & 16 mit AVR Studio Programmiert, daher habe 
ich  einiges verbinden wollen was garnicht geht.
Da muss ich noch viel Lesen, bis zum nähchsten Chät, cu.

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.