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