Gast
#2149934
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