www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP langsame CAN-Übertragung bei TMS320


Autor: Markus Wolf (mwolf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

hab folgendes Problem.
Meine beiden TMS320F2812 kommunizieren über CAN.
Der Datenaustausch geht aber so langsam, das der 1.DSP nur mit 2ms
läuft, obwohl eine Datenrate von 1MBit/s eingestellt ist. Den zweiten
kann ich mit 0,02ms laufen lassen. Das klappt ohne Probleme.
Kennt jemand das Problem oder kann mir jemand erklären warum das so ist
oder hat jemand eine Lösung dafür?

Danke,

Markus

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus Wolf schrieb:
> der 1.DSP nur mit 2ms läuft

Markus Wolf schrieb:
> zweiten kann ich mit 0,02ms laufen lassen

Was darf man darunter verstehen?

Autor: Markus Wolf (mwolf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim TMS320 stellt man die Taktgeschwindiekeit ein!
einzeln können beide DSP mit 0,02ms laufen. Werden sie
aber mit CAN verbunden und kommunizieren sie, geht der
1.DSP Hoch auf 2ms Taktzeit, der 2.DSP bleibt bei 0,02ms.
Wenn man den 1.DSP nicht auf 2ms Taktzeit einstellt, schafft er nicht
die Datenverarbeitung vom 2.DSP

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Initialisierung der beiden ist identisch (PLL, High- und 
Low-Speed-Prescaler, usw.)?

Autor: Markus Wolf (mwolf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ist alles identisch!

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was machen die beiden denn im Großen und Ganzen?
Ist das eine eigenständige Applikation oder läuft das in DSP/BIOS?
Was sind das für Taktzeiten (Paketraten am CAN oder irgendwelche 
Scheduler-Zeiten)?
Und was hat das mit der Datenrate zu tun? Es kann ja trotzdem 1MBit/sec 
Übertragungsrate sein, auch wenn nur recht selten ein Paket gesendet 
wird.

Grüße,

Peter

Autor: Markus Wolf (mwolf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die beiden DSP arbeiten miteinander.
Der 1.DSP steuert über den CAN den 2.DSP und der 2.DSP schickt
Rückmeldungen an den 1.DSP zurück. Der 2.DSP steuert dann Stellmotoren 
an.
Bei den Zeiten handelt es sich um Scheduler-Zeiten im jeweiligen DSP 
Programm. Wird die Zeit im 1.DSP unter 2ms in der Programmierung 
angegeben, klappt die Kommunikation mit dem 2.DSP nicht mehr und die 
komplette Steuerung fällt aus.
Wenn ich es richtig verstehe sind die beiden Zeiten notwendig, um eine 
Art Haltezeit zwischen den beiden DSP anzugeben. Im Programmcode wird 
sie als Taktzeit von Texas Instrument geführt.

Die zeit von 2ms ist zu groß und ich bin auf der Suche nach Lösungen 
oder Ideen, warum das so ist.

Danke für Eure Unterstützung

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde mal ausgeben lassen, wieviel CPU-Zyklen die einzelnen Prozesse 
brauchen, bzw. wieviel Rechenzeit die einzelnen Prozesse von ihrer 
zugewiesenen Maximalzeit wirklich benötigen. Es ist durchaus möglich, 
dass irgendein Prozess mit höherer Priorität zu viel Rechenzeit braucht 
und die Kommunikation ausbremst.

Grüße,

Peter

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.