Hi,
nach der vielen Hilfe hier hoffe ich das mir auch jemand bei meinem
letzten Problem helfen kann. Auf dem miniCon537 befindet sich noch eine
RTC die an den Adress und Datenbus angeschlossen ist. Um darauf
zuzugreifen ist es notwendig die RTC wie einen ext. Speicher zu
behandeln. Laut Anleitung muss dafür die RTC selektiert werden.Das Board
besitzt dafür ein PLD das die erforderlichen CS Signale steuert. Leider
ist mir nicht ganz klar wie das funktionieren soll.
Hier nochmal der Link zur Anleitung:
http://www.phytec.de/fileadmin/user_upload/downloads/Manuals/L-003d_2.pdf
Das auf meinem Board verwendete PLD ist genau das was in der Anleitung
beschrieben ist.Im Anhang auch das PLD Source. Es ist auch immer die
Rede von Basis Adresse. Was ist das genau.Wie die RTC an sich
funktioniert ist mir klar,aber ich bekomme leider nicht herraus wie ich
die RTC selektiere.Wenn ich das richtig sehe muss EW auf LOW gebrauch
werden.m Aber wie?
Wenn ich es richtig verstehe muss ich mit:
MOV A,Adrese des Banklatches
MOVX @DPTR,A
das zuständige cs Signal für die RTC einstellen.
Aber wie ist die Adresse von diesem Banklatch? Und welche Daten müssen
dann geschrieben werden?
So wie ich das sehe, wird die RTC ab FA00H adressiert. Die RTC ist auf
Seite 47 beschrieben. Ansonsten Tante gugel nach dem Datenblatt fragen.
Das Banklatch hat damit eigentlich zunächst nix zu tun.
Bist du sicher das das Banklatch nichts damit zu tun hat. Oder ich
verstehe das falsch. Auf Seite 34 steht etwas über Chip Enable Signale.
Und Signal EW1 ist für die RTC. Ich habe auch am Chip gemesen. CE ist
immer High.
blutengel schrieb:> Und Signal EW1 ist für die RTC. Ich habe auch am Chip gemesen. CE ist> immer High.
Sach ich doch. Basisadresse nach dem angegebenen PLD ist die FA00H. Und
das erste EW1 Signal ist eben für die RTC. Das sollt auch High sein im
Normalzustand. Oder hast du irgendein Programm drauf am laufen, welches
die RTC anspricht ? Testhalber ginge auch das Monitorprogramm. Das
Banklatch dürfte für die Umschaltung der beiden Speichermodelle da sein,
um z.B. ein Intel Basic drauf laufen zu lassen, welches im oberen
Bereich Programm und Daten gleichzeitig sehen will.
Ja habe eine Initalisierungsroutine laufen.Nach der Initalisierung wird
die RTC in Dauerschleife ausgelesen und auf einem LCD ausgegeben. Die
LCD Routinen habe ich mal jetzt aus Übersichts Gründen hier weg gelassen
NIcht mit dem aufgelisteten PLD. Vielleicht steckt ja ein anderes drin.
Evtl. auf Lochraster aufbauen und statisch durchtesten... Oder mach ein
Programm, welches zyklisch alle Speicherzellen ausliest und auf einem
Portpinr ein Syncsignal z.B. alle paar kB ausgibt. Und dann langsam
einkreisen, ob überhaupt auf FA00H selektiert wird.
So habe jetzt mal ein Programm geschrieben das einmal jede Adresse von
FA00h bis FC00h anwählt und habe ein Oszi an den CE Pin des RTC
gesetzt.dazwischen war immer eine Sekunde Pause damit man nichts
verpasst weils zu schnell ist, aber kein Mucks auf dem Ce Pin
Ne leider nicht. Egal welche Adresse ich anwähle es passier rein gar
nichts. Das kann doch nicht so schwierig sein. Das Problem ist auch
leider das es über das Board nicht viel gibt im Netz
Also der Fehler war eig. ganz einfach. NUr nicht einfach zu finden. Ihr
hattet Recht. Das erste Uhrenregister fängt bei FA00h an. CS Signal muss
nicht manuell gesezt werden. Je nachdem welche Adresse angesprochen
wird,schaltet das PLD automatisch die CS Signale dadurch das A9 bis A15
an den PLD angeschlossen sind. Der Fehler aber lag in der rtc_lesen
Routine. Dort wird ein Busy abgefragt.Dieser Befehl stand an der
falschen Stelle.Es muss vor dem setzen der Adresse für das Uhrenregister
abgefragt werden.