Forum: Mikrocontroller und Digitale Elektronik 2 AVR verbinden, aber wie ?


von A. Arndt (Gast)


Lesenswert?

Hallo,

ich möchte mit 2 AVRs arbeiten, der eine (AVR1 erledigt die 
"Drecksarbeit", z.B. Uhrzeit aus I2C, Relais schalten, Temperatur und 
Uhrzeit über DCF auslesen uvm., der andere AVR(2) bekommt ein GLCD und 
gibt nur Kommandos an den anderen AVR, z.B. Relais 4 an, "Gib mal 
Temp-Wert von Sensor 1 und Uhrzeit". AVR2 soll auch Taster abfragen und 
Schaltzeiten-Programmierung zulassen. AVR2 will ich auch mal aus der 
Schaltung entnehmen und dann sollen aber die anderen Einheiten an AVR1 
nicht verrückt spielen. Ich hatte erst gedacht, über rx und tx die AVRs 
kommunizieren zu lassen, mit festabgesprochenen Befehlen und 
Rückbestätigung usw..

Aber kann ich nichts mit SPI tun, habe da aber für FASTAVR nicht den 
richtigen Durchblick gefunden, Baustein-Adressierung uvm., wer kann mir 
das mal mit dem SPI mal erklären, geht es überhaupt ?

Gruss
A. Arndt

von Sascha Weitkunat (Gast)


Lesenswert?

Ja SPI ist schon kein schlechter Ansatz, ein AVR läuft dann im 
Master-Mode, der andere im Slave-Mode. Der Master zieht SS vom Slave auf 
Masse wenn er ihm was mitzuteilen hat, soviel zur Adressierung. Alles 
weitere lässt sich in Specs und den Datasheets von Atmel nachlesen.

von BernhardT (Gast)


Lesenswert?

Hallo A. Arnd,
der AVR Pascal-compiler von E-Lab kann so einen Master - Slavebetieb 
nicht nur über SPI sondern auch über TWI (I2C). Ansonsten unterstützt er 
alle von dir genannten Aufgaben und noch einige mehr. Ich will dich 
jetzt nicht bekehren - im Gegenteil - so wie du dein Basic magst, fühle 
ich mich bei WINAVR sauwohl. Es gibt aber ein kostenloses Demo anschauen 
kostet ja nichts (sogar bis 4kB) und etwas lernen kann man immer. Beim 
Marcus gibt es übrigens eine preisgünstige, eingeschrängte Vollversion 
(nur für die MEGA 8)
Gruß Bernhard

von A. Arndt (Gast)


Lesenswert?

Hallo,

mit TWI muss ich ja ein Leitungsverstärker ranhängen, und dann ist 
Kommunikation der beiden AVRs auch schwierig, denn sie sollen ja 
miteinander kommunizieren, also bi-direktional, mit rx und tx müsste ich 
aber meine eigenen Sprache kreieren. Wo gibt es denn WINavr, ist das 
auch Basic und wer ist Marcus ?

Gruss
A. Arndt

von BernhardT (Gast)


Lesenswert?

TWI  = I2C (I2C ist ein von Philips geschützter Name also nennt man es 
einfach anders z.B. TWI) Leitungsverstärker sind nicht nötig (SPI ist ja 
auch nicht für lange Leitungen gedacht).
WINAVR ist was wie GCC also ein super guter und völlig kostenloser 
C-Compiler. Gibt es hier: 
https://sourceforge.net/project/showfiles.php?group_id=68108&release_id=145948.
Marcus, war ein Tipfehler. Ich meinte Markus Burr, der triebt sich auf 
diesen Seiten auch öfters mal rum und hat auch eine eigene: 
www.embedit.de ,wo er unter anderem auch so Kram vertickt.
Pascal ist übrigens auch kein Basic aber sehr ähnlich - ich hab auch mal 
mit Basic angefangen. Der Umstieg auf Pascal (Borland 6.0 für 
DOS-Rechner) ist mir damals sehr leicht gefallen.
Gruß Bernhard

von Dirk (Gast)


Lesenswert?

Hi,

mal eine wichtige Frage wie weit sollen die avr`s voneinander aufgebaut 
sein 10 cm oder 100 m ?

Mfg

Dirk

von A. Arndt (Gast)


Lesenswert?

Hallo,

die Entfernung soll ca. 15m oder gerne mehr betragen, interessant wäre 
es auch mit TWI, aber welche Bausteine verbinden direktional zwei MC ?

Habe auch überlegt etwas mit RS-485 zu machen wegen der Möglichkeit noch 
weitere AVRs anzuhängen, aber das verdrillte Kabel ist relativ teuer, 
muss es wirklich sein ?

Gruss
A. Arndt

Vielen Dank für Eure Hilfen, weiter so....

von A. Arndt (Gast)


Lesenswert?

Ach ja,

es geht um AVRs mega8 bzw. mega16

von Oliver Behrens (Gast)


Lesenswert?

...am Preis fürs Kabel sollte sowas eigentlich nicht scheitern... 
schließlich brauchst Du sowieso ein Kabel zur Verbindung und 10 bis 15 
Cent Preisunterschied pro Meter sollten bei deiner geplanten 
"Ausstattung" eigentlich nicht weh tun, oder?

Ich persönlich würde hier den I2C Bus für die Kommunikation mit den 
Sensoren usw. nutzen und die beiden AVR`s einfach über die serielle 
Schnittstelle verbinden. Hier ist der Aufbau der Kommunikation 
eigentlich anfangs am einfachsten.
Klemm die beiden AVR`s einfach zu Testzwecken auf TTL Basis zusammen und 
erweitere dann bei Bedarf einfach auf RS485. Hier brauchst Du dann 
einfach nur einen bzw zwei recht günstige Bausteine mehr.
Die Bedienung des I2C ist auch recht einfach und Steuerung der 
Kommunikation mit jeden Compiler möglich, da die Lese und 
Schreibroutinen einfachst selbst "gebastelt" werden können, edal ob der 
Compiler I2C unterstützt oder nicht.

von Dirk (Gast)


Lesenswert?

Hi,

bei der Leitungslaenge wuerde ich auch 2 AVR`s oder Serial machen oder 
noch ein Chip dazu und ne2000 LAN nehmen .

Mfg

Dirk

von A. Arndt (Gast)


Lesenswert?

@Dirk,

ich werde aus diesem Post nicht schlau, was willst du damit aussagen ?

Gruss
A. Arndt

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.