Hallo, ich habe wieder Frage über mein µC-Steuergerät. Sensor->ADC->µC->FT232RL->PC. Mein Rechner hat schon den USB-eingang von dem Steuergerät erkannt: COM3, FTDI... Nachdem ich das Gerät gestart habe, bewegt der Mauszeiger automatisch. Egal was ich mit der Maus mache, auch Maus weg von PC, passiert es immer. So heißt es "USB hat meinen Mauszeiger gesteuert." Ich verstehe nicht, wieso hat mein USB-Anschluss mit dem Mauszeiger zu tun? Hat jd so was erlebt? MfG Yaolan
Wenn dein OS Windows ist: es kann sein das Windows den FT Chip als HID (human interface device) erkennt und den als Joystick oder Maus einordnet. Das müsste dann im Gerätemanager so zu sehen sein. Abhilfe dürfte sein den Treiber von FTDI zu installieren um eine universelle serielle Schnittstelle zu bekommen.
Windows ist schlicht und einfach Müll: Ich hatte mal einen 433MHz Empfänger am COM Port. Als ich Windows neu gestartet hatte, hat Windows den als Microsoft Maus erkannt... Vermutlich sendet dein uC während du Windows gestartet hast, dann passiert sowas.
Wobei man sich fragen kann wie sauber es ist, dass ein Gerät sendet ohne das es einen Befehl dazu bekommen hat.
Hat nichts mit HID zu tun (FTDI-Chips sind keine HIDs), sondern mit der archaischen Unterstützung von seriellen Mäusen. Kann mit /noserialmice in der Boot.ini abgeklemmt werden.
ist als Microsoft Seriell Trackball erkannt worden. Das Theater kennen viele! 1. keine vom uC an den FTDI Daten schicken 2. im Gerätemanager Gerät deaktivieren (nicht entfernen, sondern rotes Kreuz drann machen) 3. Rechner neu starten
vielen Dank für eure antworten. @ Rufus: "Kann mit /noserialmice in der Boot.ini abgeklemmt werden." Was beseutet das? ich habe etwas im Gerätemanager ausgefunden, dass "Mäuse und ander..." besitzt "Serieller Microsoft Ballpoint"(COM3). Ich kann es versuchen, dass dieses Gerät zu deaktivieren.
Boot.ini ist eine Datei, die im Rootverzeichnis der Bootpartition zu finden ist. Sieht zum Beispiel so aus: [boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect (das letzte gehört in eine Zeile) Alternativ kann es helfen, bei den Eigenschaften der seriellen Schnittstelle die Plug&Play-Unterstützung zu deaktivieren.
hi, Danke Rufus! ich habe "Serieller Microsoft Ballpoint(COM3)" deaktiviert. Es hat geklappt! Aber ich kann auf keinen Fall in Matlab die Daten erfassen. Weiß nicht, ob Matlab nicht eignet oder Problem von meiner Platine.
ich erkläre noch etwas, was ich vorher schon in Forum gefragt habe. Matlab: s=serial('COM3') Serial Port Object : Serial-COM3 Communication Settings Port: COM3 BaudRate: 9600 Terminator: 'LF' Communication State Status: closed RecordStatus: off Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0 ... Wie kann ich die Daten von USB in Matlab aufnehmen? Ist so richtig?
du bist schon auf dem richtigen Weg an COM3 (virtueller COMPort) ist dein Gerät? in Matlab clickst du auf s im Workspace dann hast du auch die restlichen Eigenschaften für den seriellen Port die du an die Parameter deines Gerätes anpassen musst (Stopbits, Parität, Datenbitanzahl, etc)
Ja, COM3 ist mein Gerät, und es wird schon von Windows erkannt. Es steht in Gerätemanager. Aber bei Matlab ist es so, egal welcher Port kommt immer gleiche Daten wie oben geschrieben wird. egal COM1 oder COM3, auch egal ob den USB von meinem Gerät schon angeschlossen oder nicht. Habe ich falschen Befehl von Matlab benutzt oder gibt es Fehler bei meiner Platine?
nein du hast nicht den falschen Befehl benutzt
Wenn du mal kurz testest COM30 bekommst du mit dem Befehl auch auf AUCH
wenn er nicht vorhanden ist..
Als Konfiguration wird wahrscheinlich die Standardkonfiguration von
Windows für den Port genommen.
Warum liest du dir nicht einfach einmal die Beschreibung deines Gerätes
durch und konfigurierst anschliessend den Comport mit diesen
Parametern?
Anschliessend würde ich dir die Hilfe von Matlab empfehlen (help
serial)
damit du weisst wie du diese Parameter auch von der Kommandozeile von
Matlab setzen kannst und es nicht immer über den Workspace machen
musst.
>oder gibt es Fehler bei meiner Platine
Was siehst du den im Terminalprogramm wen du dort den Comport öffnest?
Ich würde davon ausgehen das irgendetwas ankommt (Windows hat ja
gedacht es wäre eine Maus)
Ich vermute es wird noch ein Problem auf dich zukommen:
Da die Platine anscheinend ständig sendet wird der inputbuffer für die
serielle Schnittstelle in Matlab sehr schnell überlaufen, wenn du nicht
ständig pollst.
Wolfram hat Recht. Ich habe schon die Daten gekriegt. Ich kann es einstellen, wie groß die InputBufferSize ist. Aber ich habe noch ein Problem. Ich habe im Programm eine Reihe von 0,1,2,3... bis 1024 unendlich gesendet. Was ich in Matlab gekriegt ist z.B. 15, 24, 48, 96, 15, 152... Ich weiss nicht ob mein Programm einfach falsch ist, oder soll ich noch in PC (z.B Matlab) gemäß Protokoll decoden.
>z.B. 15, 24, 48, 96, 15, 152...
wenn die zweite 15 ^ eine 150 ist
würde ich sagen du pollst zu langsam
Sollte das Gerät von dir entwickelt worden sein, stelle das Protokoll
vom reinen Sendeprotokoll auf ein Master Slaveprotokoll um das umgeht
einiges an Problemen.
Sonst ,schneller pollen Inputbuffer vergrößern.
oder eleanter Abfrage in ein ActiveX Modul verlagern und bei Matlab mit
dem ActiveX-Modul kommunizieren.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.