www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik attiny wie seriell Daten senden


Autor: Kim Schmidt (corado)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nico Erfurth (masta79)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: Peter Dannegger (peda)
Datum:

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


Peter

Autor: Ralli (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ peda

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

:-) Ralli

Autor: Kim Schmidt (corado)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.