Hallo zusammen, habe eine Frage zum Zusammenspiel zwischen Mikrocontroller und FPGA, wobei ich im Umgang mit beidem keine große Erfahrunge besitze. Der verwendete Mikrocontroller TMS320C28346 ist über den externen Bus mit dem Spartan 6 XC6SLX45 verbunden. Eine grobe Beschreibung der Anwendung: Das eigentlich Ziel ist das Einstellen der Frequenz eines Steuersignals, das der Controller generiert, von einem PC, über den FPGA: Neue Frequenz -> RS485 -> FPGA -> externer Bus -> Mikrocontroller Die Verbindung von PC zu FPGA funktioniert bereits fehlerfrei. Der Ansatz, um die empfangenen Daten mit dem Controller zu lesen, war über den externen Bus auf einen RAM Baustein im FPGA zuzugreifen. Der Zugriff auf Seiten des Controllers würde vom External Interface geregelt. Der FPGA soll beim Empfangen eines neuen Wertes über das XHOLD Signal Zugriff auf den externen Bus anfordern, sobald dieser über XHOLDA bestätigt wurde dann den neu empfangenen Wert im RAM speichern. Danach setzt er das XHOLD Signal zurück und löst über eine andere Leitung einen Interrupt des Controllers aus. Dieser holt sich den neuen Wert über einen Zugriff auf die passende Adresse, die zu der genutzten Zone des XINTF gehört und die der entsprechenden Adresse im RAM des FPGA zugeordnet ist. Zum eigentlichen Problem: Das oben beschriebene Vorgehen funktioniert in den meisten Fällen. Es kann aber anscheinend mit geringer Wahrscheinlichkeit zu Problemen führen. Sende ich oft neue Werte vom PC, reagiert der Mikrocontroller nicht mehr auf einen neu eingestellten Wert. Pausiere ich dann das Debuggen des Controllers befinde ich mich nicht mehr in meinem „normalen“ Programmcode sondern immer genau bei der Adresse 0x3FF9F9. Da ich mich damit anscheinend im Adressbereich des ROM befinde, gehe ich davon aus das ein Reset wegen einem Fehler ausgelöst wird(?). Ich weiß das mit einer so groben Fehlerbeschreibung keine Ferndiagnose erfolgen kann, da mir nur langsam die Ideen ausgehen wäre ich froh über jeden Hinweis wo das Problem liegen könnte. Meine entsprechend allgemeine Frage ist, was kann bei Nutzung des External Interface XINTF des Controllers zu einem Reset führen? In den Datenblättern zum c2834x konnte ich bisher leider nichts finden. Gruß Dennis
Hat sich geklärt, hatte peinlicherweise die Eingangssignale des FPGA's nicht vernünftig einsynchronisiert. Dadurch gab es anscheinend gelegentlich Fehler die im FPGA durchgereicht wurden, wie genau kann ich nicht nachvollziehen. Dadurch hat das XINTF des Controllers keine gültigen Werte eingelesen was zu einem Fehler beim Controller geführt hat.
Dennis schrieb: > Meine entsprechend > allgemeine Frage ist, was kann bei Nutzung des External Interface XINTF > des Controllers zu einem Reset führen? Einfach den WatchDog ins Leere laufen lassen, dann wird der DSP/DSC durch Hardware resetet. Das XINTF Interface vom DSC hat einen DMA Controller, dann bräuchte man die CPU nicht immer anhalten lassen. Evtl. würde ich auch an den Timing etwas verbessern oder gar das Signal XREADY nutzen. Wobei ich letzteres leider noch nicht sinnvoll in Betrieb genommen habe.
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.