Erstmal wünsche ich euch einen allen einen schönen guten morgen. Ich gehe auf die HTL Donaustadt im 22. Bezirk und besuche gerade den letzten Jahrgang, und habe ein paar Schwierigkeiten in den technischen Fächern und leider auch bei unserem Jahresprojekt, was ich noch mit zwei anderen Schülern mache. Es handelt sich eig. um eine Uhr, die eig. ein Countdown ist. Naja kommen wir mal zur Sache, aufjedenfall meine Aufgabe ist es: Eine RTC-Schaltung zu bauen, die auch schon fertig ist, habe da eine schöne Schaltung aus dem Datenblatt gefunden und sie gebaut, war auch nicht so leicht da ich leider einen SMD- RTC habe, den ISL 12029, aber mein Problem liegt jetzt darin das mit einem Evaluationboard über I2C zu verbinden, habe mich schon durch mehrere Seiten durchgelesen, also ich verstehe einmal was es ist, und worum es geht, nur fehlt mir ein Programm zur Initialisierung, der Lehrer meinte zu mir ich soll Beispielprogramme aus dem Internet finden, die ich leider nicht finde. Könnte mir jemand bitte helfen, oder mir paar Tipps geben, denn ich hänge gerade sehr an diesem Punkt leider. (Ich habe auch die Schaltung einmal gezeichnet und auch im Anhang dazu gegeben, die ich gebaut habe, die mit den Widerständen stimmt). Lg Stefan und danke das ihr gelesen habt.
Such beim Hersteller des verwendeten Prozessors nach Beispielprogrammen. Da gibts normal immer alles, I2C, UART, A/D und was die Chips noch so alles können. Hier gibts sicher auch Lösungen dafür, aber selbstständiges Denken Deinerseits wäre wohl Deiner Ausbildung eher angemessen.
i2c master oder slave suchen bei google oder hier im forum, da findest du einige c programme, ti hat auch beispiele, die anderen HErsteller denke ich auch. Die eigentliche Portierung auf deine Anwendung kostet dann Zeit und ist je nach deinen Erfahrungen mehr oder weniger einfach. Such dir erstmal die Codes zusammen und versuchs damit, wenn du dann konkrete Fragen hast hilft man dir sicher gerne. Viele GRüße.
Das heißt, z.b auf dem Datenblatt von dem RTC meint ihr? Lg Stefan
Erst mal brauchst du auf deinem Master (Mikrocontroller?) eine I2C Schnittstelle. Wenn du den am laufen hast, kann man sich die RTC anschauen und sehen was man da alles rein schreiben und lesen muss.
Ich muss es ja mit einem Evaluationboard verbinden, mit so einem http://www.pollin.de/shop/dt/MTY5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_Version_2_0_1_Bausatz.html und da befinden sich die i2C Anschlüße, und ich soll jetzt ein Programm finden(schreiben) bei dem genau die Pins angesprochen werden, das ich es gleich dort verbinden kann. Nur leider suche ich vergeblich. Lg
Der Lehrer meint auf der Schaltung die ich habe, muss ich eig nichts mehr verändern nur noch das Initialisierungsprogramm suchen und dann mit den richtigen Pins verbinden. Lg Stefan
Hallo Wo schließt du denn diese Schaltung an? Da fehlt doch noch der entscheidende Teil mit I2C-Anschluß, über das du den RTC auslesen kannst. Ganz zu schweigen von einer Anzeigeeinrichtung, sonst macht das ganze doch keinen Sinn. Gruß Joachim
Stefan R. schrieb: > und da befinden sich die i2C Anschlüße, und ich soll jetzt ein Programm > finden(schreiben) bei dem genau die Pins angesprochen werden, das ich es > gleich dort verbinden kann. > > Nur leider suche ich vergeblich. Dir wurden doch jetzt schon ein paar Links genannt, die auf fertige Software-bibliotheken verweisen, die den I2C Teil übernehmen! Zb. die Fleury Lib. Hinweis: Bei Atmel heißt das ganze aus rechtlichen Gründen TWI (Two Wire Interface). Ist aber genau das gleiche. Jetzt musst du nur noch mit dem Datenblatt feststellen, was du über I2C dem Baustein schicken musst, damit er etwas bestimmtes macht. Sollen wir Händchen halten kommen?
Hallo Stefan, damit dir hier irgendjemand weiterhelfen kann mußt du noch mit einigen Informationen herausrücken: 1. Welcher Prozessor (das Pollin-Board ist für 8 verschiedene angegeben, wenn pin-kompartiebel noch mehr)? 2. Wie schon von Joachim angesprochen: Wie soll die Auswertung erfolgen (einfache Anzeige mit LED, Uhrzeit auf Display, Übetragung auf einen PC, etc.)? 3. Wie soll die Uhrzeit eingestellt werden (Tasten, vom PC)? 4. Welche Programmiersprache kannst/willst du verwenden? 5. Läuft bei dir schon eine Programmierumgebung und hast du schon erste Testprogramme auf deinem Board zum Laufen gebracht? Habe sicher noch einiges vergessen. Durch die Vielzahl der Möglichkeiten wirst du auch kein fertiges Programm (weder hier noch zum Herunterladen) bekommen. Das ist kein Projekt das ein Anfänger in einer Stunde erledigen kann. Du wirst dich wohl bei einigen Themen noch etwas einlesen müssen (Datenblätter, I2c, Programmierung). Das kann und will dier hier keiner abnehmen. Wenn du dann konkrete Hilfe bei einigen Punkten brauchst, gibt es hier gute Leute die dir gerne helfen. Bin selbst noch Anfänger. Weiß wie schwer das am Anfang ist und daß es einige Zeit dauert bis man erste brauchbare Ergebnisse erhält. Lg Herbert
> Durch die Vielzahl der Möglichkeiten wirst du auch kein > fertiges Programm (weder hier noch zum Herunterladen) bekommen. Vor allen Dingen wird er hier kein fertiges Programm bekommen, weil es sich bei der Arbeit um seine Jahresarbeit handelt, deren Note und QUalität direkt in sein Maturazeugnis (Abitur) eingeht. Es handelt sich bei einer HTL um eine technische Schule, im vorliegenden Fall für Elektrotechnik/Elektronik oder Informatik. Wenn ihm hier jemand die Arbeit macht, dann geht er sich in einem halben Jahr vorstellen und sein zukünftiger Chef stellt ihn ein, weil in seinem Zeugnis steht, dass er diesen Aufgabenbereich eigntlich beherrscht. Da steht nicht: vorgeschriebene Projektarbeit nur durch Mithilfe eines Forums gelöst. Und mit so jemandem will ich ehrlich gesagt nicht zusmmenarbeiten müssen. > Weiß wie schwer das am Anfang ist und daß es einige Zeit dauert > bis man erste brauchbare Ergebnisse erhält. Er ist in der Abschlussklasse. In einem halben Jahr könnte er dein Boss sein. In 3 Jahren ist er ohne weitere Prüfungen berechtigt, den Titel "Ingenieur" zu führen. Nur um das alles mal ins rechte Licht zu rücken.
Herbert schrieb: > Hallo Stefan, > > damit dir hier irgendjemand weiterhelfen kann mußt du noch > mit einigen Informationen herausrücken: > > 1. Welcher Prozessor (das Pollin-Board ist für 8 verschiedene > angegeben, wenn pin-kompartiebel noch mehr)? Also wir verwenden einen Atmega 32A, wegen dem Speicherplatz weil wir haben um die 60 LED's anzusteuern. > > 2. Wie schon von Joachim angesprochen: Wie soll die Auswertung > erfolgen (einfache Anzeige mit LED, Uhrzeit auf > Display, Übetragung auf einen PC, etc.)? > Also es ist so unser Projekt soll in Form einer Pyramide sein, und auf auf 3 von den 4 Seiten sollen jeweils 20 LED's kreisförmig angeordnet sein. Beim Diplomprojekt sollen wir dann eine Verbindung zum Pc herstellen können, also das ist noch nicht wichtig. > 3. Wie soll die Uhrzeit eingestellt werden (Tasten, vom PC)? die Uhr soll über + und - Tasten eingestellt werden können, außerdem gibt es Start, Stopp, Reset, und Pause > > 4. Welche Programmiersprache kannst/willst du verwenden? Wir programmieren im AVR-Studio falls ihr das kennt. > > 5. Läuft bei dir schon eine Programmierumgebung und hast du > schon erste Testprogramme auf deinem Board zum Laufen > gebracht? Ja erste Testprogramme habe ich schon. z.b kann ich 4 LED's ansteuern also das nach jeder Sekunde eine mehr leuchtet und bei 4 beginnt es wieder von 0. umgekehrt kann ich das auch, sprich von 4 auf 0. Habe sicher noch einiges vergessen. > > Durch die Vielzahl der Möglichkeiten wirst du auch kein > fertiges Programm (weder hier noch zum Herunterladen) bekommen. > Das ist kein Projekt das ein Anfänger in einer Stunde erledigen > kann. Du wirst dich wohl bei einigen Themen noch etwas einlesen > müssen (Datenblätter, I2c, Programmierung). Das kann und will > dier hier keiner abnehmen. > > Wenn du dann konkrete Hilfe bei einigen Punkten brauchst, > gibt es hier gute Leute die dir gerne helfen. > > Bin selbst noch Anfänger. Weiß wie schwer das am Anfang ist > und daß es einige Zeit dauert bis man erste brauchbare Ergebnisse > erhält. > > Lg Herbert Ich brauche keine fertigen Programme, ihr helft mir schon wenn ihr mir Tipps gebt, wie ich weiter machen könnte, in Schritten, das wäre schon super. Lg Stefan
Um mit i2c (twi) vertraut zu werden, bietet sich m.M.n. immer noch ein eeprom am ehesten an. Zumal quasi -alles- an Informationen im Netz darauf hingestrickt ist. Würde dir raten entweder eine lib wie oben gepostet zu verwenden, sprich ans laufen zu bringen, oder anhand des Datenblattes das Ganze selbst zu schreiben. z.B. indem zu versucht ein Byte in irgendein eeprom zu schreiben und wieder zu lesen. Wenn du mit den i2c Routinen klarkommst, wäre es ratsam, sich das Datenblatt der rtc durchzulesen, denn dort musst du zum setzen und auslesen mit Sicherheit ein Datenformat beachten. Eben wie sich der Master und die Uhr unterhalten wollen. Das dann mit dem i2c Treiber erledigen.... Und wenn weitere Probleme kommen hier posten. P.S. Die i2c Pins auf andere i/o zu legen würde nur einen bit bang Treiber benötigen. Ich meine von Peter Danegger waren dazu Sourcen im Forum unterwegs. Da könntest du auch nach suchen, falls es eben nicht das twi Modul vom Atmel sein soll oder darf.
P.P.S. Wenn du die Fleury lib angehst, versuche doch auch einfach, ob du die device id der Uhr lesen kannst. Was vielleicht ein dummer Fehler werden könte ist es, das WEL, RWEL zu setzen. Muss vorm schreiben im statusregister gesetzt werden. Aber dererlei kannst du hier auch bestimmt noch fragen, wenn i2c lesen funktioniert. Den eeprom Teil der Uhr (die beiden haben halt einfach andere Adressen) zum probieren hast du ja auch.
@ Karl Heinz Karl Heinz Buchegger schrieb: > Es handelt sich > bei einer HTL um eine technische Schule, im vorliegenden Fall für > Elektrotechnik/Elektronik oder Informatik. Weiß was eine HTL ist, bin wie Stefan aus Wien. Karl Heinz Buchegger schrieb: > Vor allen Dingen wird er hier kein fertiges Programm bekommen, weil es > sich bei der Arbeit um seine Jahresarbeit handelt, deren Note und > QUalität direkt in sein Maturazeugnis (Abitur) eingeht. Du hast natürlich vollkommen Recht das man ihm hier nicht, bis zum letzten Detail, alles vorkauen kann. Aber einige Ratschläge, wie man ein Projekt angeht, sollten erlaubt sein. Man lernt ja nicht nur in der Schule. Das meiste kommt ja erst viel später dazu (Praxis, Kurse, Gespräche, Internet-Beitäge, Bücher, Datenblätter, etc. und eben auch ein Forum wie dieses). Karl Heinz Buchegger schrieb: > dann geht er sich in einem halben Jahr vorstellen und sein > zukünftiger Chef stellt ihn ein, weil in seinem Zeugnis steht, dass er > diesen Aufgabenbereich eigntlich beherrscht. Jeder Chef, dessen einziges Einstellungskritärium ein Zeugnis ist, ist selbst schuld. Karl Heinz Buchegger schrieb: > In einem halben Jahr könnte er dein Boss > sein. Nicht sehr wahrscheinlich, habe beruflich nichts mit Elektronik zu tun. Lg Herbert
Clemens M. schrieb: > Um mit i2c (twi) vertraut zu werden, bietet sich m.M.n. immer noch ein > eeprom am ehesten an. Ich würde her ein I/O Baustein + LEDs empfehlen. Dann hat man die direkte optische Rückmeldung wenn was geklappt an.
Ich danke euch für eure nette Hilfe, ich hätte auch schon ein Beispielprogramm gefunden, leider für einen RTC DS 1307 und nicht für meinen ISL 12029, hier ist das Programm: #include "Wire.h" #define DS1307_I2C_ADDRESS 0x68 byte decToBcd(byte val){return ( (val/10*16) + (val%10) );} byte bcdToDec(byte val){return ( (val/16*10) + (val%16) );} void setDateDs1307(byte second, byte minute, byte hour,byte dayOfWeek, byte dayOfMonth, byte month, byte year) { Wire.beginTransmission(DS1307_I2C_ADDRESS); Wire.send(0); Wire.send(decToBcd(second)); Wire.send(decToBcd(minute)); Wire.send(decToBcd(hour)); Wire.send(decToBcd(dayOfWeek)); Wire.send(decToBcd(dayOfMonth)); Wire.send(decToBcd(month)); Wire.send(decToBcd(year)); Wire.send(0x10); Wire.endTransmission(); } void getDateDs1307(byte *second,byte *minute,byte *hour,byte *dayOfWeek,byte *dayOfMonth,byte *month,byte *year) { Wire.beginTransmission(DS1307_I2C_ADDRESS); Wire.send(0); Wire.endTransmission(); Wire.requestFrom(DS1307_I2C_ADDRESS, 7); *second = bcdToDec(Wire.receive() & 0x7f); *minute = bcdToDec(Wire.receive()); *hour = bcdToDec(Wire.receive() & 0x3f); *dayOfWeek = bcdToDec(Wire.receive()); *dayOfMonth = bcdToDec(Wire.receive()); *month = bcdToDec(Wire.receive()); *year = bcdToDec(Wire.receive()); } void setup() { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; Wire.begin(); Serial.begin(9600); second = 0; minute = 02; hour = 13; dayOfWeek = 7; dayOfMonth = 22; month = 5; year = 10; setDateDs1307(second, minute, hour, dayOfWeek, dayOfMonth, month, year); } void loop() { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); } Jetzt wäre nur noch die Aufgabe dies für meinen RTC umzuschreiben, ich habe mir auch schon eine Nachhilfe geholt, die auch recht viel Geld kostet, die Nachhilfe meint auch dieses Programm wäre auf meines umzuschreiben nur brauchen wir diesen Wert 0x68, der ganz oben im Programm steht für meinen RTC, wir haben auch eine längere Zeit zusammen gesucht nur leider nicht gefunden. Kennt diesen Wert vl jemand von euch, oder wisst ihr was ich für meinen RTC alles ändern müsste? und ob ich dieses Programm auch verwenden kann, obwohl ich eine I2C-Schnittstelle machen muss. Ich würde euch sehr sehr sehr danken wenn ihr mir Tipps geben könnt, den mit den oberen Bibliotheken komme ich nicht weiter. Lg Stefan
Und noch eine Frage kann man das überhaupt mit meinem RTC schaffen? Denn ich habe ja mehrere Seiten über I²C gelesen und meistens habe ich nur den entdeckt DS1307, was meint ihr? Und bitte beim oberen Beitrag mir zu helfen wenn ihr könnt. Lg stefan
Hi >die Nachhilfe meint auch dieses Programm wäre auf meines >umzuschreiben nur brauchen wir diesen Wert 0x68, der ganz oben im >Programm steht für meinen RTC, wir haben auch eine längere Zeit zusammen >gesucht nur leider nicht gefunden. Findest du unter 'Device Addressing', Datenblatt S.18: 0xAE für den EEPROM und 0xDE für die RTC. MfG Spess
Es ist wirklich unglaublich wichtig, denn in 6 Wochen muss die Aufgabe fertig sein. Und ich habe wirklich Angst es nicht zu schaffen.
spess53 schrieb: > Hi > >>die Nachhilfe meint auch dieses Programm wäre auf meines >>umzuschreiben nur brauchen wir diesen Wert 0x68, der ganz oben im >>Programm steht für meinen RTC, wir haben auch eine längere Zeit zusammen >>gesucht nur leider nicht gefunden. > > Findest du unter 'Device Addressing', Datenblatt S.18: > > 0xAE für den EEPROM und 0xDE für die RTC. > > MfG Spess Ok Super DANKE, d.h. statt wie im oberen Programm 0x68 brauche ich bei mir 0xDE oder? Lg
> Findest du unter 'Device Addressing', Datenblatt S.18: > > 0xAE für den EEPROM und 0xDE für die RTC. > > MfG Spess noch eine Frage meinst du vl S.19 weil Device Addressing, ist bei meinem Datenblatt für den RTC ISL12029 http://www.intersil.com/data/fn/fn6206.pdf Lg
Hi >Ok Super DANKE, d.h. statt wie im oberen Programm 0x68 brauche ich bei >mir 0xDE oder? Ja. Beachte aber, das im Bit0 angegeben wird, ob es sich um einen Schreib- oder Lesezugriff handelt. >noch eine Frage meinst du vl S.19 weil Device Addressing, ist bei meinem >Datenblatt für den RTC ISL12029 >http://www.intersil.com/data/fn/fn6206.pdf Ja. Bei dem Datenblatt ist es auf S.19. MfG Spess
spess53 schrieb: > Hi > >>Ok Super DANKE, d.h. statt wie im oberen Programm 0x68 brauche ich bei >>mir 0xDE oder? > > Ja. Beachte aber, das im Bit0 angegeben wird, ob es sich um einen > Schreib- oder Lesezugriff handelt. > >>noch eine Frage meinst du vl S.19 weil Device Addressing, ist bei meinem >>Datenblatt für den RTC ISL12029 >>http://www.intersil.com/data/fn/fn6206.pdf > > Ja. Bei dem Datenblatt ist es auf S.19. > > MfG Spess Ok ich danke dir, meinst du das das Datenblatt einen Fehler hat oder wie?, und noch eine klitzekleine Frage, ob vielleicht noch einen kurzen Blick auf das obere Programm werfen kannst, ob ich dieses dann auch für meinen RTC verwenden kann und auch wenn ich I2C verwende, also wenn ich dann 0xDE schreibe statt 0x64. oder brauche ich dafür http://homepage.hispeed.ch/peterfleury/group__pfleury__ic2master.html auf jedenfall danke ich dir wirklich danke
Hi >Ok ich danke dir, meinst du das das Datenblatt einen Fehler hat oder >wie? Nein. Ich hatte wahrscheinlich ein älteres Datenblatt. >und noch eine klitzekleine Frage, ob vielleicht noch einen kurzen >Blick auf das obere Programm werfen kannst, ob ich dieses dann auch für >meinen RTC verwenden kann und auch wenn ich I2C verwende, also wenn ich >dann 0xDE schreibe statt 0x64. Nicht ganz. Beim ISL12029 werden die Register mit 2 Byte adressiert. In dem Programm nur mit einem. Das Wire.send(0x10); scheint auch spezifisch zu sein. Also nur mit einer anderen Deviceadresse ist es nicht getan. >oder brauche ich dafür >http://homepage.hispeed.ch/peterfleury/group__pfle... Ich benutze zwar kein C, aber diese Bibliothek sieht mir, nach kurzem Überfliegen, strukturierter aus. MfG Spess
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.