Hallo liebes Forum! Mit dem F28335 von TI spreche ich über das µC-Interface ein externes Modul von der Firma Beckhoff an. Diese EtherCAT Briefmarke (FB1111-0140) ist gegenüber dem DSP/DSC sehr langsam, da die Daten erst innerhalb von 220ns bereitgestellt werden. Über die XINTF Einstellungen im F28335 kann diese Zeit nicht länger als 180ns eingestellt werden. Zwar bekomme ich einigermaßen die Daten sicher rüber und die Kommunikation verläuft bis jetzt recht gut. Hin und wieder habe ich allerdings falsche Daten, die meiner Meinung nach überhaupt nicht vertretbar sind. Zwar könnte ich weitere Variablen zur CRC Prüfung deklarieren, aber dadurch steigt die totale Auslesezeit vom DSP. Am Liebsten würde ich die Lesezeit von 220ns um den Faktor 10 niedriger sehen wollen, aber diesen Wunsch kann ich mal beiseite legen. Ich suche somit ein paar Lösungsmöglichkeiten! Ein paar Gedanken habe ich mir schon gemacht: 1.Lösung: Andere EtherCAT Briefmarke besorgen, die schneller ist. Evtl. anderer Hersteller oder auf FPGAs Basis (Beckhoff) 2.Lösung: Zweiten Mikrocontroller auf das Board integrieren und die Kommunikation von Seriell auf µC wandeln. Die geht nur, wenn man McBSP benutzt. Also wer ein paar Denkanstöße hat, die sind sehr herzlich willkommen.
Swoeit ich das verstanden habe, ist das Protokoll von EtherCAT offen und in der IEC 61158, Typ 12 erhältlich. Es sind ganz normale UDP-Packets, die kannst du auch über jeden anderen MAC senden. Du kannst also irgendeinen 100MBit/sec MAC und ein entsprechendes Phy aussuchen und den MAC ganz normal an den Bus von deinem DSP anschließen. Oder, wenn es nicht unbedingt ein DSP sein muss, einen AT91SAM7X256 oder vergleichbares einsetzen, der hat einen EthernetMAC on chip. Wenns ganz einfach sein soll, würde ich das alles auf einem ATNGW100 laufen lassen, da hast du gleich 2 100 MBit/sec Ethernetports. Ich weiß natürlich nicht, ob dir das von der Geschwingikeit der DSP-Funktionen ausreicht. Grüße, Peter
Ethernet ist erst mal nicht Fehlergeschützt und man muss immer mit falschen Daten rechnen. Von daher macht es so oder so Sinn sich darüber Gedanken zu machen. (Ja - eine Verbindung mit einem Patchkabel von Buchse zu Buchse ist schon als fast Fehlerfrei zu betrachten - aber ab und zu soll es selbst dort mal ein falsches Paket geben.) Viele Grüße, Martin L.
Vom Slave-Modul werden Fehler erkannt, dass ist nicht das Problem. Die Anbindung aber über µC ist nahezu unmöglich. Da der Pre-Scaler nicht soweit runter takten kann, damit er dieses langsame Modul richtig anspricht. Ich mein 220ns ist echt langsam.
Wie sieht das mit dem Timing denn aus, wenn du zweimal direkt hintereinander auf die selbe Adresse zugreifst und nur den Wert vom letzten Zugriff weiterverwendest? Dann sollte die Adresse schon lange genug anstehen, so dass nichts mehr passiert. Optimalerweise baut man dann vielleicht noch etwas dazwischen, das nur immer den zweiten Strobe an das Modul weiterleitet. Wichtig ist ja nur, dass Daten und Adresse lange genug anstehen. Grüße, Peter
Hallo Peter, dein letzter Tipp hat soweit recht gut geklappt. Diese EtherCAT Briefmarke von Beckhoff wird zurzeit über ein 8bit µc-Interface angesteuert. Die Datenübertragung erfolgt schon besser, aber bei gerade/ungeraden Adressen habe ich weiterhin das Problem. Dies liegt aber daran, dass der Controller auf der Briefmarke eigentlich die Daten intern mit 16bit verarbeitet. Somit hat er bereits die nächste Adresse schon verarbeitet, bzw. die nachfolgenden Daten im Cache. Ich werde morgen diese Briefmarke über den 16bit Adressbus ansteuern, wobei sich die maximale Lesezeit von 220ns auf ca. 320ns verlängert. Damit kommt mein DSP überhaupt nicht hin, aber evtl. wird dies durch das wiederholtes lesen kompensiert. Letztendlich gefällt mir die Lösung aber nicht, da ich eigentlich den Adressbereich über DMA auslesen wollte. Die BUSY Leitung könnte evtl. noch Abhilfe schaffen, dies werde ich mir aber am morgigen Tag nochmals näher ansehen. Für andere Lösungsvorschläge bin ich weiterhin offen.
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.