www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8051 Adress- und Datenbus, externe Peripherie und GLCD Problem


Autor: ilja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich versuche schon seit mehreren Tagen meine externe Peripherie an einem 
80C517A Mikrocontroller in Betrieb zu nehmen, jedoch ohne irgendwie 
weiterzukommen.

An dem gemultiplexten Adress-und Datenbus sind EPROM(Programmspeicher), 
16Bit AD-Wandler, ein DA-Wandler und ein GLCD mit einem T6963c 
controller angeschlossen.

Die externe Peripherie reagiert jedoch nicht wenn Sie über XDATA 
angesprochen wird.

Einen Hardwarefehler schließe ich aus, da die Hardware mit der 
programmierung in Assembler funktioniert.

Nun soll aber die Software in C mit der Keil uVision 
Entwicklungsumgebung neugeschrieben und erweitert werden.

Bei der Programmierung in C bin ich mir aber nicht 100%ig sicher ob ich 
die zusammenhänge richtig verstanden habe.

Die Daten des LCD steuere ich über eine festdefinierte XDATA Adresse in 
dem eine Variable definiert wird.

extern unsigned char xdata LCD_PTR at 0xB000;

Um jetzt zum Beispiel die Daten auszulesen würde ich das 
"inhalt=LCD_PTR;" schreiben.

Ausserdem habe ich in der Startup.A51 datei den XDATA Berreich 
folgendermassen eingestellt.

XDATASTART: 0xAFFF
XDATASIZE:  0x0200

mehr habe ich nicht gemacht.
Das Programm bleibt immer bei der Abrage des Statuses vom t6963c hängen. 
D.h. für mich so viel, dass keine Daten vom Adress- und Datenbus 
eingelesen werden.

Vieleich kann mir ja einer helfen. Ich befürchte irgendetwas vergessen 
zu haben oder nicht zu wissen.

Ich würde mich über jede Hilfe freuen

Vielen Dank.

Autor: 8051 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein Schaltplan wäre sehr hilfreich.
(Bildformate beachten )

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ilja schrieb:
> XDATASTART: 0xAFFF
> XDATASIZE:  0x0200

Glaub ich Dir nicht, daß der XRAM ein Byte tiefer als ne Adreßleitung 
anfängt.
Und dann ist Dein LCD ja an der 2. Adresse (0xB000) des XRAM, das geht 
schief.


Peter

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Einen Hardwarefehler schließe ich aus, da die Hardware mit der
>programmierung in Assembler funktioniert.

>Nun soll aber die Software in C mit der Keil uVision
>Entwicklungsumgebung neugeschrieben und erweitert werden.


das ergibt wenig Sinn. C macht auch nur ASM daraus.
Warum versucht Mann oder Frau sich an so alten Controllern ohne 
grundlegende Hardwarekenntnisse zu haben. Wenn Euer Ausbilder vergessen 
hat Euch Hardwarecodierung bei zu bringen, sollte er es nicht verlangen. 
Oder Mann oder Frau sollte zuhören statt Frecell zu spielen. Wie auch 
immer. Die Adressdecoder sollte man schon im Plan sehen. Dann wird sehr 
schnell vieles klar.

ps.:
ist das Projekt einfach nur um sich selbst zu quälen oder eine Aufgabe ?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
XBYTE[adr] = by;

 by = XBYTE[adr];

So ging das bei Keil damals vor vielen, vielen Jahren;)

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
holger schrieb:
> XBYTE[adr] = by;
> by = XBYTE[adr];

Geht bestimmt immer noch...

Interner RAM liegt auf Adresse F800-FFFF (2kbyte). Allerdings nur, wenn 
XMAP0= 0 ist, sonst greift man auf den exteren XDATA-Bereich zu.

Autor: ilja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die schnellen Antworten.

Der Fehler ist beseitigt. Die XDATASTART war falsch eingestellt.
Zusätzlich wurden die RD und WR Pins des T6963 über die "normalen" Ports 
eingesteuert. Und das ging natürlich immer schief. Nun werden die Pins 
des T6963 mit den WR und RD Ausgängen des 8051er eingesteuert.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.