Hallo Leudz,
hab mal ein "kleines" Problem mit meinem PIC.
Hab ihm erfolgreich mit dem ART2003 NoPower ParallelPort-Programmer den
Sprut Bootloader aufgezwungen. Hat alles einwandfrei funktioniert.
Habe auch den passenden Treiber in WinXP installiert. Allerdings muss
ich den PIC ein paar mal ein- und ausstecken, damit USBOOT den überhaupt
erkennt (auch zu sehen an der Boot-LED). Hab dann nach einigen Ein-
Aussteckversuchen ein einfaches LED-Blink Programm draufgespielt.
Bootloader per DIP-Schalter deaktiviert und wieder an den USB-Port. LED
1 blinkt, wie auch programmiert, im Sekundentakt. Allerdings hörte diese
nach etwa einer halben Minute kurz (etwa 3 Sekunden) auf, dann blinkt
sie wieder. Die Blinkdauer verringert sich mit jedem "Neustart". Am Ende
blinkt sie etwa 4 mal und startet neu, blinkt 4 mal und Neustart...
Manchmal blinkt sie auch 1-2 Minuten durch, bis zum "Neustart".
Gleiches Spiel auch mit Holgi's- und HID-Bootloader.
Über ein USB-Ladegerät tut sich am PIC überhaupt nichts, auch Bootloader
nicht. Hab mal beide Spannungen gemessen: am USB-Port des Rechners
liegen (im Blink- oder Bootloaderbetrieb) ziemlich genau 5 Volt an,
wobei am Ladegerät 5,4 Volt liegen. Vielleicht hats damit zu tun.
Der Witz an dem Ganzen ist: vor etwa 3 Jahren habe ich schon einmal den
gleichen PIC auf die gleiche "Programmierweise" und der gleichen
Grundschaltung erfolgreich ohne Probleme programmiert um einen 4x4
LED-Cube mit Schieberegistern zu betreiben. Das sogar an dem selben
Ladegerät, als Stromversorgung, angeklemmt und damit keinerlei Probleme
gehabt.
Kann es sein, dass der aus irgend einem Grund immer resetet, oder hat
der einfach nen Hau? Macht mir den Eindruck, als würde sich etwas auf-
oder entladen, da die "Neustartzyklen" mit der Zeit immer kürzer werden.
Hat da jemand ne Erklärung für?
Schaltplan liegt oben an! Der PIC im Schaltplan ist allerdings von den
Pinbezeichnungen nicht identisch mit dem 2550, aber die Verdrahtung
stimmt. Hatte keinen 2550 bei Eagle gefunden.
Achso:
20Mhz-Quarz
#pragma config PLLDIV = 5
#pragma config CPUDIV = OSC1_PLL2
#pragma config USBDIV = 2
#pragma config FOSC = HSPLL_HS
#pragma config MCLRE = OFF
LG Armin
Armin R. schrieb:> Hatte keinen 2550 bei Eagle gefunden.
Sowas lässt sich in ein paar wenigen Minuten auch selber zeichnen. Falls
du interesse an dem korrekten Symbol hast, schreib mir eine Nachricht,
habe diesen für ein Projekt mal gezeichnet. Kann dir die Lib gerne
schicken.
Armin R. schrieb:> Hat da jemand ne Erklärung für?
Wie stehts mit deinen Fuse-Bits?
Watchdog & Brown-Out Reset deaktiviert?
Hi San Lue,
das korrekte Symbol ist mir ansich nicht soo wichtig. Hauptsache der
Chip ist aufm Platinenlayout richtig angeschlossen. Hatte das gleiche
Problem auch mit nem SMD-Spannugsregler, hab einfach ein anderes Teil
genommen und im Schaltplan "falsch" verkabelt.
Kannst mir die 2550-Lib aber trotzdem gerne mal zukommen lassen. Wie
schreibe ich denn ne PN?
Zum Thema Fuse-Bits, siehe Code unten!
Ändert aber auch nichts, wenn ich BOR und WDT auf ON stelle...
Ich denke auch nicht, dass es was damit zu tun hat. Ich hab ja die
selben Config-Einstellungen wie vor 3 Jahren genommen. Ausserdem hampelt
der ja auch mit dem Bootloader so rum: mal an, mal aus...
Allerdings ist mir beim erneuten Spannungsmessen aufgefallen, dass die
Spannung "beim Blinken" auf 4,98 Volt absinkt und "beim reset" wieder
auf 5,01 Volt hochgeht (am USB vom Laptop).
Hier noch meine "main.c" für die Blink-LED
Hallo,
schau dir mal die Lockbits der beiden PLL an (SLOCK und ULOCK) oder so
ähnlich. Oder alternativ das Programm vom FRC ohne PLL laufen lassen,
ohne USB.
Eventuell ist es ein "EMV"-Problem, so das sich die PLL aufstellt? Ich
hatte das mit einem PIC24 auf dem Breadboard schon einmal.
Die Spannung bei den LED hört sich erst einmal normal an, das sind ja
nur 3mV. Bei einem LED-Strom von 10mA wären das 300mOhm Innenwiderstand
des Ports. Das ist normal - so in dem Bereich liegen die üblichen
USB-Strombegrenzer (mit Stecker, Kabel dazu etc).
Es wäre aber sinnvoll, die Versorgung mit dem Oszi zu oprüfen.
Hilfreich wäre, wenn du einen Debugger hättest. Hast Du?
Nur so am Rande, wegen solchem "Delay Gewurschtle" hat man dem PIC Timer
verpasst. Ist alles viel eleganter dann. ;-)
Hi.
Sorry, meine Frau wollte kurzfristig mal eben übers Wochenende wegfahren
:-(
Hab den PIC aber endlich ans Laufen bekommen. USB-Kabel hatte
offensichtlich ne Macke. Hab mal einfach ein anderes Kabel genommen und
siehe da, er läuft rund.
Allerdings ist mir aufgefallen, dass mir jedesmal der Bootloader
überschrieben wird, wenn ich meinen Code mit dem PICDEM-Tool da reinhau.
Hab auch schon folgenden Code und das entsprechende lnk-File
ausprobiert, ändert aber nichts. Haut mir immer noch den Bootloader
raus:
1
externvoid_startup(void);
2
#pragma code _RESET_INTERRUPT_VECTOR = 0x000800
3
void_reset(void)
4
{
5
_asmgoto_startup_endasm
6
}
7
#pragma code
8
9
#pragma code _HIGH_INTERRUPT_VECTOR = 0x000808
10
void_high_ISR(void)
11
{
12
;
13
}
14
15
#pragma code _LOW_INTERRUPT_VECTOR = 0x000818
16
void_low_ISR(void)
17
{
18
;
19
}
20
#pragma code
Gibts da nen anderen Trick? Komischerweise hatte ich dieses Problem vor
3 Jahren auch nicht.
Ausserdem wird RB5 nicht als (LED)Ausgang geschaltet (keine Spannung am
Port selbst), obwohl sie laut Code an- und ausgeschaltet wird und
LVP=OFF ist. Oder muss das an sein?
Habt ihr vielleicht auch noch nen Tip?
ACHSO:
@Somebody123
Externen 7805 hab ich probiert, aber auch da hat der PIC keinen Mucks
gemacht. Nur über Rechner-USB und dabei gesponnen.
Oszi hab ich leider keins.
@Carsten M.
Debugger hab ich leider auch keinen und mit den Timern hab ich mich
bisher noch nicht beschäftigt, wäre ja mal an der Zeit ;-)
Gruss Armin
Armin R. schrieb:> Ausserdem wird RB5 nicht als (LED)Ausgang geschaltet (keine Spannung am> Port selbst), obwohl sie laut Code an- und ausgeschaltet wird und> LVP=OFF ist. Oder muss das an sein?> Habt ihr vielleicht auch noch nen Tip?
Wo wird denn bitte in deinem Code RB5 benutzt? Der einzige PIN der laut
deinem Code verwendet wird ist Pin 7 des PORTB.
Oh, hatte ich vergessen zu erwähnen...
San Lue schrieb:> Wo wird denn bitte in deinem Code RB5 benutzt?
Ich habe mittlerweile mal ein kleines Lauflicht auf den B-Ports
programmiert.
Die LEDs sind wie im Schaltplan ganz oben angeklemmt! Nur die LED an RB5
will nicht leuchten, sie ist aber in Ordnung. Es kommt gar keine
Spannung am Pin an. Deswegen meine Vermutung, dass es was mit dem LVP zu
tun hat.