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
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.
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.
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.