Forum: Mikrocontroller und Digitale Elektronik attiny wie seriell Daten senden


von Kim S. (Gast)


Lesenswert?

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

von Nico E. (masta79)


Lesenswert?

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.

von holger (Gast)


Lesenswert?

>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.

von hans (Gast)


Lesenswert?

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

von Thilo M. (Gast)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>> 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 ;)

von Peter D. (peda)


Lesenswert?

Das USI läßt sich ohne Probleme als I2C- oder SPI-Slave verwenden.


Peter

von Ralli (Gast)


Lesenswert?

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.

von holger (Gast)


Lesenswert?

@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.

von hans (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Ralli (Gast)


Lesenswert?

@ peda

schrieb Kim Schmidt nicht, dass die Attinys nix machen, außer die
Akkuspannung zu überwachen? Den Attinys ist sowas von langweilig!

:-) Ralli

von Kim S. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.