Hi, nach langem hin und her habe ich es doch geschafft, ein USB-HID-Device mit einem PIC24FJ128GC010 umzusetzen. Der IC hat einen internen Transceiver eingebaut. Ich hab mich weitestgehend an Kapitel 14.5 und 14.6 dieses Tutorial gehalten: http://www.engscope.com/pic24-tutorial/ Die Kommunikation geschieht über 12Byte Pakete, die mit Interrupt-Priorität gesendet werden. Anders als der Autor nutze ich aber den internen Oszillator und das auto-tuning feature des PICs, bei dem die genaue Taktfrequenz an das USB-Signal angepasst wird (über die tuning-register). letzten Endes klappt das alles recht gut und ich kann das Debugger-Projekt des Autors mithilfe des SimpleHIDWrite utilitys nutzen (http://janaxelson.com/hidpage.htm). Allerdings verliert das Gerät alle paar Minuten die Verbindung. Das äußert sich dann, als würde ich es aus und sofort wieder anstecken. Das utility meldet dann "Removal" & "Arrival" des Devices (siehe Screenshot). Lässt sich irgendwie nachvollziehen, was der Grund dieser Ausfälle ist? Zur Auswahl steht viel: Entweder liegt's am schlechten Auto-Tuning. Oder es liegt an irgendeinem System-Reset der aufgetreten ist. Ein Problem könnte auch sein, dass VUSB3V3 mit 3.0-3.6 betrieben werden muss. Im Moment liegen da eher 2.85V an, da ich aus Versehen einen falschen Spannungsregler verbaut habe. Es steht also viel Pfusch zur Auswahl aber vielleicht ist es ja etwas ganz Anderes? Vielleicht ein Bug in der Software? Mir fällt v.a. auf, dass nach einem "Removal" & "Arrival" der RAM des PICs zurückgesetzt wurde. Konkret: der Debugspeicher, den man da von außen schreiben und lesen kann, steht wieder auf 0. Also war da mal die Versorgung weg? Denn geschrieben werden die Werte sonst an keiner Stelle. Möglicherweise reicht mir schon ein brauchbareres Tool, um das USB Device PC-seitig einigermaßen zu debuggen.
> Also war da mal die Versorgung weg?
Das lässt sich doch recht einfach herausfinden. BrownOut Reset arbeitet
zuverlässig und nach einem BrownOut wird main() aufgerufen. Im main()
kannst du auch das RCON Register abfragen.
Hast natürlich recht. Der Fehler war ein Dummer: Ich hatte den Watchdog timer nicht wegkonfiguriert. Das stand tatsächlich im RCON. Debuggen über USB + SimpleHIDWrite ist sehr angenehm, wie ich eben feststellen durfte :-) Hier sind zu viele Dinge gleichzeitig neu für mich. Danke für die Hilfe! Langsam wird's
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.