Forum: Mikrocontroller und Digitale Elektronik Netzwerk Steckdose + Anhand welcher Daten wähle ich einen Quarz aus? + weiter Fragen (Bootloader)


von Roter R. (roter_r)


Lesenswert?

Liebe Freunde der elektronischen Basteleien und semi- bis 
vollprofessionelle Mikrocontrollernutzer/-Programmierer,

vor ca. 6 Jahren habe ich mir über myAVR einen Einsteigerbausatz 
inklusive ISP erstanden.
Nach ersten Gehversuchen in Assembler hat diese Board lange Zeit 
unbenutzt sein Dasein im Schrank gefristet.

Nun habe ich zum neu begonnenen Studium dieses Kleinod wieder ans 
Tageslicht befördet mit dem Wunsch ein erstes Projekt auf die Beine zu 
stellen.

Mein Ziel: 4 Steckdosen mittels Relays schalten. Das Ganze über Ethernet 
+ Zeitsteuerung.

Meine Hardware:
 - Atmega8 mit externem Baudratenquartz (3.6... MHz)
 - 4-fach Relay für 230V/10A
 - enc28j60

Da ich Anfänger bin habe ich auch dort angefangen: am Anfang.

 - avdude ist mit Hilfe des hiesigen Makefiles eingestellt.
 - Led blinken und auf Knopfdruck togglen funktioniert. (Einfaches 
Entprell Makro auch von hier)
 - UART funktionert
 - Das LCD Addon für anfängliches Debuggen läuft
 - Relay über char via UART togglen ok aber noch unzuverlässig
 - Ich bin kein Idiot, also schalte ich zunächst nur die Relays bevor 
ich mit Hochstrom arbeite. (Risikobewusstsein mehr als vorhanden ;)

Der nächste Schritt ist wohl der Bootloader.
Da ich ausschließlich über Linux arbeite muss ich meinen ISP jedes Mal 
resetten um zurück in den Programmiermodus zu gelangen. (UART-USB-Bridge 
über Software einschalten funktioniert)

Der Bootloader soll mir den Schritt des Umschaltens ersparen und da ich 
gerne Firmware updates über Ethernet fahren möchte ist dieser eh 
angebracht.

Beim Bootloader bin ich jetzt über meinen ersten realen Stolperstein 
gefallen: Den Quartz.

Nach eingängiger Suche im Forum, auf den Seiten mit den Erklärungen und 
googlen in Deutsch und Englisch vermisse ich einen kleinen Artikel:

Nach welchen Daten ermittle ich, welche Frequenz mein Quartz haben soll?

Für UART funktioniert bisher alles super mit dem Baudratenquarz.
Aber reichen die 3,* Mhz für SPI+Ethernet?

Gibt es dafür eine Faustformel, wie schnell der Quarz sein sollte?

Ich hätte da, 8Mhz und 16Mhz zur Auswahl. Sicherlich wird nach einigem 
Suchen mein noch ungeschultes Auge die richtigen Kapazitäten ermittel.
Aber kann ich da bei den 22pF bleiben und nur den Quarz tauschen?

Dann meine "blutiger Anfänger" Frage schlechthin:
Wird der verwendete Oszillator (intern, extern) tatsächlich nur über die 
Fuses eingestellt?
Kann ich für einen Arduinobootloader der für die Verwendung einen 
internen Takt von 8Mhz vorsieht einfach einen externen Quarz von 8Mhz 
nutzen?

Soweit erstmal zur Flut meiner Fragen.

Anbei sei noch gesagt, dass ich dieses Forum und die Seite generell sehr 
schätze. Gerade aufgrund der Vielzahl hilfreicher Informationen, derer 
ich mich in den letzten Tagen zu Hauf bedient habe.

Mit Gruß

Sebastian

von Pepe (Gast)


Lesenswert?

Hallo Roter Rabauke.
Vorweg: Eigentlich würde ich Dir - auf Grund Deiner Fragestellung - dazu 
raten erst mal mit was einfacherem anzufangen. Und vielleicht dieses 
Projekt erst mit mehr Erfahrung anzupacken. 230V sind mit Vorsicht zu 
behandeln.

Einfach mal einige Antworten:
- UART: Der interne Schwingkreis ist eigentlich zu ungenau dafür. 
Benutze einen Quarz. Könnten deine Übertragungsprobleme sein.
- 8Mhz sind 8MHz. Egal ob intern oder externer Quarz.
- Baudrate und Quarz: Da gibt es im Datenblatt zum ATmega8 im Kapitel 
USART/UART einige Tabellen zum Thema Quarzfreq. und Vorteiler für die 
UART. Da kannst Du auch die Abweichung zwischen der theoretischen 
Baudrate und der tatsächlichen Baudrate bei deinem Quarz raus lesen. Je 
kleiner dieser Abweichung um so besser.
- Cs am Oszillator: Tausche nur den Quarz, sollte funktionieren.
- Intern/extern: Beim Atmega8 nur über die Fuses einzustellen.

Zum Ethernet: Hast Du Dir schon Gedanken gemacht? Der ATmega8 ist da 
nämlich eigentlich schon etwas klein dafür. Der hat nur 1KB Ram. Das ist 
nicht mal ein komplettes IP-Paket (1,5 KB).

von Joachim B. (jar)


Lesenswert?

für das was du vorhast empfehle ich den Bausatz NETIO von Pollin
http://www.pollin.de/shop/dt/MTQ5OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_AVR_NET_IO.html

der wird normal mit at mega 32 ausgeliefert und ich habe den durch einen 
pinkompatiblen m1284p ersetzt, 16kB RAM und 128kB flash und lasse den 
auf 20MHz laufen, die 7805 und den LM317 habe ich durch RECOM R785 1A 
und RECOM R7833 0,5A erstzt, spart die Kühlkörper und ist sparsamer weil 
weniger Verluste. Für den 3,3V Zweig muss ein wenig umgestrickt werden 
geht aber einfach, die Pins liegen halt anders.

programmiert wird er über ISP aus dem Atmel Studio, spart den 
Bootloader.
Erweiterungen wie Relais Platinen oder LCD gibt es auch fertig.

Auch ein Webinterface für Ports setzen und rücksetzen.

um nicht an 230V zu arbeiten bieten sich doch Funksteckdosensets an die 
per 433 MHz geschaltet werden.

Ich hatte billige Zwischenstecker den Schalter entfernt und per 
Knopflochchirurgie S202S02 eingebaut, die trennen galvanisch und 
brauchen nur IR LED Strom per Port mit Vorwiderstand, finde das aber 
unpraktisch weil nicht Verpolungssicher, dann mit Brücke und KST 
erweitert wird es langsam eng, ergo scheinen mir die Funkschalter, 
typisch 3 Stück mit Handsender für 16€ zu haben sicherer auch wenn 
Ruheverbrauch anfällt, oder Spielkinder dich ärgern könnten:
http://www.yourepeat.com/watch/?v=UdsQKiIZjMY

PS, mein Nachbar hat den selben Satz Funksteckdosen, den Code 
unverändert und ich kann sein Radio und Licht ein und ausschalten.

: Bearbeitet durch User
von Roter R. (roter_r)


Lesenswert?

Hi Pepe,

vielen Dank für deine Antwort.

Ich hab ein paar kleine Projekte gefunden, die einen Atmega8 verwenden.
Allerdings wird da auch schon darauf hingewiesen, dass der meiste Teil 
zumindest vom Flashspeicher verwendet wird.

Ich denke ich werde da schon recht schnell an die Grenze stoßen. Auch 
was den Ram betrifft. Da ich allerdings die Integrierung von Ethernet 
eher am Ende sehe, werde ich dann noch auf einen größeren Chip 
(Atmega32?) umschwenken können.

Möglicherweise, je nach Anforderung teile ich das Ganze auch in 2 Teile:
1x Ethernet UART Bridge und 1x Relaykarte.

Die Tabellen für die Quarzfrequenz bezüglich Baudrate habe ich mir 
bereits angesehen. Ich denke die Abweichung für 8 resp. 16 Mhz sind 
akzeptabel.

Vielen Dank nochmal für die Infos bezüglich Quartz/Oszillator.

Hast du Empfehlungen nach welchen Kriterien die Frequenz auszuwählen 
ist?
Für UART leuchtet mir das ein. Nur bei SPI hab ich z.B. keinen blassen 
Schimmer.

Zu der Sache mit den 230V:
Bevor ich wirklich 230V schalte, finde ich, sollte der Rest der 
Schaltung erstmal zuverlässig funktionieren. Dann werde ich erstmal 
kleine Sachen schalten. (Kein Hochstrom)
Bis dahin habe ich dann auch Zeit in die Theorie des Stromes investiert.
Eventuell sogar befreundete Studenten der Elektrotechnik oder 
Elektroniker ausgefragt.
Ich hab schon öfter was verkabelt auch mit 230V und weiß, dass damit 
nicht zu scherzen ist. Schließlich will ich weder als Brikett enden noch 
meine Wohnung in Brand stecken. Da sollten schon Sicherungen und 
ordentliche Verbindungen her. Vernüftige Isolierung inklusive (Der Kabel 
und der Schaltkreise).

von Pepe (Gast)


Lesenswert?

Ich gehe mal davon aus, dass Du den enc28j60 per SPI anschließen willst.
Laut Datenblatt kann der bis 20MHz SPI Takt vertragen. Also kein 
Problem. Die Grenze kannst Du ja eh nicht erreichen. SPI ist eigentlich 
nur eine Taktleitung, eine Ausgangs- und Eingangsleitung eines 
Schieberegisters. D.h. langsamer kannst Du eigentlich immer und eine 
genaue Frequenz brauchst Du auch nicht einhalten. Setze den SPI Takt 
aber nicht zu hoch ( außer Du hast ein Oszi zum Prüfen des Signals), 
weil Du saubere Signale brauchst. "Zipfelmützen" sind schlecht und 
ergeben massig Probleme.

von Roter R. (roter_r)


Lesenswert?

Hallo Joachim,

danke für den Tipp mit dem Bausatz. Das sieht sehr gut aus.

Irgendwie habe ich mir diese Bastelei so in den Kopf gesetzt.
Auch wenn ich mich grundsätzlich gerne eines Besseren belehren lassen 
habe ich bereits alle Komponenten für mein Projekt. (Außer dem Atmega32, 
der wirklich sehr gut geeignet scheint.)

Über Funk habe ich auch schon nachgedacht. Allerdings mehr auf der Ebene 
von Bluetooth. Den ISP möchte ich schon grundlegend durch den Bootloader 
ersetzen. Einfach um vom PC aus über Ethernet zu Updaten, auch damit das 
Gehäuse keinen Port zum Programmieren braucht.

Als Sahnehäubchen gibt es anschließend ein Kernelmodul für x86_64 und 
ARM,
sowie eine kleine Android-APP für den Komfort der "Hausautomatisierung".

Tatsächlicherweise hab ich solche Steckdosen mit Fernbedienung, die ich 
irgendwie nie benutze. Allerdings dachte ich schon an eine Art Modul für 
die WG meiner Eltern, die 3 verschiedene Fernbedienungen nutzen und das 
könnte eleganter vom Handy oder Tablet aus funktionieren. Oder von einer 
einzigen Fernbedienung. (Pech nur, dass die Hälfte iOS ist)

Aber nun gut, bis dahin ist der Weg schon noch etwas länger. ;)

von Roter R. (roter_r)


Lesenswert?

Das klingt sehr gut. @ Pepe. Danke.
Dann könnte ich ja bei meinem 3.* Baudratenquartz bleiben.

von Boah... (Gast)


Lesenswert?

Wenn ich alleine das Wort Hochstrom lese sträuben sich mir die 
Nackenhaare. Ich empfinde Hochstrom oder auch Starkstrom erst ab >1kA...

von Boah... (Gast)


Lesenswert?

Und auch im Spannungsbereich (ich denke mal dass der TO das meint) sind 
wir noch locker im Bereich der Niederspannung.
Scheiss Hobby-Elektriker (nicht Elektroniker)

von Joachim B. (jar)


Lesenswert?

Roter Rabauke schrieb:
> habe ich bereits alle Komponenten für mein Projekt. (Außer dem Atmega32,
> der wirklich sehr gut geeignet scheint.)

glaub mir der m1284p ist besser, mehr RAM mehr flash, der hängt bei mir 
dauerhaft seit 5 Jahren neben der Fritzbox und überwacht, die geklauten 
12V der Fritzbox, seine 5V und 3,3V sowie 7 DS 18B20 über die Wohnung 
verteilt und zeigt es auf der Webseite.

von Roter R. (roter_r)


Lesenswert?

Verzeih mir bitte meine amateurhafte Ausdrucksweise.

Jedes mal, wenn ich von Hochstrom sprach so ist an dieser Stelle 230V 
einzusetzen. Das tut niemandem weg (nur denen die es anfassen)

Selbstverständlich meinte ich Spannung und nicht Strom. Mein Fehler.

Was ist ein TO?

Ich kenne nur zu gut die Frustration, wenn jemand Begriffe durcheinander 
wirft. Gerade weil ich 10 Jahre als Optiker im Verkauf tätig war.
Allerdings habe ich das Boah und die Flüche aus Höflichkeit stets für 
mich behalten. Dennoch danke für den Hinweis und die für das Internet 
recht höfliche Korrektur.

von Roter R. (roter_r)


Lesenswert?

Danke für den Hinweis Joachim.

Ich werde mich mit dem Datenblatt zeitnah beschäftigen.

Was sind DS und 18B20?

@m1284P -> Der ist ja wirklich extrem gut ausgerüstet.

: Bearbeitet durch User
von Tom (Gast)


Lesenswert?

Pepe schrieb:
> Da kannst Du auch die Abweichung zwischen der theoretischen
> Baudrate und der tatsächlichen Baudrate bei deinem Quarz raus lesen. Je
> kleiner dieser Abweichung um so besser.

Für den UART ist es völlig egal, ob der Fehler 1ppm oder 1 Promille 
beträgt. Bei hoher Leitungsqualität geht die Übertragung erst schief, 
wenn sich der Fehler innerhalb eines Bytes, also meist über 10 Symbole, 
über mehr als 33% der Symboldauer aufzusummieren, was etwa einen 
Taktfehler von 3,3% bedeutet.

Nähere hier
http://www.maximintegrated.com/en/app-notes/index.mvp/id/2141

von Pepe (Gast)


Lesenswert?

@Tom
Geb Dir schon recht, dass eine Abweichung im ppm/Promile nicht nötig 
ist. Hab ich aber auch nicht geschrieben. Beim Atmega8 kannst Du bei den 
angesprochenen 8 bzw. 16MHz aber Fehler von >8% haben. Und da wirst wohl 
eher instabil.

@Roter Rabauke
ds18s20 sind Temperaturfühler.

von fragee (Gast)


Lesenswert?

Joachim B. schrieb:
> glaub mir der m1284p ist besser, mehr RAM mehr flash, der hängt bei mir
> dauerhaft seit 5 Jahren neben der Fritzbox und überwacht, die geklauten
> 12V der Fritzbox, seine 5V und 3,3V sowie 7 DS 18B20 über die Wohnung
> verteilt und zeigt es auf der Webseite.

Hallo,

wie überträgst du die Daten?

von Joachim B. (jar)


Angehängte Dateien:

Lesenswert?

fragee schrieb:
> Joachim B. schrieb:
>> glaub mir der m1284p ist besser, mehr RAM mehr flash, der hängt bei mir
>> dauerhaft seit 5 Jahren neben der Fritzbox und überwacht,
>>
> wie überträgst du die Daten?

Webseite, RS232, per USB Anbindung über Sharkoon USB Webserver

http://www.sharkoon.com/?q=de/node/1797

Roter Rabauke schrieb:
> Was sind DS und 18B20?

DS18B20

1w Temperatursensoren

http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

die hängen parasitär gespeist an 2 freien Adern meiner Telefonleitung in 
fast jedem Zimmer und ich lasse die kurz unter der Telefondosenabdeckung 
rausgucken.

: Bearbeitet durch User
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.