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


von Markus W. (mwolf)


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

von Micha (Gast)


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?

von Markus W. (mwolf)


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

von Micha (Gast)


Lesenswert?

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

von Markus W. (mwolf)


Lesenswert?

Ja, ist alles identisch!

von Peter D. (pdiener) Benutzerseite


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

von Markus W. (mwolf)


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

von Peter D. (pdiener) Benutzerseite


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

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.