Forum: Digitale Signalverarbeitung / DSP / Machine Learning TMS320C28346 (& Spartan 6) - Reset(?) bei Nutzung des XINTF


von Dennis (Gast)


Lesenswert?

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

von Dennis (Gast)


Lesenswert?

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.

von Tim R. (mugen)


Lesenswert?

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
Noch kein Account? Hier anmelden.