MB90F548GS - Verwendung des externen Bus

OP #395349
Lesenswert?
• ▲
▼
Guten Morgen,

ich arbeite seit kurzem mit dem MB90F548GS der Firma Fujitsu. Mein
Aufgabe ist es diesen mit einem externen Grafikprozessor der Firma
Epson zu verbinden und zu programmieren. Dazu verwende ich die externe
Bus-Schnittstelle des MCU, welche mir allerdings ein bischen
Kopfzerbrechen bereitet und vielleicht hat hier jemand damit etwas
Erfahrung sammeln können.

Laut Datenblatt ist bei diesem Baustein diese Schnittstelle in den
Bereich des internen Speicher-Mappings auf 0x010000 gelegt. Also
definiere ich mir

#define EXTERNAL_BASE_ADDR 0x010000

Um den Zugriff auf die Register des Epson etwas zu erleichtern
definiere ich mir zusätzlich

#define EPSON_REVISION_CODE *(volatile unsigned char __far*)
(EXTERNAL_BASE_ADDR+0x0000)
#define EPSON_MISCELLANOUS *(volatile unsigned char __far*)
(EXTERNAL_BASE_ADDR+0x0001)

Mit diesen beiden Symbolen kann ich ganz bequem Lese- und
Schreiboperationen auf dem Bus auslösen. Testweise habe ich einen Logic
Analyzer angeschlossen um sicherzustellen, dass das Protokoll zu
generiert wird wie gedacht.

Leider musste ich feststellen, dass das MCU nicht wie erwartet die
internen Adressen auf die externen Adressen abbildet (also 0x000000 und
0x000001). Stattdessen gibt er 0x010000 und 0x010001 aus. Was den
Zugriff auf die unteren Adressen des Epson ein wenig erschwert.

Falls hier jemand schonmal Erfahrung mit diesem Baustein gemacht hat,
bitte lasst es mich wissen. Die Fujitsu Leute tun sich etwas schwer mit
ihrer Hilfestellung.

MfG
Tembridis
Gast #395350
Lesenswert?
• ▲
▼
Folgendes sollte funktionieren (eventuell muss noch das far an den
Compiler angepasst werden, also durch das __far o.ä)

char far *const EPSON_REG=(far char *) EXTERNAL_BASE_ADDR;

mit z.B. wert=EPSON_REG[0];
kann man auf die einzelnen Register zugreifen.
OP #395351
Lesenswert?
• ▲
▼
Danke für die Idee. Allerdings ist es nicht so, dass

EPSON_MISCELLANOUS = 0xFF

oder

u8RevisionCode = EPSON_REVISION_CODE

nicht bereits funktioniert haben. Vom Verhalten her ist am Logic
Analyzer kein Unterschied auszumachen. Es bleibt dabei, dass der
90F548GS die Adressen (meiner Ansicht nach) nicht korrekt abbildet.

Ich vermute, dass ich irgendwas nicht korrekt konfiguriert habe. Leider
weiß ich eben nicht was.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.