Hallo, für eine Akkuüberwachung habe ich nach abwägen vieler Lösungen, mich entscheiden auf jeden Akkus je einen Attiny zu verbauen!! Nun soll dieser nichts weiter machen, als die Akkuspannung zu messen und seriell rausschicken. Nun sehe icha ber das der ATtiny kein SPI Ausgang oder Uart hat..... Wie also sende ich jetzt Seriel Daten?? Schlussendlich befinden sich 16 CPU in Reihe in einem seriellen Netzwerk. Die Daten werden dann von einem Atmega abgefragt
Die Tiny haben alle eine USI dafür. Ist im Datenblatt beschrieben. Ich würde aber an deiner Stelle überlegen ob es nicht mehr Sinn macht I2C oder so für die Kommunikation zu benutzen.
>Wie also sende ich jetzt Seriel Daten??
Zu Fuß. Software UART oder Software SPI.
Oder sich selber was ausdenken.
Datenbit1-Clock-Datenbit2-Clock-Datenbit3-Clock
Bei 16 CPUs dann z.B. per DaisyChain oder so.
Dann mach aus deimen Mega einen I²C-Master und deine Tiny's zu Slaves mit unterschiedlichen Adressen. Dann einfach der Reihe nach abfragen. I²C - Routinen hier im Forum (auch Softwarelösungen). Die Adressen der Slave's evtl. beim Prgrammieren ins jeweilige EEProm schreiben oder über Pins einstellbar (Bsp: 8574 für binär SAA1064 Analogwert, bei Tiny eine Pinfrage). gruß hans
holger wrote: >>Wie also sende ich jetzt Seriel Daten?? > > Zu Fuß. Software UART oder Software SPI. > Oder sich selber was ausdenken. > > Datenbit1-Clock-Datenbit2-Clock-Datenbit3-Clock > > Bei 16 CPUs dann z.B. per DaisyChain oder so. Dazu gibt's auch Appnotes bei Atmel
>> Zu Fuß. Software UART oder Software SPI. >> Oder sich selber was ausdenken. Alternativ könnte man auch mal darüber nachdenken ob man bei der Auswahl des uC schlicht und ergreifend ins Klo gefasst hat ;)
Das USI läßt sich ohne Probleme als I2C- oder SPI-Slave verwenden. Peter
Hm, wer hat jetzt hier ein Verständnisproblem? - 16 CPUs befinden sich in Reihe (Serie). (?) - Serielle Daten werden Bit für Bit zeitlich nacheinander ausgegeben oder empfangen. (!) Das eine und das andere hat praktisch nicht viel miteinander zu tun. Die Lösung liegt im PARALLEL-Schalten der Datenwege, was für jeden, der vom Kirchhoffchen Gesetz gehört hat, das Gegenteil zur Serien- schaltung (auch Reihenschaltung genannt) ist. Einem nicht ganz ahnungslosem Leser fällt dazu folgendes ein: Atmega schickt über seine UART die NUMMER des Akkuüberwachers, von dem er gerade was wissen will, an alle Attinys. Diese Akkuüberwacher haben je einen Portpin IN für den seriellen Empfang. Der serielle Empfang (Protokoll und Timing) kann auch mit Software und einem internen Counter/Timer verwirklicht werden. Empfängt ein Attiny SEINE Nummer (Adresse), antwortet er mit seinem Messwert. Dazu wird ein Portpin OUT mit serieller Sende-Software für die Antwort (Akkuspannung) bereitgestellt. Alle Attinys, die nicht gerade angesprochen wurden , müssen ihren Sendeausgang hochohmig (als "unbenutzten" Eingang) schalten. Google mal nach SOFTWARE-UART (gibts vielleicht auch im Forum). Sind zwei Pins an den Attinys frei, ging der Griff nicht in die Kloschüssel.
@Peter
>Das USI läßt sich ohne Probleme als I2C- oder SPI-Slave verwenden.
Viel Spass dabei einem ATTiny13 die Geschicht vom USI
zu erzählen ;) Welchen ATTiny er benutzen möchte ist allerdings
noch unklar.
Man muß für so eine Aufgabe keinen neuen Bus und/oder Protokoll erfinden, sondern auswählen was past! Hier eindeutig I²C (auch wenn andere Lösungen ebenso gehen). I²C mit dem USI-Modul (oder TWI) ist möglich jedoch oft fehlerträchtig. Softwarelösungen für 2 beliebige freie Pins gibt es hier zu hauf. gruß hans
hans wrote: > I²C mit dem USI-Modul (oder TWI) ist möglich jedoch oft > fehlerträchtig. Kannst Du das irgendwie begründen oder ist das nur ein Gerücht. > Softwarelösungen für 2 beliebige freie Pins gibt es hier zu hauf. Aber nur als Single-Master. Als Slave wirds haarig oder der MC hat nichts anderes zu tun, als auf den Master zu warten. Peter
@ peda schrieb Kim Schmidt nicht, dass die Attinys nix machen, außer die Akkuspannung zu überwachen? Den Attinys ist sowas von langweilig! :-) Ralli
Hallo, das Problem an der Sache ist,m das alles mit Optokopplern egtrennt werden muss!! den bei einer Reihenschaltung habe ich logischereweise einen haufen unterschiedlicher Potentiale.... Die Gesammtspannung beträgrt so um 64V!!! Daher habe ich mit jetzt für Uart entschieden... Allerdings nehme ich jetzt für jeden Akku einen Mega88, da ich es mit den Tiny13 nicht gebacken bekommen Sereiell Daten zu senden?!!?!? Da kommt immer nut Müll an, auch wenn ich statt 2400, 2500,2450 Baud etc angebe??!? Also nehem ich nun ärgerlicherweise Mega88 mit eienr ECHTEN Uart, leider sind die doppelt so teuer, was bei 20µc erheblich ins Gewicht fällt!! Uart geht aber sehr leicht mit Optokopplern zu verwenden... Jetzt muss ich nur noch erlernen wie ich Seriell Word Variablen übertrage :-(( Einzelne ZEichen sind ja kein Problem.. Mir stehen MikroPascal oder AVRco Pascal oder Bascom zur verfügung.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.