Schönen Tag!
Ich suche nach einer Möglichkeit einen der kleinen attinys. Zb. Attiny13
mit einem AtMega zu verbinden. Die sollen miteinander kommunizieren, da
der Attiny13 aber kein Hardware UART hat, fällt das schonmal aus.
Soweit ich weiß hat der Attiny13 garkeine Hardwareseitige möglichkeit zu
kommunizieren, ist das richtig?
Muss ich also jegliche Kommunikation in Software ausprogrammieren? Ich
denke UART wäre dabei ungeeignet aufgrund des hohen Programmieraufwands
( großer Speicherbedarf ) und erhöhte Störanfälligkeit.
Schonmal ein danke an die Profis
Grüße
Oliver
1) Atmel hat zu einer Software Uart auf einem avr ein pdf. Soweit ich
mich erinnere; war ein kurzer code und benötigt nur 2 I/Os.
2) Software I2C oder SPI Slave empfinde ich ich als aufwändiger (min. 3
I/O).
3) Wenn du kannst, nimm ATTinys mit Hardware spi, i2c usw.
Hallo!
1) Danke, werds mir mal anschauen
2) mehr als 2 I/Os kann ich sowieso ned opfern leider.
3) Attiny13 liegen schon hier, deshalb eher nicht möglich.
Auch an One-Wire habe ich gedacht problem ist aber, dass ich es
Potentialfrei übertragen möchte, mit Optokopplern und das macht gewisse
Probleme, da selbige eben nicht bidirektional arbeiten können.
Gruß
Oliver
Hallo avion!
Den Kenne ich, aber damit habe ich ja auch das Problem des one - wires
oder? Weil ich eben eine galvanische Trennung per Optokoppler brauche.
Grüße
Oliver
Oliver. A. schrieb:> Den Kenne ich, aber damit habe ich ja auch das Problem des one - wires> oder? Weil ich eben eine galvanische Trennung per Optokoppler brauche.
Warum denn das? Wenn beide mit den selben Pegeln arbeiten einfach
verbinden.
Hallo!
Ich muss mehrere kleine Attinys zu dem Atmega verbinden, die Attinys
sind aber auf unterschiedlichem Niveau, also nicht alle auf der selben
Masse. Aus diesem Grund ist die galvanische Trennung essentiell.
Grüße
Oliver
Oliver. A. schrieb:> Den Kenne ich, aber damit habe ich ja auch das Problem des one - wires> oder? Weil ich eben eine galvanische Trennung per Optokoppler brauche.
Der Empfang erfolgt über Pin-Change-Interrupt, also kannst Du nen
beliebigen anderen Pin nehmen. Es muß nicht der Sendepin sein, kann
aber.
Peter
Hallo Peter!
Heißt also, ich kann es genauso auftrennen wie bei UART, Beidseitig
einen Sende, und einen Empfangspin richtig?
Hat der 124BUS Vorteile gegenüber UART bzw. Nachteile?
Wäre es eventuell Schaltungstechnisch auch möglich über einen I/O Port
des µC das 124 BUS System galvanisch getrennt zu übertragen.? einfach 2
Optokoppler geht natürlich nicht, das ist mir klar.
Grüße
Oliver
Hallo!
Danke für den Link, sieht auch nicht schlecht aus, interessant wäre es
hald wies mit der Einfachkeit bzw. Störsicherheit und Nachteile
aussieht.
Was meint ihr da ? 124Bus oder UART, oder was würd da besser sein?
Grüße
Oliver
Oliver. A. schrieb:> Stimmt, zumal ich keine Quarze verwenden möchte.
Das ist eine schlechte Idee ...
Oliver. A. schrieb:> Hat er auch Nachteile?
- langsam
- störanfällig
- übersteht keinen EMV Test
Hallo!
Störanfälliger als der UART? Wieso soll der weniger EMV beständig sein
wie der UART?
Langsamer ist eine Auslegungssache oder? Denn Störungsfreier ist doch
der 124Bus ( Mit Störungsfrei meine ich jetzt wegen des Timings ) und
somit kann ich höhere Datenraten verwenden. Oder bin ich komplett am
falschen weg ?
Grüße
Oliver
Hallo Peter.
Eine Begründung dazu wäre schon immer schon :D
Kannst du mir diese Fragen (Vor/Nachteil) eventuell beantworten ( mit
Begründung)
wär super!
Danke dir.
Grüße
Oliver
Oliver. A. schrieb:> Hallo Peter.>> Eine Begründung dazu wäre schon immer schon :D
Ja, die fehlt eben.
Da mußt Du schon den Lehrmann Michael fragen, wie er darauf kommt.
EMV ist hauptsächlich eine Hardwaresache (Schaltplan, Layout). Mit SW
kann man bestenfalls Störungen abfangen (CRC, Retry, Timeout).
Peter
Wenn die kleinen Controller mit RC-Oszillator laufen kann es sinnvoll
sein, die Daten über eine Art "Morsecode" zu übertragen. Sprich man
überträgt kurze und lange Pulse. Mit einer Schleife, oder einem Timer
kann man die Länge sehr einfach bestimmen, und dann mit Grenzen
vergleichen. Ganz kurze Pulse ignoriert man, längere sind beispielsweise
0-en, ganz lange sind zum Beispiel 1-en, und wenn sie noch länger sind,
so sind das Startbits. (oder ähnlich)
RC-Oszillatoren können durchaus mal 10% "Fehler" haben, eine normale
serielle Schnittstelle kommt da an ihre Grenzen. Das oben beschriebene
Verfahren funktioniert auch noch bei deutlich größeren Fehlern. Da man
auch die Länge der Pulse bestimmt kann man sogar den Frequenzfehler
bestimmen.