Forum: Mikrocontroller und Digitale Elektronik AVR Wecker mit Netzwerk


von Dominik M. (dominik_m)


Lesenswert?

Hallo Leute,

ich habe mich hier endlich angemeldet und möchte mein geplantes Projekt 
vorstellen und gleich ein paar Fragen dazu stellen.

Ich habe vor einen Wecker zu basteln (wiedermal) und habe mir dazu schon 
viel in diesem Forum dazu durchgelesen, jedoch sind trotzdem ein paar 
Fragen offen geblieben, die ich vor der Erstellung des Layouts 
beantwortet haben will.

Erstmal zu den Funtkionen:
- Atmega644P
- Nokia Display aus einem alten Handy
- Über ein RTC soll die Uhrzeit möglichst genau implementiert werde
- Über einen ENC28J60 und eine Ethernet Buchse soll eine Verbindung mit 
einem NTP Server hergestellt werden, und die Zeit jeden Tag 
synchronisiert werden.
- Außen und Innentemperatur sollen über zwei DS1307 angezeigt werden 
können
- Der Wecker soll modular aufgebaut sein, sodass danach noch eine 
Erweiterung mit einem VS1011 möglich ist und mp3s abgespielt werden, 
statt eines "Standard Wecker Tons"

Ist das realistisch? Ich habe Erfahrung in Umgang mit uC und habe auch 
schon Zeitsteuerungen gebaut, die dann z.B. Lüfter in einem Terrarium 
ansteuern.

Den uC nehme ich deswegen so groß, da ich noch einiges zur Erweiterung 
vorhabe (ebene mp3s, Lichtsteuerung, Touchscreen,...)

Die Hauptfrage ist, kann ich SMD Teile verwenden? Ist es möglich z.B. 
den uC als SMD mit einem Lötkolben zu löten oder braucht man da schon 
einen Reflow Ofen?

Weiters geht es um die Implementierung des Software NTP Clients, ist das 
möglich? Gibt es da Referenzprojekte?

Sobald ich das Layout habe, werde ich es euch zur Verfügung stellen und 
bitte euch, es dann zu checken.

Lieb Grüße
Dominik

von Hc Z. (mizch)


Lesenswert?

Das mit dem ENC28J60 würde ich mit nochmal überlegen; die Software ist 
alles andere als trivial.  Die gängige Methode, Uhren zu 
synchronisieren, ist DCF77.  Damit hast Du genaue Uhrzeit ohne ein 
Ethernet-Kabel zum Wecker legen zu müssen.

Der Rest Deines Projektes: dann mach mal.  Allerdings würde ich mir 
überlegen, ob Du so viel Funktionen in einen µC packen willst oder nicht 
lieber mehrere Einzeleinheiten bauen willst.  Ein µC kostet nicht viel, 
aber der Aufwand steigt überproportional, wenn Du viele Funktionen in 
einen packst, denn Du stößt früher an dessen Grenzen.

von Dominik M. (dominik_m)


Lesenswert?

Hallo, danke schonmal für die Antwort,

also das mit dem DCF Modul hab ich mir auch schon überlegt, kann ich das 
denn "abschalten"? Es gibt ja lt. Datenblatt einen eigenen Eingang, wo 
ich mit dem uC steuern könnte, ob das Modul aktiv oder inaktiv ist. Wenn 
ich es immer inaktiv habe und nur zum synchronisieren einschalten, wie 
lange dauert es dann, bis ich ein valides Signal bekomme, dass ich dann 
auswerten kann? Oder ist das sofort vorhanden?

Zu den vielen Funktionen, die Erweiterungen möchte ich sowieso mit 
mehreren Platinen und weiteren uCs dann implementieren, aber so sollte 
halt die Hauptplatine ausschauen, und die sollte auch diese Funktionen 
beherrschen.

Ich werde einfach die Ethernet funktionalität einmal weglassen und 
schauen, ob ich die in einer Zusatzplatine dann irgendwie einbaue und ob 
diese dann überhaupt nötig ist.

Liebe Grüße
Dominik

von atmegadennis (Gast)


Lesenswert?

Hallo Dominik,

Das DCF77 Modul kannst du in einen Sleep Modus versetzen, oder Ihm 
einfach die Versorgungsspannung nehmen.

Nach dem Wieder einschalten, dauert es bei gutem Empfang im dümmsten 
Fall 2 Minuten bis du ein vollständiges Telegramm hast.

Du kannst das DCF Modul aber ja auch einfach so lange aktiv lassen, bist 
du im uC entscheidest, das das Telegramm i.O. ist und dann das Modul 
wieder asusschalten.

Gruß

Dennis

von Peter D. (peda)


Lesenswert?

Dominik M. schrieb:
> also das mit dem DCF Modul hab ich mir auch schon überlegt, kann ich das
> denn "abschalten"?

Wozu denn?
Soll der Wecker nur mit Batterie laufen?

Ein RTC-Chip ist auch nicht nötig. Du kannst für Batteriebetrieb direkt 
nen Uhrenquarz am AVR laufen lassen. Bzw. bei Netzbetrieb nimmt man 
einfach den CPU-Quarz für die RTC.


Peter

von Dominik M. (dominik_m)


Lesenswert?

Ja ok, DCF an und abschalten ist wahrscheinlich etwas unnötig, da der 
Wecker eigentlich nur im Netzbetrieb laufen soll, und nur bei 
Stromausfall über eine Batterie versorgt werden soll.

Peter Dannegger schrieb:
> Ein RTC-Chip ist auch nicht nötig. Du kannst für Batteriebetrieb direkt
> nen Uhrenquarz am AVR laufen lassen. Bzw. bei Netzbetrieb nimmt man
> einfach den CPU-Quarz für die RTC.

Du meinst gar keine RTC einsetzen? Was ist dann, wenn der Wecker 2 Tage 
lang nicht synchronisiert wird? Da gibts doch Probleme mit der 
Ganggenauigkeit, weil der Uhrenquarz ja Temperaturwechsel ausgesetzt ist 
usw.? Oder ist das auf zwei, drei Tage nicht kritisch?

Lg
Dominik

von Vlad T. (vlad_tepesch)


Lesenswert?

schau mal im WordClock-Projekt nach.
aus dem Schaltplan und der Software kannst du dir den RTC- und den 
DCF-Krams klauen

von Klaus D. (kolisson)


Lesenswert?

>Du meinst gar keine RTC einsetzen? Was ist dann, wenn der Wecker 2 Tage
>lang nicht synchronisiert wird? Da gibts doch Probleme mit der
>Ganggenauigkeit, weil der Uhrenquarz ja Temperaturwechsel ausgesetzt ist
>usw.?

Auch ein RTC IC benutzt einen Uhrenquartz. Das tut sich von der Genauig
keit nix mit der ATmel Quarz Kombi. Der Vorteil von RTC lieht eher
daran, dass dieser, über ne Knopfzelle gestützt bei Stromausfall
(Batteriewechsel) einfach weiterläuft.

Gruss Klaus

von Dominik M. (dominik_m)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe jetzt den Shaltplan halbwegs fertig. Was mir noch fehlt ist ein 
Display. Es sollte wenn möglich sogar einen Touchscreen haben, den ich 
dann irgendwann auch ansteuere. Problem ist, ich find in Ö und in D 
keine wirklich billigen Displays. Gibt es da wirklich nichts? ledsee.com 
ist recht gut, aber kann man die nicht um den Preis auch irgendwo in 
Deutschland oder Österreich bekommen?

Das Nokia Display das vorher geplant war, habe ich wieder verworfen da 
es zu klein ist und auch keine Touchfunktion hat. Ich möchte den Wecker 
dann um einiges erweitern und vielleicht sogar eine Zimmersteuerung 
bauen, sodass ich von anfang an ein halbwegs vernüftiges Display haben 
will.

Zu guter letzt, könnt ihr noch kurz über den Schaltplan drüberschauen 
und etwas nachkontorllieren ob ich auch keine pull up widerstände oder 
so vergessen haben? Der Display Anschluss ist aufgrund des noch nicht 
gefundenen Displays noch nicht ganz belegt. Ich werde, nachdem ich weiß 
wie ich das Display belegen muss, auch alle offenen Pins auf einen 
Connector rausziehen, damit ich alle Pins des uC zur Verfügung habe.

Danke für eure Hilfe Dominik

von Info (Gast)


Lesenswert?


von Sam .. (sam1994)


Lesenswert?

Also wenn der Wecker sich schon die Zeit über einen NTP holden kann, 
braucht man eigentlich keinen RTC. Selbst wenn die Uhrzeit "nur" einmal 
täglich syncronsisiert wird, sollte das reichen. Und das mit dem 
Temperaturunterschied bei den Quarzen: Ich würde einen Wecker mit 
Ethernet Anschluss nicht raus und wieder rein tragen. Der würde bei mir 
brav auf dem Nachttisch stehen.

Wenn du dir sie Mühe machen willst - bei Pollin gibts Touchscreen unter 
einem Zener. Ob man es schafft sie anzusteuern ist eine andere Frage.

von Hc Z. (mizch)


Lesenswert?

Zwei nicht sehr wesentliche Punkte:

Aref gehört nicht nach Vcc.  Wenn Du den ADC verwendest, über ca. 100n 
mit Masse verbinden.

Den 100k Angstwiderstand am Reset kannst Du auch gleich weglassen.  Der 
interne Pullup ist deutlich kleiner, so dass der externe nicht mehr groß 
beiträgt.

Und ein wesentlicher:

Die Taster sollten gegen Masse schalten, nicht gegen Vcc.  Nur dann 
kannst Du die internen Pullups nehmen.  So wie gezeichnet fehlen 
Pulldowns und es funktioniert nicht.  Du nimmst möglicherweise an, dass 
offene Eingänge fest auf 0 sind.  Das ist nicht der Fall.

von bingo (Gast)


Lesenswert?

> Auch ein RTC IC benutzt einen Uhrenquartz. Das tut sich von der Genauig
> keit nix mit der ATmel Quarz Kombi.

Eine gute RTC hat eine Temperaturkompensation ist ist daher um einige 
Klassen besser als ein Uhrenquarz. Siehe DS3231 von maxim-ic.com

von Hc Z. (mizch)


Lesenswert?

Noch was: 100n an den Quarzanschlüssen der RTC ist doch 'n bisschen 
sehr, sehr üppig.  Falls überhaupt, sollte das sicher deutlich weniger 
sein.  Schau mal im Datenblatt nach.

von Dominik M. (dominik_m)


Lesenswert?

@Samuel also ich dachte mir nur ich lass die RTC drinnen, da ich ihn 
erstens eh zuhause rumliegen hab und zweitens den uC damit entlaste. 
Sollte er wirklich nicht nötig sein, kann ich ihn auch wieder rausgeben.

@Hc Zimmerer, danke ich werde die Fehler ausbessern, das mit den Tastern 
war anscheinend ein Flüchtigkeitsfehler. Ich glaub es sollten auch keine 
100n sondern 22pF Kondensatoren sein, werde ich auch ausbessern.

Danke
Dominik

von Dominik M. (dominik_m)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich habe das File jetzt ausgebessert. Den RTC habe ich drinnen behalten. 
Ich glaube über die Genauigkeit kann man streiten, aber schaden tut er 
auf keinen Fall.

Ich habe mir jetzt auch das Display das beim dpac verwendet wird 
bestellt, mit Serial Interface und deswegen nur noch nen 4 Port Stecker.

Fällt euch sonst noch was auf?

Lg
Dominik

von Ulrich P. (uprinz)


Lesenswert?

Hi!

Also das was Du da machst, ist das, was man mit der Ethernut 1.3 und dem 
Nut/OS machen kann. Im Grunde ein AVR mit angesteckter ISA 
Netzwerkkarte. Den TCP/IP Stack bringt das Nut/OS mit, ebenso die 
Libraries um einen VLSI Decoder anzusteuern. www.ethernut.de und 
www.egnite.de
Dateisystem für eine SD-Card bekommst Du auch gleich mitgeliefert u.v.m.

Gruß, Ulrich

von slater (Gast)


Lesenswert?

also wenn du ein touchscreen-display willst, kann ich dir folgendes 
emfehlen:

http://www.watterott.com/de/MI0283QT-2-Adapter

Es ist einfach über spi anzusteuern und kostet auch nicht die welt.
Bilbliotheken für's display sind auf der website auch vorhanden. also 
auch so gut wie keine programmier-arbeit nötig.

von frankman (Gast)


Lesenswert?

So, ich hab mir deinen Schaltplan mal angesehen:

1. Summer: Wenn Du einen Piezo-summer einbaust, mußt du vorsichtig sein. 
Dummerweise liefert der Piezo bei Erschütterung Spannungsspitzen, ich 
würde den Summer mit einem kleinen Transistor oder MOS-FET ansteuern, 
mit einer Diode auf VCC klemmen und ggv. noch einen extra 
Stütz-Kondensator spendieren.

2.Warum verwendest Du keine Temperatur-Sensoren mit I²C-Bus. Du hast 
doch den Bus schon für die RTC verwendet. So sparst Du Dir noch das 
extra Protokoll für die Temperatur-Sensoren und hast alles an einem Bus 
hängen. Wenn der dann mal richtig läuft, kannst du ohne weiteren Aufwand 
auch gleich die Temperaturfühler mit auslesen... z.B LM75 oder ähnlich.

3. Auch die RTC soll einen Entkoppelkondensator bekommen, die 3 Cent 
sind doch noch drin, oder? Genrell: Jedes IC entkoppeln! Ich würde auch 
für die AVCC vom Prozessor einen eigenen Koppel-C einsetzen.

4. Ich persönlich würde mir das FDTI-RS232-Kabel kaufen, dann kannst Du 
Dir den ganzen Teil mit dem RS232-Pegel-Konverter sparen. Du brauchst 
nur eine Stiftleiste, 6-Polig. Dort wird RXD TXD und GND vom yC direkt 
angeschlossen. Das Kabel kann dann für andere Projekte ebenfalls 
eingesetzt werden und funktioniert gleich.

5. Display: Das funktioniert so auf keinen Fall. Erstes hast du TXD vom 
Pegelwandler parallel zur TXD-Leitung vom Display angeschlossen. Wenn 
jetzt der Pegelwandler Low ist und das Display High, raucht es. Oder 
umgekehrt. Abhilfe: hier jeweils einen Widerstand 4k7 o.ä davor setzen, 
oder ein ODER-Gatter. Zweitens haben die Displays aus den Handy doch 
meistens eine SPI-Schnittstelle, oder?

von Dominik M. (dominik_m)


Angehängte Dateien:

Lesenswert?

Hallo,

Ulrich, ich habe Ethernut auch schon gesehen, mir gehts aber eher um den 
Lerneffekt, ich will das wirklich von Grund auf entwickeln und bauen, 
sodass ich mich dann an größere Projekte wagen kann. Das soll einfach 
einmal ein Einstieg sein. Trotzdem danke für den Hinweis, ich find das 
Teil eigentlich recht genial :)

@frankman sehr vielen Dank für deinen Input, ich habe jetzt alles 
umgesetzt bis auf den 6 poligen Port für RS232 wie meinst du jetzt, soll 
ich das machen, das auf einer Leitung das Display hängt und ich auf der 
anderen Leitung mit dem Computer kommunizieren kann? Einfach 2 
Widerstände auf jede Leitung?

Ich habe mir jetzt das Display von Sparkfun gekauft, mit RS232 Adapter, 
nix mehr mit Handy Display :)

Sehr vielen Danke für eure Hilfe
Dominik

von Dominik M. (dominik_m)


Lesenswert?

Wenn ich die RXD nicht mehr zur TXD Leitung des Displays laufen lassen 
würde, würde es dann funktionieren? Also die TXD Leitung des uC geht auf 
die RX von Pegelwandler und auf die vom Display. Und die RXD Leitung des 
uCs geht nur auf den TXD vom Pegelwandler?

Müsste dann doch eigentlich funktionieren, oder?

von Dominik M. (dominik_m)


Angehängte Dateien:

Lesenswert?

Hallo,

endlich habe ich es geschafft. Das ist jetzt hoffentlich die letzte 
Version des Schaltplans, fehlt nur noch das Board, das wahrscheinlich 
doppelseitig werden wird, und dann ab zu einer Firma die das billig 
macht.

Könnt ihr nochmal kurz da drüber schauen, und noch eventuelle Fehler 
entdecken?

Danke,
Dominik

von Hc Z. (mizch)


Lesenswert?

RxD geht an Leitung mit dem Namen TX, TxD an RX.  Sind zwar nur 
Bezeichnungen, kommt mir aber seltsam vor.

Die I2C-Pullups sind mit 100k etwas hoch.  Üblich sind Werte von 10k 
oder kleiner, abhängig von der maximalen Busgeschwindigkeit, die Deine 
Devices haben.

von Winfried (Gast)


Lesenswert?

Transistor Q1 ohne Basiswiderstand kann funktionieren, wenn du den 
internen Pullup nutzt und nie auf High schaltest, ist aber gefährlich. 
Der Summer (P12) braucht die Diode parallel und nicht in Reihe.

von Peter D. (peda)


Lesenswert?

frankman schrieb:
> 2.Warum verwendest Du keine Temperatur-Sensoren mit I²C-Bus.

Weil man ein SO-8 nur sehr blöd als Sensor anschließen und verkapseln 
kann.

Mit 1-wire Sensoren im  TO-92 geht das deutlich einfacher. Man kann die 
sogar fertig im Stahlrohr vergossen mit Anschlußkabel bei Conrad kaufen.


Peter

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.