Habe mir mal vorgenommen, bisschen mit USB rum zu experimentieren ... Also machte ich mich auf die Suche nach entsprechendem Code und wurde nahezu erdrückt, von der Menge der Informationen ... Die Anleitungen auf SPRUT bekomme ich auch nicht zum laufen ... nun meine Frage: Ich brauche bzw. suche sowas wie ein Grundgerüst für die Umsetzung 18F2550 als USB Device.. was ich später mit diesem Divece machen will, will ich dann selber als Code ergenzen (übungshalber erst einmal paar LED's ein/ausschalten ala SPRUT) .. Aber ich steige einfach nicht durch ... so viele INCLUDES aus x unterverzeichnissen ... ect ... hat wer nen Link oder ne eigen gebastelte "grundausstattung" für die USB device entwicklung?
Schau Dir mal diesen Beitrag an: http://www.mikroe.com/forum/viewtopic.php?f=88&t=26891&hilit=usb Ungefaehr in der Mitte findest Du ein komplettes - getestetes! - Demoprogramm von mir - d.h. sowohl Mikrocontroller-Firmware als auch das zugehoerige Programm fuer den PC. Sollte ohne Aenderungen lauffaehig sein. Allerdings ist der Mikrocontroller-Compiler MikroC von Mikroelectronika, nicht C18 von Microchip. Wolfgang
Hallo Wolfgang, hallo Gero, ich bin auch mit Mikroe, allerdings in Basic, unterwegs. Diese Compiler nehmen Einem die Arbeit mit den HID-Kram ab. Kann ich nur empfehlen, inzwischen bin ich auf dem PIC32-Compiler unterwegs. DAS SIND SPITZEN IC'S; MIT VIEL ROM und RAM. Eine meiner Anwendungen sind hier: http://www.ip-symcon.de/forum/f19/usb-funktions-kontroller-modul-8286/index2.html#post79881 Und auf Youtube unter http://www.youtube.com/watch?v=qQIJpl2lpf8 Gruß Helmut
Am Einfachstens ist es mit der Firmware vom Hersteller. Bei Microchip bekommst Du den kompletten USB Stack frei Haus mit unzähligen Beispielen. Dazu brauchst Du: - den Stack MCHPFSUSB (Download bei Microchip) - die IDE MPLAB (Download bei Microchip) - den C18 Compiler (Download bei Microchip) Programmiert wird das Ganze über die ICSP-Schnittstelle (hierzu findest Du hier im Forum die Beschaltung). Alles auf einem Steckbrett aufbauen, eine Demo auf den PIC laden und erst mal testen, ob es funktioniert. Falls nein, dann stimmt Dein Hardwareaufbau nicht. Falls ja, kannst Du das Projekt soweit kürzen, bis nur noch der Core übrigbleibt. Allerdings, wenn Du Dich ernsthaft mit USB beschäftigen möchtest, dann empfehle ich Dir, den Stack von Grund auf selber zu programmieren. Stichworte hierzu: Enumeration, Control-Transfer, SETUP-Packet. Das Buch von Jan Axelson hilft dabei sehr gut. Gruß Potter
langsam verliehr ich die Lust :( .. nix funktioniert .. hab mir die MCHPFSUSB LIB runter geladen und bin dann nach spruts anweisungen vorgeggangen... davon abgesehen, das die Ordnerstrukturen anders sind, als beschrieben, findet er mal die eine, mal die andere datei nicht ... egal welche demo ich auch teste ... manchmal klappt es sogar mit dem dateien, dann schmeißt er mir fehlerhafte deklarationen raus .. oder ich soll eine datei anpassen usbcfg ... die ich aber nirgends finde :( alles echt deprimierend
Moin, ich habe die USB Device - CDC - Serial Emulator Demo erfolgreich auf dem 18F2550 zum laufen bekommen. Es sind nur einige Änderungen vorzunehmen da der Code u.a. für den 4550 ist. Nach der Anleitung von Sprut bin ich auch nicht zum Ziel gekommen da MC offenbar eine neuere Version der Lib eingestellt hat. Zum tiefergehenden Verständnis suche ich noch ein Tutorial, welches auf die Demos von Microchip aufsetzt um diese in eigene Projekte einzubinden. Leider habe ich keine Anleitung dazu gefunden und der Quelltext ist nur sehr dürftig kommentiert.
ja, genau ... mit dieser hatte ich mich dann etwas ganauer auseinander gesetzt, da sie der sprut anweisung am nahesten kam. aber ich habe wohl im gegensatz zu dir, nicht alle nötigen änderungen vorgenommen.
Hallo, ich habe meine ersten Versuche genau wie Jens gemacht, und auch das Demo von Microchip vom 18F4550 auf 18F2550 umgebaut. Bei Sprut gibt es auch ein interessantes Projekt, einfach mal anschauen: http://www.sprut.de/electronic/pic/projekte/usb4all/usb4all.htm Viel Erfolg.
Hi Leuts, es wird wahrscheinlich so sein wie's immer ist. Der Code würde zwar gehen, jedoch findet der Linker wohl den Kram nicht... echt traurig. Frage mich ob das bei Atmels IDE auch so gruselig ist. Ich bin auf der Suche nach nem USB-Board auf 2550er Basis, aber möglichst kein DIP (wie das Olimex-Board). Auch keinen 16er, besser 18er (denke mal die sind in C einfacher zu handhaben, könnte mich aber auch täuschen, hab schon lange nix mehr mit den 16ern gemacht). Jibbed da was Nettes?
An den Threadstarter: Was ist aus deiner PIC DCF-Uhr geworden? Läuft sie mittlerweile? Wie gestaltest du das USB-mäßig auf der PC-Seite? Verwendest du was fertiges? Ich bin nicht so der PC-Programmierer, hab zwar mal mit der Express-Edition rumgeeselt aber habs dann irgendwann sein lassen. Knuffig wäre irgend ein Plugin für Open-Office oder irgendwas Einfaches, Konfigurierbares... wo man ein selbergemachtes Bildchen anklickt und damit Bit schaltet. Gibt's so was irgendwo?
Hi Joachim. Joachim ... schrieb: > Hi Leuts, > es wird wahrscheinlich so sein wie's immer ist. Der Code würde zwar > gehen, jedoch findet der Linker wohl den Kram nicht... echt traurig. > Frage mich ob das bei Atmels IDE auch so gruselig ist. Wo hast/hattest du denn konkret Probleme? So hilft dein Einwurf dem Gero Nimo ja nicht wirklich weiter. > Ich bin auf der Suche nach nem USB-Board auf 2550er Basis, aber > möglichst kein DIP (wie das Olimex-Board). Auch keinen 16er, besser 18er > (denke mal die sind in C einfacher zu handhaben, könnte mich aber auch > täuschen, hab schon lange nix mehr mit den 16ern gemacht). Jibbed da was > Nettes? 16er PICs mit USB stehen ja wohl sicher nicht zur Diskussion, zumal es von den beiden verfügbaren 16er Chips nie eine Version mit Flash gegeben hat. Mal ehrlich, wer will heute beim Entwickeln noch mit dem UV-Löscher herum wursteln, wenn es nicht unbedingt sein muss. Ob es was Nettes gibt? - Frag doch mal die Suchmaschine deiner Wahl nach "nett+board+PIC+USB". :-D - Na gut, besser ohne "nett". ;-) Hab ich zwar nicht, sieht aber nett aus: http://www.diolan.com/pic/demoboard.html SCNR :-P Schönen Tag noch.
>Wo hast/hattest du denn konkret Probleme? Najaaah... C18-Manual bei aktueller V8.63 von 2005(!), inc-Pfade stimmen nicht, C18 liegt defaultmäßig auch wo anders, compilieren geht hinten und vorne nicht, dann macht man selber noch einen Fehler (oder mehrere)... ein hartes Brot für Einsteiger. Ich hab zwei volle Abende gebraucht bis alles lief. >16er PICs mit USB stehen ja wohl sicher nicht zur Diskussion Ich hab keine Ahnung ob's in der Richtung überhaupt was Sinnvolles gibt/gab.
Ich habe eben das Sprut usb4all V7 auf einem 18F4555 zum Laufen gebracht. Toll was der Sprut da zur Verfügung stellt ! Erst das Original HEX, dann auch selber compiliert. Wichtig ist wirklich die Pfade anzupassen, das ist etwas mühselig, aber nach 15 Minuten suchen und einige Zeilen auskommentiert die er meinte nicht zu kennen läuft es jetzt auch. Der Compiler sagt ja welche Dateien ihm fehlen und im Projekt müssen die Pfade dann halt angepasst werden. Einfach nach den Dateien suchen und die Angaben im Projekt anpassen... ja sagt sich so einfach....
Nach kleiner Pause wieder da.. >An den Threadstarter: >Was ist aus deiner PIC DCF-Uhr geworden? Läuft sie mittlerweile? Das DCF77 Modul lief bzw. läuft nun einwandfrei.. hatte noch einige änderungen in der abfrage vorgenommen und den Codeaufwand und sync-zeit zu verkleinern .. das signal ist hervorragend, habe nur sehr selten (Wetter) empfangsprobleme ... habe das DCF77 modul von reichelt ... kann ich hiermit nur empfehlen ... Leider hab ich dann meinen letzten 18f4520 verheizt :( falsch aufs Board gesetzt -> kurzschluss -> defekt ... programmieren kann ich ihn lustiger weise noch ... Nach dem DCF erfolg kamen erstmal neue Probleme mit Interrupts auf, die ich aber bis dato nicht lösen konnte, wegen def. PIC ... Interrupt umschaltung ect ,,,, hab ich in nen anderen Thread erörtert .... So .. zurück zu USB ... ich habe dieses Project erstmal nicht weiter verfolgt, da es ja nur ein lückenfüller war umd die zeit zu überbrücken, bis mein neuer 18f4520 da is ... Auch weitere versuche, einen standard serial emu über usb zu realisieren, schlugen fehl ... habs letztendlich aufgegeben und werde dieses project erst wieder aufnehmen, wenn ich USB benötige ... momentan hat wieder mein Aquarium/terarium-steuerung mit dcf77 vorrang .. sind nur noch nicht alle teile da ... Das mit dem verheizen meiner PIC's passiert(e) mir leider nicht zum ersten mal .. manchmal, bzw. beim 44Pin'er bekomm ich einfach keine programmierverbindung hin (inCircuit) ,,, muss den immer von meinem breadboard abstecken -> in den programmer rein (ist ein einfach über serial angeschlossender brenner) -> brennen -> wieder aufs Board .. und dann passierts ... um ein raster versetzt -> AUA^^ .. vllcht liegt es am flachbandkabel, das der Brenner den PIC nicht findet ... oder Kabel is zu lang ... ich weiß es nicht
>Kabel is zu lang
Mein erster Brenner war auch n Selbstbaubrenner, ich konnte machen was
ich wollte, mehr als 25cm Kabellänge war nicht drin. Einmal ging mir der
Brenner aus unerklärlichen Gründen kaputt. Ehrlich gesagt: Ich habe an
diese Stelle keine Lust mehr auf Selbstbau. Hab n ICD3 gekauft,
zuverlässig und pfeilschnell.
Ich mach mittlerweile kaum noch was auf m Steckbrett (außer
Analog-Forschung), mittlerweile hab ich vier kleine Olimex Boards, die
sind ganz knuffig.
Gero Nimo schrieb: > suche sowas wie ein Grundgerüst für die Umsetzung > 18F2550 als USB Device Im Franzis-Verlag gibt es ein Buch zu USB-Devices mit dem 18F2550. Genauen Titel weiß ich grade nicht, steht bei mir daheim im Regal und kann ich später mal posten ;)
Joachim ... schrieb: > mehrere)... ein hartes Brot für Einsteiger. Ich hab zwei volle Abende > gebraucht bis alles lief. 2 Abende suchen und probieren sind doch ganz OK. >>16er PICs mit USB stehen ja wohl sicher nicht zur Diskussion > Ich hab keine Ahnung ob's in der Richtung überhaupt was Sinnvolles > gibt/gab. Ja, gab es schon: PIC 16C745 und 765 War aber nur Low-Speed und noch mit EPROM statt Flash. Man musste also zur Entwicklung die sehr, sehr teuren Packages mit Fenster verwenden, und mit UV löschen. Das mal als kleiner Ausflug in die Geschichte ... ;-)
mhh, ich werd wohl mal das beispiel von sprut nachbauen ,,, http://www.sprut.de/electronic/pic/projekte/usb4all/usb4all.htm sieht einfach aus und sollte meinen ansprüchen genügen ... mal sehe, wie es läuft
schade, dass du das DCF77 Modul nicht mit dem 2550 aufgebaut hast, das habe ich mir vorgenommen aber bis jetzt wurde es leider noch nix, da ich mich vor der Modul-Signalauswertung scheue Ich kann mich holgerw nur anschließen, das usb4all von sprut ist der hammer! USB anschließen und mitgeliefertes Testprogramm starten, einfacher gehts nicht. Ich bin gerade dabei mich dort einzuarbeiten und eine eigene PC-Steuersoftware in C zu schreiben. Wenn du ein eigenes Projekt machen möchtest, dann benutze doch das"USB-Interface-Beispiel". Ok, die Einrichtung ist wie schon erwähnt etwas aufwändig bis alle Pfade stimmen aber wenn es dann läuft, rennt es ohne Probleme.
>Ich bin gerade dabei mich dort einzuarbeiten und eine eigene >PC-Steuersoftware in C zu schreiben. Hi, das klingt ja super interessant, würde mich da vielleicht mit anhängen... halt uns aber auf dem Laufenden. In C? Nicht C++? Linux oder Win? Express Edition?
Tobi D. schrieb: > schade, dass du das DCF77 Modul nicht mit dem 2550 aufgebaut hast, das > habe ich mir vorgenommen aber bis jetzt wurde es leider noch nix, da ich > mich vor der Modul-Signalauswertung scheue ich kann dir kurz meine Ansätze erläutern, was das auswerten des dcf77 signals angeht... hardwareseitig leite ich das signal, mit vorgeschaltetem transistor auf die INT1 und INT2 eingänge ... INT1 = Interrupt bei sinkender Flanke, INT2 bei steigender. Timer1 läuft bei mir in 10ms takt ... 1. nach einschalten dauert es bis zu 20 sek. bis das dcf modul was sendet ,,, solange ist datenausgang auf LOW ... 2. sobald du die erste steigende Flanke empfängst (INT2) gehts los ... 3. du empfängst eine Sinkende Flanke -> timer1 auf 0 setzen -> Timer1 starten 4. du empfängst eine Steigende flanke -> timer1 stoppen -> wert auslesen und entsprechend deiner betaktung die MS ausrechnen 5a. signallänge rund 800ms -> ein HIGH wurde gesendet 5b. signallänge rund 900ms -> ein LOW wurde gesendet 5c. signallänge > 1500ms -> die 59. sekunde wurde erreicht ... 6. jedes Low bzw High schreib ich in ein Array 7. ich merke mir, wann die 1500ms signallänge war ... nach erreichen einer arraylänge von 60 ist lesevorgang abgeschlossen ... jetzt muss man nur noch die versetzung der bits umrechnen (wann kam das 1500ms signal -> das nächste signal war eig. Bit 1 (sek1) somit kannst du dir leicht die positionen für minuten stunden ect errechnen ... den BCD in brauchbare werte umwandeln ... fertig nach meiner methode dauert es genau 60sek, bis alle daten empfangen wurden ... nicht mehr und nicht weniger. am ende werte ich noch die parity bits aus + ob die daten relevant sind (stunden zw. 0 und 23 ... ect) wenn ja -> die DCF empfang beenden, ansonsten neustart --- in 9 von 10 fällen funktioniert es tadellos ... machmal verschluckt er bits aber seitdem ich auch die relevanz der daten auswerte, ist dieser fehler auch minimal ... nebenbei läuft noch ein zähler, der die versuche zählt ... nach 5 unbrauchbaren durchläufen bricht er die ganze routine ab und versucht es 1h später nochmal .. machr dann den sonstigen kram, aber ohne auf zeit-schaltungen einzugehen
So, bin wieder daheim und kann nun das Buch benennen falls es interessieren sollte (ich find es gut). Titel: USB in der Messtechnik Verlag: Franzis ISBN: 978-3-7723-5509-7 Leider hab ich mich etwas vertan was aber nicht unbedingt ein Problem sein sollte. Im Buch wird nicht der 18F2550 verwendet sondern der 18F4550.
Michael schrieb: > So, bin wieder daheim und kann nun das Buch benennen falls es > interessieren sollte (ich find es gut). > > Titel: USB in der Messtechnik > Verlag: Franzis > ISBN: 978-3-7723-5509-7 > > Leider hab ich mich etwas vertan was aber nicht unbedingt ein Problem > sein sollte. Im Buch wird nicht der 18F2550 verwendet sondern der > 18F4550. Sollte ansich kein Problem sein, da beide nahezu identisch sind ... der 4550 ist halt ein 44Pin'e rmit entsprechend mehr port/IO-Pins. werd mir mal die lektüre bei gelegenheit zu gemüte führen
Joachim ... schrieb: > In C? Nicht C++? > Linux oder Win? Express Edition? Sorry, wollte eigentlich nur in den Raum werfen, dass das usb4all viel potential hat. Ich habe mich für c# entschieden, da ich dort eine ansehnliche GUI ohne großen Aufwand "zusammenbasteln" kann. (Win, nicht die Express) Gero Nimo schrieb: > ich kann dir kurz meine Ansätze erläutern, was das auswerten des dcf77 > signals angeht... danke für den Überblick, klingt gut durchdacht motiviert mich dann doch demnächst ein paar freie Stunden in das Modul zu investieren :)
für die USB - Windowsanwendung werd ich, falls ich den 18f2550 mal zum laufen bekomme, eine Application mit hilfe von delphi schreiben. Aber soweit ist es noch lange nicht ... will erstmal mein terrarium-project beenden .. danach sollte eig. ein Home-Automation-projekt kommen .. vllcht zieh das usb project vor ...
Ich hab auch Sachen mit Delphi vor und schon Änderungen am Sprut Programm gemacht. Meld dich mal wenn du was vorhast, vielleicht kann man sich ergänzen. Im Moment versuche ich gerade über USB ein am 18F4455 hängendes LCD per I2C anzusteuern...
Holger W. schrieb: > Ich hab auch Sachen mit Delphi vor und schon Änderungen am Sprut > Programm gemacht. Meld dich mal wenn du was vorhast, vielleicht kann man > sich ergänzen. > Im Moment versuche ich gerade über USB ein am 18F4455 hängendes LCD per > I2C anzusteuern... yo, gern .. bissel brainstorming bringt immer was ... aber wie gesagt, dieses projekt dauert noch ... warte immer noch auf meine bauteile von reichelt, um mein derzeit. projekt beenden zu können ,,, und da muss ich auch erst noch paar offene fragen klären ...
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.