PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : USB CDC



munkl
14.12.2006, 12:23
Hey,
Ich möchte gerade mit einem PIC18F2550 ein USB - I2C Interface machen. USB will ich mit CDC betreiben. Jedoch habe jedes mal wenn ich den PIC starte kann es teilweise zuerst connecten und so aber danach disconnected das device (oder der pc dem device) sofort wieder. weis jemand wieso dies passieren könnte? der pic ist nur für sehr kurze zeit mit dem pc connected. dies ist auch der fall bei den CCS beispielen (ex_usb_serial.c).
Danke im voraus

BlinkyBill
14.12.2006, 13:04
Hallo,

gute Idee...

Hatte ich schon mal vor, aber noch nicht die Zeit dazu.

Die Beispiele vom CCS funktionieren aber normalerweise gut...

Die Beschaltung stimmt ? Ich hatte das auch schonmal, und dann hat sich herausgestellt, dass ich die Buchse falsch angeschlossen hatte ;o) *kopfhau*

Hast du die Fuse-Bits alle richtig gesetzt ??? Musst ja im MPLab trotz den beispielen von CCS machen.
Quarz 20Mhz, PLL auf 48(oder 96??), WDT aus, USB voltage regulator enabled (Kondensator an Vreg auch dran?)

Das das device am PC einen Ton ausgibt wie beim connecten, bedeutet nicht, dass die Verbindung steht... Enumeration ? Nix, oder ?

Ich häng mal ne HEX dran, die ist auch für den 2550 und müsste sich als Maus Melden. und durch zappeln an RB4...RB7 sollte sich der Zeiger bewegen... (Quadratursignal)

Auch hier unbedingt auf korrekte Configuration Bits achten.


Hast du schon ne Idee, wie Du die Daten dann am PC verwenden/verarbeiten etc. willst ???
Bin im Moment auch dran, mich bissl mehr mit eigenen Programmen am USB-PIC zu befassen, aber komm da zur Zeit nich so dazu...

Gruß

munkl
14.12.2006, 13:48
die beschaltung sollte stimmen, da ich auch schon HID devices auf dieser Hardware laufen gehabt habe, und diese gehen.
die Fuses sind auch richtig, da ich mit dem ex_usb_serial.c austestete konnte ich auf der rs232 schnittstelle "debugen". dort kommt, dass es connected, enumerated und danach wieder disconnected... und das innerhalb keiner sekunde...
ich habe mal noch ein mail an ccs geschriben, um die zu fragen ob sie mir eine lösung wissen... -> warten ;-)
ich nehme an das es nicht die firmware des pics sondern eher was mit dem pc zu tun hat. aber ich kann den fehler nicht finden... der treiber wird erkannt und geladen. (treiber von microchip)

auf dem pc werde ich wahrscheindlich eine art hyperterminal machen. dort kann man dann einstellen ob alle messages, die auf dem i2c bus "rum fliegen" ( ;-) ) angezeigt werden oder nur die, welche an eine bestimmte addresse gehen. es können auch messages auf den i2c bus geschriben werden. das sind meine vorstellungen, was machbar ist sehe ich sobald ich ans delphi komme ;-)

zeit ist bei mir nicht das problem ;-) 8 stunden am tag arbeite ich und das meiste geht für solche projekte drauf ;-) elektronik lehrling zu sein ist was schönes =p

gruss

BlinkyBill
14.12.2006, 13:57
Hmm,

dann weiss ich im Moment auch nix... Hab nur das Ex_usb_serial auch nicht zur Hand, um mal zu schauen, was da für Möglichkeiten existieren,dass der PIC "auflegt"...

Ja, nutze diese Zeit gut... Ich hab´s leider ein wenig zu kurz kommen lassen... Bereue ich irgendwie.
Kannst du dir da lustig selbst was aussuchen ? Oder läuft da schon irgendwie n Projekt dazu ?

Aber klingt vom Prinzip her nicht schlecht... Sowas wollte ich auch machen... Aber die Lehrzeit iss bald um, und dann iss das eh nimmer. Naja, werds daheim wohl weitertreiben müssen. Ist zu interessant, um es aufzugeben.

Welche Version vom CCS hast du denn ?

munkl
14.12.2006, 16:02
ich hab noch 1.5 jahre bis ende lehre und ja werds wohl gut nutzen ;-) kann so zimlich machen was ich will bis nexten sommer und dann sehe ich wie es neu rauskommt... (habe dann wieder abteilungswechsel)...
es läuft nicht wirklich ein projekt dazu... mir wurde beauftragt ein i2c - usb interface zu machen und ich dachte, dass ich dies auch selber benützen könnte...
version von ccs is pch 3.224... original versteht sich ;-) für das is die lehre auch noch gut ;-) ccs, borland delphi 7 pro, protel alles gratis ;-)

munkl
14.12.2006, 16:24
ach noch den auszug aus der rs232 verbindung beim ex_usb_serial.c :



CCS CDC (Virtual RS232) Example
PCH: v3.224
USB connected, waiting for enumaration...

USB disconnected, waiting for connection...

USB connected, waiting for enumaration...

USB disconnected, waiting for connection...

USB connected, waiting for enumaration...

USB disconnected, waiting for connection...

USB connected, waiting for enumaration...

USB disconnected, waiting for connection...

BlinkyBill
15.12.2006, 08:28
Hm, in dem Fall keine Enumeration... *grübel*

Ich muss mal schaun, ob ich am WE dazu komme, das mal zu testen... Hab leider im Moment nicht die Möglichkeit dazu.

Und die Hardware ist wirklich unverändert zu dem HID?

Hast du auch mal die CDC-Firmware von der Microchip seite getestet ?
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2124&param=en022625
Da kannst auch mal die application note dazu anschauen. Vielleicht hilfts ja.

Auch mal nen anderen PC getestet ? Anderen USB-Port ? Oft zeigen die nur beim ersten connect informationen an...

Und sonst mal schaun, ob ccs was raus lässt ;) Die haben ja auch ein Forum, vll findest auch dort was zu den Beispielen ?!

wie, dafür iss die Lehre gut ? Bekommst du die Lizenzen für dich vom Betrieb bezahlt ? Oder halt in der Ausbildungsstätte vorhanden ?

munkl
15.12.2006, 09:23
ja nur das ccs forum ist alles auf englisch und es hat nicht sehr viel über das thema usb... auch google findet nichts über mein problem... es scheinnt mir als wär ich der erste der dies hat ;-)
sind 2 pcs getestet... die hardware ist die genau gleiche...
hoffe darauf das ccs mir eine antwort schreibt... sonst im ccs forum mal nachfragen...
die lizenzen sind solange gültig wie ich in der lehre bin... danach darf ich sie offiziel nicht mehr benutzen... und ich darf sie nur für die ausbildung benutzen ;-)

das dieses mal keine enumeration stattgefunden hat ist "zufall"... teilweise kanns nach dem ersten connecten und teilweise nicht... aber diese paar mal connecten und disconnecten hab nicht mal ich ausgelöst... ich habs nur angeschlossen und dies passierte innerhalb von ner sekunde oder so alleine...