Forum: Mikrocontroller und Digitale Elektronik Speicherbrereich At89C51CC03


von Chris T. (bonito)


Lesenswert?

Hallo,

jetzt wo ich endlich mein Board ferig habe wälze ich in den ganzen PDFs 
um den µC auch richtig zu programmieren. Und zwar komm ich mit den 
Speicherbereichen durcheinander.

Wo ich "Angst" vor habe ist unabsichtlich den Bootloader zu 
überschreiben der ja im externen Speicher abgelegt ist (wenn ich das 
richtig verstanden habe ab F800h).
Auf der anderen Seite könnte ich einfach ab Speicheradresse 0000h den 
AWcode ablegen, damit würde ich mir aber ziemlich viel Speicherplatz 
verbauen da ich ja nicht weiß wie viel Speicher gerade benutzt wird. -> 
in unserem Schulcontroller haben wir den AWcode z.B. ab der Adresse 
8000h - FFFFh abgelegt und den Speicher davor noch effektiv genutzt.

Was sollen die Bezeichnungen FM0 und FM1? Sind das nur Label für die 2 
Speicherbereiche oder kann ich die noch effektiv im Programm 
unterscheiden? Die 2 Begriffe verwirren mich jetzt etwas.

Kann mir dabei jemand weiterhelfen?

Danke

MFG
Christof

von Peter D. (peda)


Lesenswert?

Chris Tof wrote:

> Wo ich "Angst" vor habe ist unabsichtlich den Bootloader zu
> überschreiben der ja im externen Speicher abgelegt ist (wenn ich das
> richtig verstanden habe ab F800h).

Die Angst ist unbegründed.
Der Bootloader ist nur mit nem richtigen Programmiergerät (VPP=12V) 
änderbar.


> Auf der anderen Seite könnte ich einfach ab Speicheradresse 0000h den
> AWcode ablegen, damit würde ich mir aber ziemlich viel Speicherplatz
> verbauen da ich ja nicht weiß wie viel Speicher gerade benutzt wird. ->
> in unserem Schulcontroller haben wir den AWcode z.B. ab der Adresse
> 8000h - FFFFh abgelegt und den Speicher davor noch effektiv genutzt.

Genau umgekehrt.
Wenn Du bei 8000h startest, ist doch der Platz davor verschwendet.
Fang einfach bei 0000h an.

Der 8051 ist ne Harward-Architektur, d.h. Daten-SRAM ist nicht 
Code-Flash !
Im Daten-SRAM kann kein Code ausgeführt werden.


Peter

von Chris T. (bonito)


Lesenswert?

Irgndwie bekomm ich den µC nicht programmiert.
Schon mal vorweg: ich hab alles kontrolliert, keine Kurzschlüsse, die
Ports richtig angelötet, usw. -> elektrisch ist alles in Ordnung.
Mit Flip bekomm ich auch ne verbidung, d.h. ich kann mit Flip den µC
auslesen.

Nachdem ich gestern erstmal an diversen Assemblern (vor allem an den
völlig bescheuerten DOS Dingern) verzweifelt bin hab ich mir jetzt den
Batronix Prog Studio genommen. Die Anschlusseinstellungen hab ich
gemacht, aber als µC denn CC01 angegeben weil der CCO3 noch nicht in der
Auswahl ist. Das ist aber egal weil dadurch nur der Speicher halbiert
ist, sonst sind die ja gleich soweit ich weiß.

Aber egal was ich mache, am µC passiert nichts. Ich habs erstmal mit clr
Px.x und setb x.x versucht und mitm Multimeter nachgemessen->nichts!
Im Statusfenster von Prog Studio wird aber alles als Ok bzw. "Pass"
angezeigt.Und die Portpins (alle!!!) sind ständig auf High Pegel.

Ich weiß langsam echt nicht mehr weiter.

MFG
Christof

von Peter D. (peda)


Lesenswert?

Du mußt das Programm auch ausführen.

Also entweder aus dem Flip heraus oder Bootjumpbit oder Bootvektor auf 
00 setzen.

In den Bootloader kommst Du dann nur wieder mit dem Jumper PSEN-GND.


Peter

von Chris T. (bonito)


Lesenswert?

Wie mach ich das?


MFG
Christof

von Peter D. (peda)


Lesenswert?

Chris Tof wrote:
> Wie mach ich das?

In Flip.


Peter

von Bernd (Gast)



Lesenswert?

Hallo Christof,
im Anhang findest Du eine gute Beschreibung, wie Du mit FLIP einen 
HEX-File auf den CC03er bringst.
Da Du nicht in ´C´ programmierst, vergiß die ersten Seiten und fang 
einfach ab S. 29 an zu lesen. Dort ist der Download gut beschrieben.

Denk dran, wenn Du die Ports hin und her schaltest, wirst Du mit einem 
Multimeter nicht viel sehen, weils einfach zu schnell ist. Ein 
Oszilloskop ist dann unerläßlich.

Wenn Du in C programmieren willst, nimm einfach den Compiler uC51 von 
Wickenhäuser.

Viele Grüße


Bernd

von Chris T. (bonito)


Lesenswert?

Bernd wrote:

> Denk dran, wenn Du die Ports hin und her schaltest, wirst Du mit einem
> Multimeter nicht viel sehen, weils einfach zu schnell ist. Ein
> Oszilloskop ist dann unerläßlich.
>
> Wenn Du in C programmieren willst, nimm einfach den Compiler uC51 von
> Wickenhäuser.
>
> Viele Grüße
>
>
> Bernd


Danke, die Anleitung ist echt gut.

Zum Port schalten: ich wollte ja nur mit setb und clr 4 bits an und 4 
bits ausschalten mit ner Scheife drum , da ändert sich ja nichts mehr 
beim 2. Durchlauf. Das geht dann auch mit Multimeter.
Für alles andere hab ich mein schönes Fluke 100 MHz 2+2 Kanal Oszi, 
ganz Stolz :-)

von Chris T. (bonito)


Lesenswert?

So, endlich hat alles geklappt. Ich kann den µC Beschreiben, Resetten 
und dann wiederbeschreiben, wie es halt sein soll.
Danke euch für die Hife.


Fehler waren:
1. Ich bin von Batronix Prog Studio 2007 Community Edition auf Prod 
Studio 6 umgestiegen und hab dann die .hex mit Flip hochgeladen.

2. Die Schaltung für die PSEN-Gnd Verbindung mußte modifiziert werden.
  (in der Bauanleitung für mein Board war noch ein BC547 drin der nicht 
durchgeschaltet hat, jetzt liegt PSEN über nen DIP Schalter direkt auf 
GND)


MFG
Christof

von Chris T. (bonito)


Lesenswert?

Hallo,

ich hab da nochmal ne Allgemeine Frage zu dem Controller.
Ich hab ja jetzt nen 22 MHz Quarz davor gesetzt, aber mit welchem 
maximalen Takt könnte ich den Controller theoretisch betreiben? Würde 
auch ein 80 MHz Quarz funktionieren?


Danke

MFG
Christof

von ARM-Fan (Gast)


Lesenswert?

Guck doch mal auf die erste Seite des Datenblatts

von Chris T. (bonito)


Lesenswert?

Uups, hätte man sehen können :-/

Ok, Danke

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.