Forum: Mikrocontroller und Digitale Elektronik 4m-Kopplung zweier AVRs mit LIN oder I2C?


von RE (Gast)


Lesenswert?

Ich baue einen Datenlogger, der einige Temperaturen und Schaltzustände 
aufzeichnen soll.  Derzeit auf Basis Butterfly = ATmega169, später 
ATmega32.  Die Sensoren sind typ. wenige cm bis max. 5m Kabellänge vom 
Logger entfernt.

Als zusätzlichen Sensor möchte ich jetzt einen SHT11 Temepratur- und 
Feuchtesensor anschließen.  Das funktioniert auch soweit, wenn der SHT11 
direkt neben dem Butterfly liegt, bei 3m Entfernung kommt nichts mehr 
durch. Nach viel Sucherei hab ich im Datenblatt gelesen, dass der SHT11 
nur max. 10cm Kabellänge abkann.

Also hab ich mir gedacht, einen ATtiny13 (liegen einige in der 
Bastelkiste) auf der einen Seite direkt mit SHT11 zu verbinden und auf 
der anderen Seite übers Kabel mit dem zentralen Logger zu sprechen. 
Meine Frage ist nun, welches Protokoll nehm ich am besten für die 
Kommunikation zwischen den AVRs. Zu LIN hab ich bereits einiges gelesen 
und auch Atmel bietet einige AppNotes; von I2C hab ich keine Ahnung. 
Weitere Punkte:

+ Autokalibration zu Beginn jeder Übertragung (Ausgleich der 
Temperaturschwankungen, ca. -20°C .. +50°C)
+ nur ein Pin (Halbduplex)
- aufwändiger Code zur Kalibrierung (nicht viel Platz im tiny13)

Geschwindigkeit ist eher Nebensache.  Die Abfragen erfolgen nur ca. alle 
10 Minuten. Da ist eine Übertragung mit 1200 Baud noch schnell.

Vorschläge, Anmerkungen?

  RE

von Alex W. (a20q90)


Lesenswert?

Mach ein LIN-Bus. Versorge den Bus selber über 10k mit +12V (kannst auch 
5V nehmen) und ziehe mittels Transistor den Bus gegen Masse. Der TxD vom 
AVR kannst dann direkt ohne großartigem Protokollaufbau mit "Print" die 
Werte übertragen. Solltest Du noch Checksumme wünschen kannst Du das bei 
Bascom mit crc8(x,y) errechnen lassen und mitsenden.

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.