Adress- Datenbus

Gast #17058
Lesenswert?
• ▲
▼
problem:
ich hab bis jetzt nur mit "kleinen" uC gearbeitet, d.h. da hat man ein 
Port das ein Direction Register hat und ein Data Register, wenn ich 
jetzt auf das Port was schreiben/lesen will sag ich einfach Port1 ist 
Ausgang Port1.Pin1 ist 1 mittels dem DataRegister, klingt logisch, jetzt 
hab ich aber einen uC der einen fixen Adressbus und einen fixen Datenbus 
hat, wie funktioniert es jetzt das ich auf eine bestimmte Adresse Daten 
schreiben kann?? wenn ich in der headerdatei ein #define mache und zum 
Beispiel auf die Adresse 0x60000 schreiben will:
#define Addresse1 *(volatile unsigned char*) 0x60000, wenn ich dann im C 
Teil schreib, Adresse1=1; müsst er doch die Adresse 0x60000 am Adressbus 
anlegen und am Datenbus 1, oder nicht?? klingt sehr kompliziert, hoffe 
es versteht irgendwer
Gast #17059
Lesenswert?
• ▲
▼
Da meine C-Kenntnissse noch nicht so berauschend sind, kann ich Dir 
konkret nicht helfen. Ich habe jedoch mit einer C167-MCU gearbeitet, und 
da hat der C-Compiler von Keil diese Aufgaben mit speziellen Befehlen 
gelöst.

Zu erwähnen ist natürlich, daß bei Bussystemen die verschiedenen
Bausteine (EPROM, RAM, USART usw.) über eine seperate Dekodoerlogik 
(Stichworte: 'HC138, GAL) enabled werden müssen.

Wenn Du wirklich noch keine Ahnung hast, wäre als Einstieg ein fertiges 
EVAL-Board mit zugehöriger Software richtig.

Sieh' mal unter:  http://www.phytec.de  nach.

Norbert
#17064
Lesenswert?
• ▲
▼
Hallo Mark,

jeder Adreß-, Datenbus funktioniert anders.

Deshalb steht auch in jedem Datenblatt eines µC, wie externer Speicher 
angeschlossen werden muß.

D.h. ohne zu wissen, welchen µC Du meinst, kann Dir keiner helfen.

Muß ja doch schon ein 16-Bitter sein mit mindestens 19 Adreßleitungen, 
um Adresse 0x60000 zu dekodieren.


Was grundsätzlich funktioniert, funktioniert auch praktisch, sonst müßte 
der Hersteller seine Chips ja einstampfen.

D.h. immer den Fehler zuerst bei sich selber suchen oder nochmal 
gründlicher alle dazu gehörenden data sheets, user guides, application 
notes, design examples, errata sheets usw. lesen.


Im Zweifelsfall die Hardware auch immer erst mit Assembler testen.
Wenn z.B. die externen Speicherzugriffe nicht klappen, der C-Compiler 
dort aber seinen Stack ablegt, kann es nur noch crashen.



Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren