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
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?
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
Die Initialisierung der beiden ist identisch (PLL, High- und Low-Speed-Prescaler, usw.)?
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.