Arduino pro mini und uno Übertragungsgeschwindigkeit

Hallo Gemeinde,

sicherlich steht das in irgendeinem Beitrag aber ich konnte dazu leider nichts finden.
Ich muss Daten über Serial an ein Arduino schicken.
Das ist an und für sich kein Problem, allerdings sind es viele Daten, schnell hintereinander.
Um genau zu sein sende ich 288 Bytes an ein Arduino.
Damit es spannend bleibt, werden die Daten ca. 25 mal pro Sekunde gesendet.
Es geht hierbei um das Empfangen von Farbdaten eines Video-Bildes, welche das Arduino anschließend nutzt um LEDs zu beleuchten (WS2812B).

Ich weiß leider nicht wie genau man die baud rate berechnet aber ich denke mal etwa so:
288 bytes * 8 bit = 2304 bit pro durchgang
2304 bit * 25 (pro sekunde) = 57600 bit/s

Also sollte ein baud rate von 57600 reichen (rechnerisch).

Grund weshalb ich mir diese Frage stelle ist, dass ich momentan über das Serial mit einer baud rate von 115200 Sende/Empfange, aber es immer wieder zu Fehlern (blitzen der LEDs oder kurze hänger) kommt.
Das sollte ja eigentlich ausreichend schnell sein für das einfache empfangen.
Leider weiß ich nicht wie viel Zeit für die eigentliche Bearbeitung der Daten gelassen wird und wollte etwas schneller übertragen lassen.

Was ist das schnellste, was ein Arduino UNO und ein Arduino Pro Mini über Serial empfangen kann?
Bei beiden Arduinos ist jeweils ein ATmega328 (16MHz) verbaut. Das Pro Mini läuft bei 5V.
Tests mit einer baud rate von 230400 sind gescheitert (es hat sich nichts getan bei den LEDs).

Auch in der Produktbeschreibung steht leider nichts zu den maximalen baud raten, die das jeweilige Arduino noch sauber empfangen kann.

Gesendet wird übrigens von einem Raspberry PI.

Da höchste ist 115200. Die Baudrate errechnet sich aud Bit pro Sekunde inklusive Start- Stop- Paritätsbit. Normalerweise wird 8N1 Übertragen (8 Bit, 1 Stopbit, Keine Parität) also 10 Bit pro Byte. bei 288 Byte 25 Pro Sekunde sind das dann 2881025 = 72000 Bit pro Sekunde = Baudrate.

Grüße Uwe

hi,

ich hab' hier schon mal geschrieben, daß ich problemlos auf 500.000 gekommen bin. einfach mit dem MultiSerialMega-sketch aus den beispielen. mit USB in den rechner, an serial1 einen FTDI von ebay um €1,62 und wieder zurück in den rechner.
zwei instanzen von HTerm gestartet und ich konnre in beide richtungen senden/empfangen. ich hab's aber nicht mit großen datenmengen probiert, sondern nur mit einigen zeichen.

die 115200er-grenze gilt aber auf jeden fall für normale RS232-schnittstellen in computern.

gruß stefan

Hallo,

klingt nach Ambilight Nachbau. Hast Du schon nach Arduino Ambilight gegoogelt. Gibt viele Seiten darüber. Vielleicht ist etwas dabei. Nur wenn Du eh schon einen Raspberry nutzt wegen dem Farbsignal, dann kann doch der auch gleich das Lichtspektabel selbst erzeugen.

hi,

Nur wenn Du eh schon einen Raspberry nutzt wegen dem Farbsignal, dann kann doch der auch gleich das Lichtspektabel selbst erzeugen.

der pi ist im gegensatz zum atmel ein computer, bei dem immer viele hintergrundprozesse laufen. die timings beim 2812er sind so eng, daß das mit dem pi nicht so leicht funktioniert. beim atmel kann man IMMER sagen, wann genau in welcher reihenfolge er was macht. beim pi nicht...

leon ,wie sieht Dein projekt mittlerweile aus. hab' lange nichts gehört.

gruß stefan

Hallo,

wenn es ein Ambilightnachbau ist, kommst du dann nicht ir weniger Daten aus? Du könntest z.B. die Daten halbieren und Zwischenwerte berechnen.

Hallo,

so problematisch kann das nicht sein wenn es im Netz tausende Ambilight Projekt mit Raspberry gibt. Zur Not kann man das Linux basierende Rasbian OS noch weiter abspecken. Viele lassen sogar auf dem Raspberry XBMC laufen und Ambilight zusätzlich über ein Plugin. Ich hatte mich damit mal befasst, jedoch beschlossen das ich das zusätzliche Geflimmer eigentlich doch nicht möchte. Ein konstantes schönes warmweis finde ich als angenehmer.

hi,

so problematisch kann das nicht sein wenn es im Netz tausende Ambilight Projekt mit Raspberry gibt.

nochmal: es geht um WS2812. wäre sehr interressiert an den tausenden projekten...

gruß stefan

Wow.... hatte keine Benachrichtigung bekommen und gerade zufällig gesehen, das hier so rege disskutiert wird.
Also ja es ist ein ambilight nachbau und in dem Thema habe ich leider nichts mehr geschrieben, weil ich mittlerweile einen anderen Weg gehe. Leider bin ich mitten in den Prüfungen vom Studium und habe daher sehr wenig Zeit.

Aber um mal Doc_Arduino etwas Wind aus den Segeln zu nehmen: Es gibt bisher kein Ambilight Projekt das WS281xx LEDs unterstützt - und schon gar nicht direkt über das PI.
Das hat mit seinem OS eindutig zu viel zu tun und kann nicht sauber senden.
Ich habe das mit Oszilloskop nachgemessen und auch andere Leute die es dann "nur" mit Inverter probiert haben sind gescheitert.
Problem bei diesen LEDs ist die fehlende CLK Leitung und daher sehr zeitkritische Timings.
Aber wenn du "tausende" kennst, dann schick mir bitte eins (und wenn es geht dann nicht eines der beiden, bei denen ich aktiv an eine Umsetzung dieser LEDs mitarbeite.. bzw. unter ambi-tv hab ichs hinbekommen, aber das Projekt hat zu schlechte farben).

Auch wenn du das behauptest hast du dich leider nicht wirklich damit befasst.
Und zu deiner Info: Ich verwende Raspbian und Raspbmc...
Arbeite parallel mit beiden und hatte bei beiden schon ein vollständig funktionierendes setup.
Leider ist es nicht reproduzierbar "kaputt" gegangen und mir fehlt die Zeit.
Es werden also alle Möglichkeiten ausgeschöpft.

Ich wollte mich hier nur Grundsätzlich nach der Übertragungsgeschwindigkeit informieren.
230400 habe ich zumindest über USB von PI nach Arduino unter XMBC reproduzierbar und stabil hinbekommen.
Das läuft top, ist aber leider nicht für HDMI Quellen geeignet und da will ich wieder hin.
Und leider auch nicht über UART/GPIO... was mich sehr verwundert.
Problem ist auch, dass ich leider wenig "debuging" machen kann, da diese Übertragungsgeschwindigkeit kein Softserial mehr unterstützt und ich daher auch nicht über USB "lauschen" kann was genau ankommt..

Dummerweise ist DURCH DAS BACKUP mein funktionierendes Setup unter raspian kaputt gegangen.
Und obwohl alle Schritte genauestens von mir aufgeschrieben wurden, funktioniert es einfach nicht mehr unter Raspian.
Es gibt aber ein paar, die durch meine Arbeit auf den Zug aufgesprungen sind und auch funktionierende Setups mit WS2812B haben...
Zwar soweit mir bekannt nicht unter raspian aber es ist nur eine frage der Zeit bis ich oder jemand anderes ein Tutorial dazu schreibt...
Solange der level-converter nicht da ist, werde ich erstmal nicht groß weiter testen.
Es hat zwar ohne schon mal super funktioniert, aber ich will alle fehlerquellen die ich kann ausschließen um ans ziel zu kommen.

Aber egal... das ufert hier aus. Wenn ich es zum laufen gebracht habe kommt das Tutorial.. spätestens dann im April wenn ich Zeit habe (träum').

Nur damit es vollständig ist:

Per USB waren 230400 baud problemlos machbar (mehr hab ich nicht getestet).
Bei UART Verbindung war bei 115200 baud (angeschlossen am arduino RX) schluss.