Forum: Mikrocontroller und Digitale Elektronik AT89S51 24PI


von Peter Z. (Firma: privat) (dj_peter)


Angehängte Dateien:

Lesenswert?

Hallo liebes Forum.

ich habe mittlerweile 2 Experimentier-bords aufgebaut, auf beiden wird 
der AT 89S51 gesteckt. ich könnte die "steine" auch Flashen, aber ich 
finde kein Passendes wekzeug dazu. ISP 3.0 liest und schreibt, aber ich 
weis nicht, was er da schreibt.
und auf dem am P0.x angeschlossenen LCD wird auch nix angezeigt.
meine fragen dazu lauten: welche Dateien benötige ich zum brennen dieses 
prozessor, und wie bekomme ich die entsprechenden dateien in den chip? 
pony-prog geht nich, bascom auch nicht, avr-studio auch nicht etc. das 
einzige ist ISP3.0 Baut niemand mit diesem chip? frage warum findet ma 
so wenig infos über den  S51 - oder ist der nicht gut? oben gezeigte 
schaltung ist die erste weche ich aufgebaut habe.

erbitte eure hilfe
danke und gruß peter

von m. keller (Gast)


Lesenswert?

naja der AT 89S51 hat sehr wenig Features fürs Geld und ist deswegen 
auch im Hobbybereich den AVRs oder PICs weit unterlegen. Dennoch ist es 
kein "schlechter" Controller, 8051er sind.

Mit was hast du es den versucht? Also das komerzielle Produkt für AT89 
ist das AT89ISP: 
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2877

Es gibt aber auch selbstbauvarianten:
http://dybkowski.net/elka/ispprog.html

http://ulrich-bangert.de/html/downloads.html

von Matthias (Gast)


Lesenswert?

AT89S51 ist ein 8051er Derivat und nicht so weit verbreitet im 
Hobbybereich. Von Atmel gibts kostenlose Software zum programmieren 
(AT89ISP-Software) oder auch div. freie Tools z.B. dieser hier:
http://dybkowski.net/elka/ispprog.html

Der µC hat interen Flash und lässt sich in der Schaltung programmieren.

AT89S51 ist außerdem etwas veraltet, besser ist es den moderneren und 
nur unwesentlich teureren Typ AT89S8253 zu nehmen.

Oder eine andere Baureihe, AT89C51(ED2), welche sich über internen 
Bootloader per RS232 programmieren lassen.

von Matthias K. (mkeller)


Lesenswert?

Hier ist der Schaltplan für den AT89ISP:
http://www.atmel.com/dyn/resources/prod_documents/isp_C_v5.PDF

von Peter Z. (Firma: privat) (dj_peter)


Lesenswert?

hallochen erstmal,
das von der polnischen seite habe ich auch versucht. ich bekomme den 
chip gelöscht und gebrannt - aber ich bekomme irgendwie kein ergebnis. 
weder eine blinkende LED noch einen Text auf dem Display. (16*2 / 8bit 
mode an port 0). dumm ist gerade, das ich die zweite schaltung jetzt 
nicht finde, wo das display "dranhängt".
in Bascom habe ich die LCD_test Compiliert und simuliert - das geht. nur 
ich bekomm das nicht auf dem Display angezeigt. warscheinlich weil die 
Datei 51reg.h oder sowas fehlt. in ISP3.0 kann ich auch nur die Hex 
öffnen - mehr nicht.
ich verzweifle hier fast...

mfg (AVR-Anfänger) peter

von Matthias K. (mkeller)


Lesenswert?

übrigends AVR ist was anderes als die 8051er.

also du verwendest diese Platine? 
http://www.sixca.com/eng/articles/at89s_isp/index.html

das ISP ist auch nur zum downloaden der Hex gedacht, was den sonst.

Benutzt du einen echten Parallelport? mit den USB Teilen wirds nicht 
gehen.

Wenn du die Hex Datei auf den Controller brennst und über verify 
überprüfst, ist dann alles ok?

Wieso willst du eigentlich mit 8051er  basteln? Wenn du die nicht gerade 
in der Schule oder im Beruf brauchst, gibts komfortablere Controller 
Familien

von Peter Z. (Firma: privat) (dj_peter)


Lesenswert?

hallochen,
ich benutze einen echten 25 pin pra-port. mit oder auch ohne 74HCT541 
mit oder auch ohne MAX 232. habe auch schon isp-kabel direkt 
angeschlossen am chip.

von Peter Z. (Firma: privat) (dj_peter)


Lesenswert?

sorry - ja diese platine

von Peter Z. (Firma: privat) (dj_peter)


Lesenswert?

ja - isp sagt "programming/verify ok. lock bits hab ich noch nicht 
gesetzt (warum auch - passiert ja eh noch nix)
aber wie gesagt, ich kann nur die Hex datei schreiben, sonst nix.
es soll mal ein DMX-controller draus werden...
schule - ja (umschulung zum Mechatroniker)

von IGBT (Gast)


Lesenswert?

Für das LCD am P0 braucht man "pull-up"-Widerstände.

Installiere mal Progstudio 
(http://www.progshop.com/versand/software/prog-studio6/assembler.html).
Darin findest Du gute Programmbeispiele für LED-Blinken, LCD-Ansteuerung 
u.s.w..

von IGBT (Gast)


Lesenswert?

Übrigens, nicht alle 8051er sind alt und schlecht.
Es gibt neuere, die sind super schnell, haben ganz viel doll hype on 
chip...

von Peter D. (peda)


Lesenswert?

Beim AVR ISP mkII Programmer steht der AT89S51 mit in der Liste.

Ich benutze aber nur noch 8051 mit UART-Bootloader, z.B. AT89C51CC03 und 
AT89C51RE2.


Schlecht ist der 8051 überhaupt nicht. In Assembler kann man sehr schön 
mit den Bitbefehlen programmieren.
Er ist halt für Steuerungsaufgaben (Statemachines) optimiert.

Der P0 braucht externe Pullups.


Peter

von Peter Z. (Firma: privat) (dj_peter)


Lesenswert?

hallochen liebes forum,

P0 - P3 haben 10K pullups (vorsichtshalber alle ports).
habe BASCOM 8051 runtergeladen, dakann ich zwar schön simulieren, aber 
der 89S51 steht nicht drin! kann man da irgendwie (und von irgendwo) 
eine AT89S51.dat oder dll einbauen? wenn ja - wo bekomm ich die her?
sorry das ich euch nerve...ich bin halt anfänger was derart projekte 
betrifft. 'ne 200 watt-endstufe ist einfacher zu basteln....
danke für eure hilfreichen ratschläge nochmal.
gruß peter

von Sigint 112 (sigint)


Lesenswert?

Hallo Peter,
  simulieren ist ja schön und gut, aber die Ergebnisse können in der 
Praxis trozdem fehlerhaft sein. Die 8051er sind eigentlich eine relativ 
zahme Controllerarchitektur und sehr simpel aufgebaut. Erst die modernen 
Typen werden etwas unübersichtlich. Bei BASCOM kannst du die normalen 
Include-Dateien für den Standard-8051 verwenden... dann kannst du halt 
nur die Grundausrüstung nutzen, die bei allen 8051 vorhanden ist. Bei 
meinem AT89C52 funktioniert das super. Bist du dir auch ganz sicher, daß 
deine Schaltung und das Programm in Ordnung sind?
Schick mal deinen kompletten Schaltplan und das Testprogramm, damit man 
sich das mal anschauen kann.

Gruß,
  SIGINT

P.S.: Das ist ganz praktisch für ein Entwicklungsboard: 
http://www.pjrc.com/tech/8051/paulmon2.html

von dj_peter (Gast)


Lesenswert?

hallochen und guten morgen.
@ Sigint die schaltung ist ganz oben. naja...und die Programme... was 
man halt als Anfänger so versucht zu Proggen. blink-led, hello world, 
und so.
beim copilieren sagt Bascom, das alles i.o ist. speichern kann ich das 
auch alles, aber ich kann es nicht im Bascom brennen. Ponyprog kann 
meinen chip nicht erkennen u.s.w.. ich habe 2 Programme, welche den chip 
lesen, erkennen, schreiben und verifizieren können. Atmel's ISP 3.0 und 
ISP-Programmer 1.20.49. wenn ich jetzt das "sample" LCD "hallo 
world.hex" in den chip schreiben will sagt das isp "no data in File". 
öffne ich es in Bascom steht alles drin was ich geschrieben und 
copiliert hab...und ich denke mal, das diese einfache ausgabe am 
P0-->LCD in den Flash muss und nicht ins Eprom. und dann...ja - was ist 
mit den Inc.-dateien. wo müssen die hin und wo müssen die sein zum 
brennen?
sorry - alles "dumme" anfängerfragen - aber ich komm täglich einen 
kleinen schritt voran.

ich wünsch euch ein schönes WE
danke
peter

von Sigint 112 (sigint)


Lesenswert?

Also,
  der Schaltplan zeigt ja nur die Standarbeschaltung, nicht das, was du 
daran  angeschlossen hast. Anfänger können selbst eine LED falsch 
anschliessen. Deinen Kenntnisstand können wir ohne die entsprechenden 
Infos nicht einschätzen. Das selbe gilt für deine Programmierkünste. 
Vielleicht ist ja an deinem Programm was Grundlegendes falsch. Aber ohne 
das Programm können wir nur raten. Es ist aber schon seltsam, daß zwei 
Brennprogramme behaupten keine Daten in der HEX-Datei zu finden. 
Anscheinend gibts doch ein Problem mit deinem Programm oder BASCOM-8051. 
Es wäre auch pratisch, wenn du die HEX-Datei mal hochlädts. Dann kann 
ich mir anschauen, ob wirklich nix drin steht.
Im Grunde ist aber alles sehr einfach:
Du erstellst mit BASCOM dein Basicprogramm.
BASCOM übersetzt dann das Programm in eine Binärdatei, wobei die 
Include-Dateien nur dazu benötigt werden die symbolischen Registernamen 
in entsprechende Zahlenwerte umzusetzen. (Die Standardregister der 
8051-Architektur sind bei allen Typen gleich, daher kannst du bei allen 
modernen 8051er die Include-Dateien für den Ur-8051 verwenden)
Die Binärdatei wird in eine HEX-Datei umgewandelt, da die meisten 
Programme mit HEX-Dateien arbeiten können. Zudem kann in einer HEX-Datei 
gespeichert werden, wo die Binärdatei im Speicher abgelgt werden soll. 
Nicht mehr wird in der HEX-Datei üblicherweise hinterlegt.
Die HEX-Datei kannst du dann mit einem Brennprogramm öffnen und in den 
Chip brennen. Bei bestimmten Chips gibt es dann noch FUSES, wie bei dem 
AVR. Hiermit kannst du den Prozessor konfigurieren. (Welche Taktquelle, 
Watchdog,Ausleseschutz,etc.) Das ist aber stark vom Hersteller und 
Prozessor abhängig und wird bei den 8051er meines Wissens nach selten 
verwendet.

Gruß,
  SIGINT

von Peter D. (peda)


Lesenswert?

dj_peter schrieb:
> Atmel's ISP 3.0 und
> ISP-Programmer 1.20.49. wenn ich jetzt das "sample" LCD "hallo
> world.hex" in den chip schreiben will sagt das isp "no data in File".

Hast Du nen Link zu diesen Tools?

Ich habe in alle Foren den Eindruck, daß LPT-Programmer sehr 
problematisch sind. Selber habe ich sie noch nie probiert.

Ich würde Dir daher raten, einen 8051 mit UART-Bootloader zu nehmen und 
die Atmel Flip Software, z.B. AT89C51RB2 (CSD: 6,95€).
Ein erster Erfolg sollte dann schnell eintreten.

Dann kannst Du ja immer noch versuchen, die Macken des LPT-Programmers 
auszumerzen.

Solange Brennen und Verify nicht funktionieren, hat jeder MC das Recht, 
nichts sinnvolles zu tun.


Peter

von dj_peter (Gast)


Angehängte Dateien:

Lesenswert?

hallochen @ alle

das ist die datei, welche ich versuche in den chip zu bekommen.(orig. 
Sample) habe die Port-pins dann umgeschrieben (von P3.x auf P0.x) weil 
das LCD ja an P0 ist. RS ist am P2.0 und EN am 2.1. habe auch alle 8 
Datenleitungen des LCD angeschlossen. gespeichert, gebrannt - no data. 
sonnst nichts verändert im sample.

von Peter D. (peda)


Lesenswert?

dj_peter schrieb:
> das ist die datei, welche ich versuche in den chip zu bekommen.

Damit kann der Programmer nix anfangen!

Er braucht die HEX-Datei (jede Zeile fängt mit ":" an)!


Peter

von dj_peter (Gast)


Angehängte Dateien:

Lesenswert?

im anhang jetzt beide Tool's welche ich benutzen würde...

von dj_peter (Gast)


Angehängte Dateien:

Lesenswert?

das ist das ispprog

von dj_peter (Gast)


Lesenswert?

im Program Bascom ist die datei als Sample abgelegt auch als hex,sim, 
bas u.s.w. diese datei hab ich genommen. hab ich was falsch gemacht?? 
isp sollte mir doch die richtige .hex anzeigen ??(oder nicht...)

von Peter D. (peda)


Lesenswert?

dj_peter schrieb:
> im anhang jetzt beide Tool's welche ich benutzen würde...

Und was soll man damit?
Es geht doch darum, was Du damit gemacht hast!


Sigint 112 schrieb:
> Es wäre auch pratisch, wenn du die HEX-Datei mal hochlädts. Dann kann
> ich mir anschauen, ob wirklich nix drin steht.

Was war denn daran unklar?


Peter

von Sigint 112 (sigint)


Lesenswert?

>$sim
>Rem The $sim statement will remove long delays for the simulator
>Rem It is important to remove this statement when compiling the final file

Hast du das beachtet?

von Peter Z. (Firma: privat) (dj_peter)


Lesenswert?

guten Morgen @ alle
@ sigint - nein habe ich nicht beachtet, weil ich dachte, das gehört 
dazu. in anderer software steht ja auch irgendwelcher "kauderwelsch" 
drin, welcher nix mit dem prog zu tun hat. also war ich der meinung, 
diese datei zu nehmen, die Ports richtig einzustellen (also umschreiben) 
und dann speichern, und dann rein in den chip. war mein gedanke denn 
falsch?? denke mal nicht. und gerade bei so einer einfachen schaltung 
wie oben oder das ganz einfache Bord von dem Asim kahn (wo ja garnix 
weiter dran ist...) kann man doch nix falsch machen? (es sei denn man 
kann nicht löten...:-) )
das Asim-Board bekommt man auf lochraster hin - hab ich gemacht - das 
selbe in "grün".

von Peter Z. (Firma: privat) (dj_peter)


Angehängte Dateien:

Lesenswert?

hallochen @ alle
sorry - hatte mich im namen geirrt. Der junge mann heisst Tahan Prahara. 
und da geht nix falsch zu löten.

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.