miniCon537 und cs Signal für RTC setzen?

Gast #4874100
Lesenswert?

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?
Gast #4874177
Lesenswert?

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?
Gast #4874225
Lesenswert?

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.
#4874245
Lesenswert?

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.
Gast #4874259
Lesenswert?

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
1
$INCLUDE (reg517aw.inc)
2

3

4

5

6

7
DS 32  ;32 Bytes für Stack reservieren
8
cseg at 0000h
9

10

11
; Einstellen der Adressen der Register der RTC:
12
S1    EQU  0FA00H  ;RTC-SFR Sekunden Einerstelle
13
S10    EQU  0FA01H  ;RTC-SFR Sekunden Zehnerstelle
14
Min1          EQU  0FA02H  ;RTC-SFR Minuten Einerstelle
15
Min10          EQU  0FA03H  ;RTC-SFR Minuten Zehnerstelle
16
H0    EQU  0FA04H  ;RTC-SFR Stunden Einerstelle
17
H10    EQU  0FA05H  ;RTC-SFR Stunden Zehnerstelle
18
D1    EQU  0FA06H  ;RTC-SFR Tage Einerstelle
19
D10    EQU  0FA07H  ;RTC-SFR Tage Zehnerstelle
20
M1    EQU  0FA08H  ;RTC-SFR Monate Einerstelle
21
M10    EQU  0FA09H  ;RTC-SFR Monate Zehnerstelle
22
Y1    EQU  0FA0AH  ;RTC-SFR Jahre Einerstelle
23
Y10    EQU  0FA0BH  ;RTC-SFR Jahre Zehnerstelle
24
Week  EQU  0FA0CH  ;RTC-SFR Wochentag
25
REGD  EQU  0FA0DH  ;RTC-SFR Steuerregister D
26
REGE  EQU  0FA0EH  ;RTC-SFR Steuerregister E
27
REGF  EQU  0FA0FH  ;RTC-SFR Steuerregister F
28

29
LCALL rtc_init0
30

31
loop:  
32

33
  lcall  rtc_lesen  
34

35
  mov  A,#10000001b  ;zeile 1 pos 40h
36
  LCALL  set_cursor  ;Cursor an Adresse setzen
37

38
  MOV  R1,#35H  ;Uhrzeit Std. im Datenspeicher
39
  MOV  A,@R1
40
  LCALL  Zeichen
41
  DEC  R1
42
  MOV  A,@R1  
43
  LCALL   Zeichen  
44
  DEC  R1
45
  MOV  A,#3AH
46
  LCALL  Zeichen
47
  MOV  A,@R1  ;Uhrzeit Minuten
48
  LCALL  Zeichen
49
  DEC  R1
50
  MOV  A,@R1
51
  LCALL  Zeichen
52
  DEC  R1
53
  MOV  A,#3AH
54
  LCALL  Zeichen
55
  MOV  A,@R1  ;Uhrzeit Sekunden
56
  LCALL  Zeichen
57
  DEC  R1
58
  MOV  A,@R1
59
  LCALL  Zeichen
60
  
61
  ljmp  loop
62
;...................................................................
63
        rtc_init0:
64
  MOV  DPTR,#REGF  
65
  MOV  A,#04H  ;Test=0 immer, 24h Betrieb, Uhr aktiv, 
66
  MOVX  @DPTR,A  ; ... Reset inaktiv
67
  MOV  DPTR,#REGE
68
  MOV  A,#00H  ;
69
  MOVX  @DPTR,A
70
  MOV  DPTR,#REGD
71
  MOV  A,#00H  ;Hold auf Null
72
  MOVX  @DPTR,A  ;Initialisierungsroutine gemäß 
73
      ;Programmbeispiel von Prof. vom Berg 
74
      ;laut Datenblatt
75
  LCALL  rtc_bereit
76

77
  MOV  DPTR,#REGF
78
  MOV  A,#07H  ;Test=0, 24h, Uhr stop, Reset aktiv
79
  MOVX  @DPTR,A  
80
  
81
  MOV  A,#06h  ;Test 0 24h, uhr Stop, Reset inaktiv
82
  MOVX  @DPTR,A  
83

84
  MOV  DPTR,#S1
85
  MOV  A,#00H  
86
  MOVX  @DPTR,A  
87
   
88
  MOV  DPTR,#S10
89
  MOV  A,#00H  
90
  MOVX  @DPTR,A  
91
  
92
  MOV  DPTR,#Min1
93
  MOV  A,#00H  
94
  MOVX  @DPTR,A  
95

96
  MOV  DPTR,#Min10
97
  MOV  A,#00H  
98
  MOVX  @DPTR,A  
99

100
  MOV  DPTR,#H0
101
  MOV  A,#00H  
102
  MOVX  @DPTR,A  
103

104
  MOV  DPTR,#H10
105
  MOV  A,#00H  
106
  MOVX  @DPTR,A  
107

108
  MOV  DPTR,#D1
109
  MOV  A,#03H  
110
  MOVX  @DPTR,A  
111
  
112
  MOV  DPTR,#D10
113
  MOV  A,#02H  
114
  MOVX  @DPTR,A  
115

116
  MOV  DPTR,#M1
117
  MOV  A,#02H  
118
  MOVX  @DPTR,A
119

120
  MOV  DPTR,#M10
121
  MOV  A,#00H  
122
  MOVX  @DPTR,A  
123
  
124
  MOV  DPTR,#Y1
125
  MOV  A,#06H  
126
  MOVX  @DPTR,A  
127

128
  MOV  DPTR,#Y10
129
  MOV  A,#00H  
130
  MOVX  @DPTR,A  
131

132
  MOV  DPTR,#Week  ;Wochentag So=0, Mo=1, ...
133
  MOV  A,#04H  ; entspr. Donnerstag
134
  MOVX  @DPTR,A  
135

136
  MOV  DPTR,#REGF  
137
  MOV  A,#04H  ;Test=0 immer, 24h Betrieb, Uhr aktiv, 
138
  MOVX  @DPTR,A  ; ... Reset inaktiv
139
  MOV  DPTR,#REGE
140
  MOV  A,#00H  ;
141
  MOVX  @DPTR,A
142
  MOV  DPTR,#REGD
143
  MOV  A,#00H  ;Hold auf Null
144
  MOVX  @DPTR,A  ;Initialisierungsroutine beenden mit 
145
      ;einer Wiederholung der Anfangssequenz
146

147
rtc_bereit:  
148
  MOV  DPTR,#REGD
149
  MOV  A,#01H
150
  MOVX  @DPTR,A  ;HOLD auf high
151
  MOVX  A,@DPTR  ;Busy einlesen
152
  ANL  A,#02H  ;und ausmaskieren (JNB ACC.1 nicht akzeptiert???)
153
  CJNE  A,#00H,ber  ;wenn Busy low ist, ist die RTC bereit
154
         MOVX  A,@DPTR
155
  Anl  A,#0feH
156
  MOVX  @DPTR,A  ;Hold auf low
157
  SJMP  rtc_bereit  ;warten bis RTC bereit  
158
ber:  Anl  A,#0feH
159
  MOVX  @DPTR,A  ;Hold auf low
160
  RET
161

162
rtc_lesen:
163
  MOV  R0,#13D    ;13 Uhrenregister
164
  MOV  R1,#30H    ;Zeiger auf den unteren Datenspeicher
165
  MOV  DPTR,#S1    ;DPTR auf erstes Uhrenregister
166
next:  call  rtc_bereit  ;ist die Uhr bereit zum Auslesen?
167
  MOVX  A,@DPTR    ;Uhrzeit auslesen
168
  ANL  A,#0FH    ;Ergebnis ausmaskieren
169
  ADD  A,#30H    ;Formatierung für LCD-Ausgabe
170
  MOV  @R1,A    ;und in der entspr. Speicherzelle ablegen
171
  INC  DPTR    ;nächstes Uhrregister und ...
172
  INC  R1    ;nächsten Speicherplatz einstellen
173
  DJNZ  R0,next
174
;  MOV  P1,30H    ;Kontrollwert
175
  RET
176
RET
#4874288
Lesenswert?

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.
Gast #4874480
Lesenswert?

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
Gast #4877293
Lesenswert?

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.

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