Hallo, ich habe folgendes Beispiel von Sprut gebaut: http://sprut.de/electronic/pic/8bit/18f/programm/usb2550/usb2550.htm Wenn ich das Device dann an einen PC anschließe wird es auch erkannt und ich kann den Microchip Treiber installieren. Jedoch meldet sich das Device ständig an und wieder ab. Die Firmware habe ich auch mal geändert, so dass beim initiallisieren die LED an RB0 leuchtet. Diese erlischt auch während das Device nicht erkannt wird. Ich habe dies an mehreren PCs getestet. Das An- und Abmelden tritt auch bei nicht installiertem Treiber auf. Das Deivce ist maximal 10Sekunden verbunden und funktioniert in dieser Zeit auch... Woran könnte das liegen? grz Monkey
>Woran könnte das liegen?
An einem aktivierten Watchdog zum Beispiel.
Watchdog ist deaktiviert... siehe hier: /** Configuration ********************************************************/ #pragma config PLLDIV = 5, CPUDIV = OSC1_PLL2, USBDIV = 2, FOSC = HSPLL_HS #pragma config PWRT = ON #pragma config BOR = OFF #pragma config VREGEN = ON //USB Voltage Regulator Enable: #pragma config WDT = OFF //Watchdog Timer: #pragma config MCLRE = ON //MCLR Enable: #pragma config PBADEN = OFF //PORTB<4:0> pins are configured as digital I/O on Reset #pragma config LVP = OFF //Low Voltage ICSP: Das Intervall beträgt auch immer recht genau ~2 Sekunden...
ich hatte das Problem auch schon 2 mal gehabt: 1. kontrollier nochmal die Lötstelle am Reseteingang des Pic 2. Die im Schaltplan angegebenen 100nF an Vusb kommen mir sehr klein vor, ich hatte 200nF ( Datenblatt 220nF) benutzt und er meldete sich ab und zu ab. Nachdem ich 300nF eingesetzt habe läuft er nun ohne Probleme.
Habe jetzt 200nF und einen 4MHz Quarz... Damit geht es jetzt so halb... 4 LEDs an RB0 - RB3 und eine LED an RB7 kann ich anschalten. Sobald eine LED an RB5 angeschlossen wird (ohne RB5 auf High zu setzen) meldet sich das Device ab. Alle 8 ausgänge kann ich auch nicht gleichzeitig schalten. Könnte es sein, dass Spannung/Strom nicht ausreicht?
Durchaus kann es am Stromverbrauch liegen, USB-Ports liefern um die 100mA. Damit die 500mA liefern, muss der Treiber das "anfordern". Benutzt du USB an nem Computer oder an nem Laptop? Manche Laptops machen da gerne mal Probleme. Schalte mal einen USB-Hub mit eigener Spannungsversorgung dazwischen, dann findest zu zumindest raus, ob's am Stromverbrauch liegt.
Habe es eben mal an einem Desktop-PC getestet. Da läuft es viel besser... Ich lasse die LEDs an RB4-RB7 blinken. Eine LED ist fest an RB7 eingelötet. Und dann schalte ich eine LED an RB4-RB6. Am Laptop keine Chance, nicht mal RB7 blinkt. Nur ganz kurz, dann abmelden und anmelden. Am Desktop-PC geht das schon besser. LEDs an RB4 und RB6 funktionieren zusammen mit LED an RB7. Device meldet sich nur selten ab. Sobald ich aber eine LED an RB5 hänge meldet sich das Device sofort ab... Als ob das Device jedesmal ein Reset macht... Ich bekomme an RB5 auch keine LED alleine zum leuchten, woran kann das liegen?
Häng nochmal zusätzlich einen grösseren C (10 evtl. auch 100 µF mikro) an VDD/VSS, der puffert Deine LEDs. Manchmal hilft auch ein C mit 1 nF (nano), wenn ganz kurze Spikes auf der Leitung sind. Ich würde die Schaltung auch grundsätzlich dahingehend modifizieren, dass ich zwischen VBUS und den Rest der Schaltung eine kleine Induktivität setze, meist 10 µH (hat sprut bei anderen USB-Schaltungen auch gemacht) und ggf. in D+ und D- je einen 27R oder 68R einbaue.
Also, bei einer LED an RB7 braucht das Ding ~37mA. Wenn ich das Meßgerät in Reihe schalte um den Strom zu messen funktioniert das auch am Laptop! Ohne Meßgerät keine Chance... (am Laptop) 100uF an VDD/VSS haben nichts gebracht.
> Wenn ich das Meßgerät in Reihe schalte um den Strom zu messen > funktioniert das auch am Laptop! Das Messgerät wirkt wie eine Induktivität im Zulauf, siehe Beitrag von tt4u
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.