Kann ich den AT98c51 MPU im AVR Studio Programmieren (Assembler)? Und wo bekomme ich die Include Datei her?
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.
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
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?
Der C51 ist nicht ISP fähig. Du braucht den S51 oder S52. Die beiden können zumindest vom STK500 programmiert werden.
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.
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.
> 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
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.
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.
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.
@ 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.
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
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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.