Kurze Fragen: 1. Braucht man an einem I2C-Bus, an dem ein Mega8L, ein EEPROM AT24C512 und eine RTC DS1307 hängen Abschlusswiderstände, wie an jedem normalen Bus? (Platinengröße: 3*4cm, Leitungslängen dementsprechend kurz) 2. Welchen Uhrenquarz würdet ihr empfehlen, wenn das Ding ziemlich genau sein soll: Sagen wir +/- 2 Minuten pro Jahr bei schwankenden Temperaturen zw -20 und +50°C. (Außeneinsatz) Gibt es eigentlich größere I2C EEPROMS als das 512KB = 64KByte? Soll für einen Datenlogger sein.
Karl-alfred Römer schrieb: > 1. Braucht man an einem I2C-Bus, an dem ein Mega8L, ein EEPROM AT24C512 > und eine RTC DS1307 hängen Abschlusswiderstände, wie an jedem normalen > Bus? (Platinengröße: 3*4cm, Leitungslängen dementsprechend kurz) Man braucht die üblichen Pullups, aber keinen Abschluss. > 2. Welchen Uhrenquarz würdet ihr empfehlen, wenn das Ding ziemlich genau > sein soll: DCF77-Empfänger statt RTC. > Gibt es eigentlich größere I2C EEPROMS als das 512KB = 64KByte? Soll > für einen Datenlogger sein. Dataflash per SPI, bis mindestens 64Mbit.
DFF77 wäre technisch optimal, aber platzmäßig problematisch, weil die große Antenne einfach nicht mehr ins Gehäuse hinein passt. Deshalb wäre eine RTC hier ausnahmsweise geeigneter. 64MB Dataflash wäre schön, wenn da nicht das Problem wäre, dass Daten erst mal zwischengespeichert werden müssen, bevor man dann eine größere Datenmenge aufs Flash schreiben kann. Ich programmiere in Assembler, wobei ich auch hier eher Anfänger bin und versuche jedem vermeidbaren Problem aus dem Wege zu gehen. Dennoch bin ich jetzt hin und hergerissen. 8) Außerdem werden die Pins am Atmega knapp, wenn ich serielle Schnittstelle, evtl Programmierschnittstelle, I2C oder die Schnittstelle zum DCF77 und SPI gleichzeitig benutzen will.
Hallo, Karl-alfred Römer schrieb: > 64MB Dataflash wäre schön, wenn da nicht das Problem wäre, dass > Daten erst mal zwischengespeichert werden müssen, bevor man > dann eine größere Datenmenge aufs Flash schreiben kann. > Ich programmiere in Assembler, wobei ich auch hier eher > Anfänger bin und versuche jedem vermeidbaren Problem aus > dem Wege zu gehen. > Dennoch bin ich jetzt hin und hergerissen. 8) Meine Lieblinge sind u.a. AT45DB321D, 32MBit, also 4MByte. Die haben intern 2 Ram-Buffer in Pagegröße, da kann man in Ruhe alles reinschreiben, dann sagt man ihm, daß er einen Buffer ins Flash schieben soll und nimmt derweil den anderen. > Außerdem werden die Pins am Atmega knapp, wenn ich serielle > Schnittstelle, evtl Programmierschnittstelle, I2C oder die > Schnittstelle zum DCF77 und SPI gleichzeitig benutzen will. SPI und ISP leigen bei den kleinen AVR auf den selben Pins, die stören sich auch nicht, wenn ein Dataflash dranhängt. Man muß nur daran denken, dem /CS einen externen PullUp zu verpassen, dann ist der auch still, wenn programmiert wird. Gruß aus Berlin Michael
Karl-alfred Römer schrieb: > 64MB Dataflash wäre schön, wenn da nicht das Problem wäre, dass > Daten erst mal zwischengespeichert werden müssen, bevor man > dann eine größere Datenmenge aufs Flash schreiben kann. Dafür hat das Dataflash 2 interne RAM-Zwischenspeicher, die inkrementell beschreibbar sind. Ein RAM-Problem entsteht so nicht, ein Zeitproblem auch nicht. Bleibt nur das Problem des Datenverlustes von ebd. Zwischenspeicher bei Stromausfall, und das kann man mit Pufferkondensator und rechtzeitiger Warnung angehen, wenn überhaupt relevant. > Außerdem werden die Pins am Atmega knapp, wenn ich serielle > Schnittstelle, evtl Programmierschnittstelle, I2C oder die > Schnittstelle zum DCF77 und SPI gleichzeitig benutzen will. Die Programmierschnittstelle sitzt bei den meisten AVRs auf den gleichen Pins wie SPI und kollidert damit auch nicht. DCF77 ist 1 Pin.
Falls es doch ein EEPROM sein soll, gibt es den 24AA1025 mit 1024Kbit. grüßle HN-ES
Wenn das so ist, dann werde ich mir EEPROM wohl aus dem Kopf schlagen und statt dessen DataFlash benutzen. DCF77-Signale müssen doch glaube ich im Controller in Datum/Zeit-Signale umgesetzt werden. Damit habe ich mich noch nicht beschäftigt. Kann aber auch nicht sooo schwer sein, denke (hoffe) ich. Das Problem mit der riesigen Antenne bleibt aber. Z.B. ELV Artikel-Nr.: 68-352-62. Die Antenne hat eine Länge von ca 5cm. Es scheint aber auch ohne diese riesige Antenne zu gehen. Meine Aldi-Funk-ARMBAND-Uhr z.B. hat keinen solchen Klotz und funktioniert komischerweise trotzdem. Vielleicht muss ich die mal schlachten, um zu sehen, wie die die Antenne da reingequetscht haben. ;)
Karl-alfred Römer schrieb: > DCF77-Signale müssen doch glaube ich im Controller in Datum/Zeit-Signale > umgesetzt werden. Ja und? Das ist kein Aufwand und du bist dabei auch nicht der Erste. Suchen bringt Code, allerdings wahrscheinlich in C. Du solltest nur nicht den Fehler vieler machen, die das DCF77-Signal als Interrupt oder Timer-Trigger verwenden, sondern das Signal einfach zigmal pro Sekunde in einem meist ohnehin schon laufenden zyklischen Timer-Interrupt abtasten.
@Falk >AVR - Die genaue Sekunde / RTC So mache ich es derzeitig. Funktioniert prima. Allerdingsbenutze ich den internen Oszillator und der schwankt halt stark mit der Temperatur. Das größere Problem ist, dass ich den Powerdown Modus nicht nutzen kann, weil der nicht auf Timerereignisse reagiert. So geht derzeit nur der Idle-Modus. Das ist sehr schade, denn meine Schaltung lebt von einer CR2032-Knopfzelle. @A.K. >Du solltest nur nicht den Fehler vieler machen, die das DCF77-Signal >als Interrupt oder Timer-Trigger verwenden, sondern das Signal einfach >zigmal pro Sekunde in einem meist ohnehin schon laufenden zyklischen >Timer-Interrupt abtasten. Auch das würde den Powerdown-Modus verunmöglichen. (Timer weckt ihn nicht mehr auf) Ich würde es glaube ich so machen, dass mein Programm von einem INT0 geweckt wird und dann solange in die Haupt- schleife geht, um die Signale zu pollen, bis Zeit und Datum komplett eingelesen sind. Das kann dann ins Dataflash oder EEPROM geschrieben werden. Ich versuche es erst mal mit der DS1307 mit Uhrenquarz oder Oszillator und hoffe, dass ich nicht allzu viele durchprobieren muss, bis ich einen genauen und vor allem temperaturstabilen finde.
Hallo, sowas wie :MAXIM DS3234 ala 3.5 ppm http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=DS3234SN%23-ND
Karl-alfred Römer schrieb:
> 2. Welchen Uhrenquarz würdet ihr empfehlen...
Hallo,
garkeinen. Ich würde bei Epson usw. nach einer RTC mit eingebautem Quarz
suchen und die Spezifikation prüfen - da habe ich Angaben zur
Temperaturabhängigkeit und es ist Sache des Herstellers, dafür zu
sorgen, dass die eingehalten werden.
Bei einem eigenen Quarz müsste ich die ganze Schaltung daraufhin
durchrechnen und auch prüfen, das ist bei kleinen Stückzahlen garnicht
drin und eine Klimakammer kostet auch ganz ordentlich.
Findet sich nichts ausreichend stabiles, könnte man einen RTC-Chip mit
einem ultrastabilen TCXO-Takt versorgen. Es gibt auch schnuckelig kleine
Rubidium-Uhren.
Gruss Reinhard
Karl-alfred Römer schrieb: > der Temperatur. Das größere Problem ist, dass ich den Powerdown > Modus nicht nutzen kann, weil der nicht auf Timerereignisse > reagiert. Auf den Watchdog hört er schon. Mindestens bei neueren AVRs ist der auch als Interrupt zu gebrauchen. Genau ist der allerdings nicht, als Uhr taugt er nicht, nur als Wecksignal. Und wenn du die RTC in den AVR einbaust, mit 32KHz asynchron, dann weckt dieser Timer ihn alle Sekunde oder alle paar Sekunden aus dem Power-Save Modus.
Ich würde sowas wie die von Horst Hahn empfohle RTC nehmen. Maxim hätte auch einen separaten temperaturkomp. 32kHz Taktgeber im Angebot. Den könnte man mit beliebigen RTCs kombinieren.
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.