Hallo Mikrocontroller Freunde
Hat jemand vieleicht ein paar Infos zur Ansteuerung eines
Timekeepingship DS1302 über den I2C-Bus.
z.B 1) Initialisierung des DS1302
2) Funktion des I2C-Buses
Ich verwende das Flash-Board AT89S8252 und den Compiler von Keil
uVision2 7.0
Ich würde mich sehr über Quellcodeauszüge freuen.
Mit freundlichen Grüßen
Christian Kölscher
Zum I2C findest Du hier was:
http://www.specs.de/users/danni/appl/hard/i2c/index.htm
RTC-Chips verwende ich normaler Weise keine, die Netzspannung fällt
einfach zu selten aus in Germany. D.h. es reicht der interne Timer des
MC völlig aus.
Nur wenns doch mal mobil sein soll, nehme ich den DS1994. Der ist so
schön unkompliziert, da Batterie gleich mit drin und nur ein Anschluß
benötigt.
Peter
Hallo Peter vielen Dank für die schnelle Antwort.
Kannst du mir etwas zu meiner Vorgehensweise zum Anschluss sagen:
Ich habe
1) 3-Anschlüsse des DS1302 (SCLK, I/O, !RST) an den Port3
(P3_5, P3_4, P3_3)angeschlossen.
Ist das eigentlich egal an welche Ports ich den I2C-Bus anschließe?
Ich würde mich freuen wenn ich eine Bestätigung bekommen würde, dann
kann ich schon mal den Hardware Anschluss als richtig ansehen.
Mit freundlichen Grüßen
Christian
P.S. Ich taste mich so langsam an mein Problem. Ich soll eine
Steuerung aufbauen mit LCD-Display, Timekeeping DS1302, und
Termofühler. Habe aber noch nicht so viele Erfahrungen mit der
Programierung von uC
So hat ein wenig länger gedauert,aber...ich kann den chip nicht über den
I2C-Bus ansteuern.
Es sind doch nur drei kleine Leitungen die mich verzweifeln lassen.
Vieleicht kann mir ja jemand helfen..
Quellcode währe sehr schön
Mit freundlichen Grßen
Christian
@Hölcher
Der DS1302 hat garkeine I2C-Schnittstelle sondern eine
SPI-Schnittstelle.
Wenn Du mit I2C arbeiten möchtest dann ist der DS1307 Dein Bauteil.
Selbe Funktion wie DS1302 nur mit I2C-schnittstelle. Dann klappt's
auch mit dem programmieren ;-)
Gruß Jörg
Hallo Jörg vielen Dank für die Antwort.
Ich bin zur Zeit dabei den Baustein über SPI anzusteuern.
Hast du vieleicht eine Vorgehensweise für mich oder ein Beispiel zur
Ansteuerung?
Mit freundlichen Grüßen
Christian
Der DS1302 wird weder mit I2C noch mit SPI angesprochen. Es wird ein
Drei-Draht-Protokoll verwendet, dessen Knackpunkt ist, dass die
Antworten der RTC bei der fallenden Flanke anliegen, die zu schreibenden
Daten jedoch bei der steigenden Flanke der CLK anliegen sollen. Daher
hat im Datenblatt die Lese-Funktion einen CLK-Impuls weniger.
Hier ist das mal mit den Grundfunktionen Read / Write in Arduino
umgesetzt. Es läuft auf einem ProMini mit 8 MHz und einen Seeeduino XIAO
(beide nativ mit 3,3 Volt).
In der Setup-Funktion werden Std. Min und Sekunden gesetzt. Beachte,
dass hier die Hex-Schreibweise der zweistelligen BCD entspricht.
muss die READ-Funktion korrigieren. So wie oben wird das 8. Bit
unterschlagen. Habe das bemerkt, als die Arbeit mit dem TCS-Register
begann. Bei den Uhrzeiten war das nicht aufgefallen.
Bitte daher ersetzen mit:
Thomas S. schrieb:> Beachte,> dass hier die Hex-Schreibweise der zweistelligen BCD entspricht.
Ich schätze dass sich der TO nach 18(!) Jahren nicht mehr für deinen
Beitrag interessiert....