Forum: Mikrocontroller und Digitale Elektronik AT90USB162 USB-Verbindung nach Absturz neu initialisieren


von Jens Müller (Gast)


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

von Jens Müller (Gast)


Lesenswert?

Hallo USB-Spezialisten,

hat denn wirklich keiner eine Idee?

Gruß

Jens

von STK500-Besitzer (Gast)


Lesenswert?

Aldi hat gerade eine Steckdosenleiste mit Netzfilter im Angebot...

von STK500-Besitzer (Gast)


Lesenswert?

Zum Thema USB:
Der USB-Controller sollte beim Reset die Beine so vom Bus nehmen und 
wieder drantun, dass der PC "denkt", es sei ein neues Gerät eingesteckt 
worden.

von Jens Müller (Gast)


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

von STK500-Besitzer (Gast)


Lesenswert?

Du musst den PC dazu bringen, die Kommunikation mit dem USB-Device 
wieder aufzubauen.
USB ist ein Polling-Bus...

von Jens Müller (Gast)


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

von Mars (Gast)


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).

von Gast (Gast)


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?

von holger (Gast)


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.

von Wayne M. (vibra)


Lesenswert?

Moin

von MS gibst dazu ein Prg. nennt sich DEVCON

Using DevCon, you can enable, disable, restart, update, remove, and 
query individual devices or groups of devices.

http://support.microsoft.com/kb/311272/EN-US/

vielleicht hilft es

mfg

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

In der Controller-Firmware könnte ein Watchdog implementiert werden. 
Wird der nicht bedient, gibts einen Reset.

von Jens (Gast)


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

von Jens (Gast)


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.

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.