AT90USB162 USB-Verbindung nach Absturz neu initialisieren

Gast #1494559
Lesenswert?

Hallo zusammen,

ich habe folgendes Problem mit unserem AT90USB162 Controller:

An der Steckdosenleiste, an der der PC angeschlossen ist, ist ebenfalls 
ein Kompressor eingesteckt. Wenn sich dieser ausschaltet, stört er 
rückwärts die Netzsspannung so sehr, dass sich der USB-Controller 
aufhängt. Die Störung schlägt also durch das PC-Netzteil durch. PC und 
Kompressor sind beide neu.
Der Controller hat auch direkt überhaupt nichts mit dem Kompressor zu 
tun.

Natürlich kann man jetzt einfach sagen, der Kompressor darf das Netz 
nicht in dieser Weise stören, er tut es aber. Eine weitere Abhilfe wäre 
auch, den Kompressor in einer anderen Steckdose einzustecken, was aber 
auch nicht immer ganz einfach ist.

Nun also meine Frage an die USB-Spezialisten:
Wie kann ich den USB-Controller neu starten, bzw. auf welches Ereignis 
hin? Das wie ist hier nicht die Schwierigkeit, sondern zu erkennen, dass 
die Verbindung zum PC nicht mehr in Ordnung ist.
Gibt es irgend welche USB-Flags die ich abfragen kann?
Gibt es einen anderen Trick, wie ich von der Controller Seite aus 
erkennen kann, dass die Verbindung zum PC nicht mehr in Ordnung ist?

Vielen Dank schon mal für eure Hilfe!

Gruß

Jens Müller
Gast #1496570
Lesenswert?

Hallo,

auch wenn es sich zugegebenermaßen nach einem Bastler Problem anhört, es 
ist keins. So ist halt die Praxis und Geräte werden nun mal so verkauft, 
trotz CE und was auch immer, und dann muss man sich als Entwickler eben 
was einfallen lassen.

Natürlich ist der richtige Weg, die Störung zu beseitigen. Was ich suche 
ist aber ein Workarround um schnell reagieren zu können. Alles Andere 
dauert nun mal länger.

Sollte sich die USB-Verbindung tatsächlich nur durch aus- und wieder 
einstecken retten lassen, muss ich halt erst mal damit leben.
Deshalb meine Frage an die USB-Spezialisten, ob es eine andere Lösung 
gibt.

Gruß

Jens
Gast #1496611
Lesenswert?

Hallo,

vom PC aus habe ich es probiert. Es geht leider nicht.
Vom PC aus sieht die Verbindung in Ordnung aus. Der Com-Port ist 
geöffnet und lässt sich auch ansprechen. Der Atmel antwortet in diesem 
Zustand leider nicht mehr.
Deshalb auch mein Frage, was man ggf. vom Controller aus machen kann. 
Kann der Controller feststellen, dass die Verbindung nicht mehr in 
Ordnung ist?

Gruß

Jens
Gast #1496718
Lesenswert?

Bekommst du noch SOF-Pakete?
Wenn sich für >= 3ms nichts auf der Leitung tut, sollte auch der 
USB-Suspend Interrupt ausgelöst werden.
Ich kenne die CDC-Spezifikation nicht, aber eventuell gibt es auch hier 
eine Möglichkeit einen Verbindungsabbruch zu erkennen (Z.B. Daten von 
Interrupt-EP werden nicht mehr abgeholt).
Gast #1497481
Lesenswert?

Also am USB liegts ja nun wirklich nicht. Wenn ich bei einer 
uC-Schaltung was gegen Störungen machen muss, dann nehm ich meist so ein 
zwei Kondensatoren und gut isses. Vielleicht hilft das ja auch bei 
Deinem Kompressor?
Gast #1497489
Lesenswert?

>Deshalb auch mein Frage, was man ggf. vom Controller aus machen kann.
>Kann der Controller feststellen, dass die Verbindung nicht mehr in
>Ordnung ist?

Wer er sich aufgehängt hat kann er nichts mehr feststellen.
Für diesen Fall wurde der Watchdog erfunden.
Gast #1497945
Lesenswert?

Hallo,

vielen Dank erst mal für die Antworten.

An den Watchdog habe ich auch schon gedacht. Dieser hilft aber nur dann, 
wenn sich wirklich der Controller aufgehängt hat und nicht nur die 
Schnittstelle. Das bin ich gerade am prüfen.

Den Watchdog werde ich auf jeden Fall implementieren, ich möchte mir nur 
vorher sicher sein, was wirklich im Controller passiert.

@Wayne Monga: Danke für den DevCon Hinweis. Das kannte ich noch nicht. 
Ich werde es heute gleich mal ausprobieren, vielleicht reicht das ja.

Gruß

Jens
Gast #1497946
Lesenswert?

>> Also am USB liegts ja nun wirklich nicht. Wenn ich bei einer
>> uC-Schaltung was gegen Störungen machen muss, dann nehm ich meist so ein
>> zwei Kondensatoren und gut isses. Vielleicht hilft das ja auch bei
>> Deinem Kompressor?

Natürlich liegt es nicht am Controller. Das hiermit erst einmal nicht 
die Ursache beseitigt wird, ist mir vollkommen klar. Habe ich aber schon 
mal geschrieben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren