Forum: Mikrocontroller und Digitale Elektronik Welcher AVR? mega8, mega168?


von Christine R. (Gast)


Lesenswert?

Hallo!

Ich möchte eine Digital Uhr bauen mit DCF77 Empfang, Wecker, Timer etc. 
Zusätzlich soll die Innen/Außentemperatur, Luftdruck, Luftfechtigkeit 
gemessen werden, eine kleine Wetterstation eben. Die Messungen der 
Außensensoren sollen dann über Funk zur Basisstaion übertragen werden. 
Für das Außenboard wird auch ein Controller nötig sein. Die Aufgabe 
schein ja nicht so schwierig, Analoge oder Digitale Sensor-Werte 
einlesen, in ein Telegramm Packen und über ein Funkmodul wegsenden. 
Möchte nicht unnötig einen zb. 40Pin Controller verweden.

Also welchen AVR-Controller soll ich verweden? ATmega8 oder den 
ATmega168?

Ich habe mit 8051ern angefangen, und zwangsweise auch verwenden müßen, 
davon hab ich genug.
Habe vor auch die AVRs auch weiter für andere Sachen zu verweden, also 
ich möchte mich daher nicht an einen Typ gewöhnen der dann für andere 
Sachen weniger geeignet ist.

Hoffe ihr könnt mir da helfen....

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Christine R. wrote:
> Ich habe mit 8051ern angefangen, und zwangsweise auch verwenden müßen,
> davon hab ich genug.

..ein Leidensgenosse ;-)


> Also welchen AVR-Controller soll ich verweden? ATmega8 oder den
> ATmega168?

Wenn, würde ich eher den ATmega88 als den ATmege8 nehmen. Sind eh fast 
pinkompatibel (beim 88 kann man XTAL1 und XTAL2 als Port nehmen wenn 
nicht gebraucht).

Vom ATmega88 zum ATmega168 wirst Du kaum nen Unterschied merken (werden 
auch im gleichen Datenblatt behandelt), 168 hat eben ein bissl mehr 
Speicher. Mit avr-gcc wirst keinen Unterschied merken, und mit Assembler 
muss man eben beachten, dass der Flash grösser als 8k ist, und daher zB 
rjmp/rcall nicht immer gehen (sind auf 8k begrenzt).

Hab momentan nen recht komplexes Uhr-Projekt und da wird der ATmega8 
schon was eng, weil man teilweise noch Funktionen zum logging reinbaut, 
um sich zB Signale per serieller Kommunikation aufm PC anzuschauen.

von Christine R. (Gast)


Lesenswert?

Werd dann wohl einen ATmega88 oder ATmega168 nehmen. Ist die doppelte 
Flashgröße der einzige unterschied zwischen beiden.


 Ich habe vor ein DCF77 Modul zu verwenden doch wenn kein Empfang da ist 
soll die Uhr mit einem Taktgeber halbwegs genau weiterlaufen. Habe 
früher mal eine Uhr mit einem Oszillator programmiert (auf einem C167 
mit externem Quarz). Doch trotz Quarz ging die Uhr dann Pro Tag ca 4-6s 
falsch. Hab versucht dies durch ändern der Timer-Reloads zu kompensieren 
doch es wollte nicht so recht.
Von Maxim gibts ja so einen Komopensierten Oszillator, der mit 32768kHz 
läuft, doch ich brauch für andere Sachen eine höhere Taktfrequenz.
Hat jemand Vorschläge?

von Michael U. (amiga)


Lesenswert?

Hallo,

4-6s wäre ka ok. Einen der Kondensatoren durch einen Trimmer 10/40pF 
ersetzen und in mühsamer Kleinarbeit azf Sollfrequenz abgleichen.

Damit sollten bei üblichen Quarzen und üblicher Raumtemperatur weniger 
als 1s/Tag machbar sein.
Ansonsten muß DCF77 eben wenigstens 1-2 mal am Tag korrigieren können.

Mir fällt im Moment keine Langzeitanwendung ein, wo es wirklich auf die 
Sekunde genau sein müßte.

Gruß aus Berlin
Michael

von spess53 (Gast)


Lesenswert?

Hi

Der ATMega88/168 kann nur einen Quarzoszillator bedienen. Mit einem 
32kHz Quarz läuft er sehr langsam. Mit einem 4.096MHz Quarz und einem 
16Bit-Timer lässt sich ein relativ genauer Sekundentakt erzeugen.

MfG Spess

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Christine R. wrote:
> Werd dann wohl einen ATmega88 oder ATmega168 nehmen. Ist die doppelte
> Flashgröße der einzige unterschied zwischen beiden.

Nein, sie unterscheiden sich in der Device Signature und je nach 
Revision in den Errata. Da die Wahl bereits auf einen ATmega*8 gefallen 
ist, lohnt sich ein Blick ins Datenblatt, wird früher oder später eh 
anstehen.

> Ich habe vor ein DCF77 Modul zu verwenden doch wenn kein Empfang da ist
> soll die Uhr mit einem Taktgeber halbwegs genau weiterlaufen. Habe
> früher mal eine Uhr mit einem Oszillator programmiert (auf einem C167
> mit externem Quarz). Doch trotz Quarz ging die Uhr dann Pro Tag ca 4-6s
> falsch.

Das ist innerhalb der Quarztoleranz, evtl bist Du mit einem 
temperaturkompensierten Quarzsozillator besser bedient als mit einem 
Quarz; ob das Geld und der Stromverbrauch lohnen ist Geschmackssache -- 
zumal die Uhr am DCF hängt.

Daher würde ich eher mal recherchieren, wie man das Optimum aus dem 
DCF-Signal bekommt und Störungen vermeidet.

Beitrag "DCF Auswerte Konzept"
Beitrag "Störanfälliger DCF-Empfang"
http://de.wikipedia.org/wiki/Quarzoszillator

Als Taktquelle gehen dann
-- MHz-Quarz
-- Quarzoszillator
-- interner RC-Oszillator und Röhrchen (32768 Hz) Röhrchen haben 
teilweise bessere Toleranzen wegen anderer Resonanz
-- Uhr wird asynchron über Timer2 und extern zugeführtes Signal (zB 1Hz, 
100Hz getaktet)
-- nicht schlecht ist auch das 50Hz Netz. Die Genauigkeit pro Tag ist 
nicht so berauschend, kann dann man einige Sekunden falsch gehen die 
Uhr, aber die Zeit wird irgendwann wieder aufgeholt, es sind also keine 
Fehler die sich aufsummieren.

von Fralla (Gast)


Lesenswert?

Den Timer extern takten, daran hab ich nicht gedacht. Was spricht 
dagegen einen Timer mit diesem tempkompensierten 32768Hz oszillator von 
maxim (DS32KHZ) zu takten?

von Christine R. (Gast)


Lesenswert?

Dieser DS32Khz ist nicht leicht zu bekommen, wie ich mal erfahren habe. 
Bin jetzt ziemlich unschlüssig. Hätte gerne eine genau Uhr die auch ohne 
DFC77 auskommen könnte, ist dann ein besseres Gefühl...

von nixversteh (Gast)


Lesenswert?

alles schon mal dagewesen, siehe
Beitrag "Die genaue Sekunde / RTC"

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
Noch kein Account? Hier anmelden.