Forum: Mikrocontroller und Digitale Elektronik Peter Fleury´s Bibliothek geeignet?


von Steff G. (steff_123)


Lesenswert?

Hallo Leute,

es sind ja schon paar Fragen im Forum zu Peter Fleury´s uart Bilbiothek 
gestellt worden - dennoch wollte ich nochmals um euren Rat fragen.

Aufbau:

Ich verwende ein Mega2560 Board (Arduino) programmiere das ganze aber 
ohne die Arduino IDE, sondern rein in C.
Zum Flashen verwende ich AtmelStudio 7.

Mit meinem Board wird ein DC- Gleichstrommotor drehzahlgeregelt.
Zur Drehzahlregelung errechne ich mir alle 200 ms die Drehzahl und 
schicke das in einen PI-Regler.
Die Solldrehzahl soll dabei vorab über den PC vorgegeben werden und an 
das Board geschickt werden.

Darüber hinaus empfängt das Board via eines MAX232 ein Signal eines 
Drehmomentsensors.

Nun zu meiner Frage:

Ist es grundsätzlich möglich mit der Bibliothek von Peter Fleury sowohl 
die Drehzahldaten als auch die vom Drehmomentsensor erhaltenen Daten an 
den PC weiterzuleiten?
Ich stelle die Frage, weil ich mir nicht sicher bin, ob man 2 
Datensignale via der USB-Buchse mit der Bibliothek von Peter Fleury 
übermitteln kann.

Bzw. wieviel Aufwand ist es so etwas einzustellen oder gibt es 
einfachere Lösungen?

Da ich leider mit dem Senden und Empfangen über UART noch nicht so 
vertraut bin wäre ich über jede Hilfe dankbar.

von Joachim B. (jar)


Lesenswert?

Stefan G. schrieb:
> Ist es grundsätzlich möglich mit der Bibliothek von Peter Fleury

ja klar, ich nutze viele Bibliotheken, auch von Fleury die mir immer gut 
gefallen hatten, aber hier gabs wohl noch erweitertes besseres?


Beitrag "ISR Code schneller machen?"

viel Stoff und alles schön zusammenrühren, dann wird die UART Lib noch 
besser

von Falk B. (falk)


Lesenswert?

@Stefan G. (steff_123)

>Darüber hinaus empfängt das Board via eines MAX232 ein Signal eines
>Drehmomentsensors.

Also hast du 2 UARTs.

>Ist es grundsätzlich möglich mit der Bibliothek von Peter Fleury sowohl
>die Drehzahldaten als auch die vom Drehmomentsensor erhaltenen Daten an
>den PC weiterzuleiten?

Ja.

>Ich stelle die Frage, weil ich mir nicht sicher bin, ob man 2
>Datensignale via der USB-Buchse mit der Bibliothek von Peter Fleury
>übermitteln kann.

Wieso 2 UARTs über USB? Dort hängt nur ein UART dran, der ander per 
MAX232.

>Bzw. wieviel Aufwand ist es so etwas einzustellen

Geht out of the box, denn die Lib des Herrn Fleury unterstützt 2 UARTs.

von Steff G. (steff_123)


Lesenswert?

Ok ich hoffe ich hab mich nicht missverständlich ausgedrückt.

Die Signalketten sind folgende:

Drehzahl am PC vorgeben -> Atmega

Drehmomentsensor -> Messverstärker -> über Max232 auf den Atmega -> PC

Encoder vom DC-Motor -> Atmega -> PC

Also sowohl Drehzahl + Drehmoment sollen via den USB-Anschluss des 
Boards an den PC gesendet werden.

Sry wenn ich dich falsch verstanden habe bzw. ich es noch nicht ganz 
verstehe - aber mit den integrierten 2 UARTS von Fleury´s bib sollte es 
gehen?

von Falk B. (falk)


Lesenswert?

@Stefan G. (steff_123)

>Die Signalketten sind folgende:

Ein Blockschaltbild wäre besser.

>Also sowohl Drehzahl + Drehmoment sollen via den USB-Anschluss des
>Boards an den PC gesendet werden.

Schon klar, aber dazu braucht es nur EINE logische UART-Verbindung zum 
PC. Dort kannst du alle möglichen und unmöglichen Daten in einem 
Format/Protokll deiner Wahl übertragen.

>Sry wenn ich dich falsch verstanden habe bzw. ich es noch nicht ganz
>verstehe - aber mit den integrierten 2 UARTS von Fleury´s bib sollte es
>gehen?

Ja.

von c-hater (Gast)


Lesenswert?

Stefan G. schrieb:

> Sry wenn ich dich falsch verstanden habe bzw. ich es noch nicht ganz
> verstehe - aber mit den integrierten 2 UARTS von Fleury´s bib sollte es
> gehen?

Ja, klar. Eine UART-Instanz für die Verbindung zum Drehmomentsensor und 
eine  für die Verbindung zum PC.

Bei der logischen Trennung der zwei Datenströme in Richtung AVR->PC 
hilft die  Fleury-Lib aber natürlich nicht weiter, da musst du schon ein 
eigenes Protokoll drüber legen, um das zu realisieren.

von Steff G. (steff_123)


Lesenswert?

Vielen Dank euch schon mal

>Bei der logischen Trennung der zwei Datenströme in Richtung AVR->PC
>hilft die  Fleury-Lib aber natürlich nicht weiter, da musst du schon ein
>eigenes Protokoll drüber legen, um das zu realisieren.

Hätte da jemand einen Tipp für mich wie man das angeht bzw. wo man sich 
da schlau machen kann?
Vielen Dank

von c-hater (Gast)


Lesenswert?

Stefan G. schrieb:

> Hätte da jemand einen Tipp für mich wie man das angeht

Man denkt darüber nach und setzt das Ergebnis dieser Denkvorgänge in 
Quelltext um. Genau sowas nennt man "Programmieren".

Natürlich: Eine völlig neue Erfahrung für Copy&Paste-Artisten...

von Falk B. (falk)


Lesenswert?

@ Stefan G. (steff_123)

>Hätte da jemand einen Tipp für mich wie man das angeht bzw. wo man sich
>da schlau machen kann?

Im Internet ;-)

Im Ernst. Fang mal einfach an, indem du deine Daten mit ASCII durch die 
Gegend schickst. Dann kannst du einfach schreiben

M:1234
N:5678

M ist hier meine Kodierung für das Drehmoment, N die Drehzahl. Der 
Phantasie sind keine Grenzen gesetzt.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich denke ich verstehe deine Gedanken was dich zu der Frage führte. Die 
serielle Übertragung ist immer Byte für Byte. Mehr macht die Serielle 
nicht. Es ist nicht limitiert wieviele Bytes du am Stück überträgst. 
Dafür baut man sich dann ein festes Protokoll was beide Seiten 
verstehen. Dann kann man das am Stück, eben Byte für Byte, übertragen 
und beide Seiten können damit etwas anfangen.

Wie das Protokoll aussieht, dafür gibts tausende Möglichkeiten.

In dem Link oben findest du den Code. Da ist alles enthalten. Empfang, 
Verarbeitung, senden. Die Struktur kannste anpassen wie du lustig bist, 
solange alle Teilnehmer die gleiche Struktur/Protokoll kennen bzw. 
nutzen. Die serielle Übertragung ist mit dem Code Langzeit getestet, 
funktioniert.

Die Änderungen in der uart Lib wurden nur notwendig um das 
Servopulssignal Jitterfrei zubekommen. Das ist sehr speziell, brauchst 
du nicht, kannste aus meiner Sicht ignorieren. Bis auf die "serial 
senden flush" Änderung, die ist notwendig.

: Bearbeitet durch User
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.