Hallo, Hab das Problem, dass bei mir ein PIC16F876 erst dann läuft, wenn ich ihn resette. Für meine Anwendung muss der aber laufen, sobald der Saft angeht. Bei anderen PICs (84, 88, 648) geht das tadellos. Wenn ich im reset-zustand (reset=0) anschalte, und reset loslassse (reset=1) funktioniert es auch. Ich dachte, könnte das selbe durch einen Tiefpass mit Kondis aller art lösen, dat mag er aber nicht :( jemand Rat ? danke und grüße, hal9000
Das Datenblatt ist Dein Freund, einfach mal nachsehen, ob der überhaupt ein internes Reset hat. Eventuell müssen Fuse Bits dafür gesetzt werden. AVRs haben ein internes Reset, welches man sich voll an die Backe schmieren kann. Erst wenn man zusätzlich das Brown-Out-Reset einschaltet, funktionierts wirklich. MCs ohne internes Reset können durch ein RC-Glied (10k, 10µF) resettet werden, wenn mindestens 10s der Saft weg war. Aber für 100% Zuverlässigkeit brauchen die einen Reset-IC. Peter
das datenblatt ist leider mal überhaupt kein freund :( habs eben sogar versucht den Reset mit Komparator & RC zu schalten, oder gar Digital mit einem anderen PIC, das interessiert ihn alles scheinbar nicht. Erst wenn er da kleine Oszillationen bekommt (geprellter Taster, oder wenn ich zitternd das Kabel an Masse lege) geht das... jetzt bin ich mehr als verwirrt :( kaputten uC schließe ich aus...
Dann gibt es noch die Möglichkeit, daß Dein Quarz nicht richtig anschwingt und erst durch mehrere Pulse irgendwie in Gang kommt. Ich glaub, die PICs habe auch verschiedene Fuses je nach Quarztyp. Oder Variablen werden nicht richtig initialisiert und erhalten erst durch Störpulse zufällig richtige Startwerte. Hat denn Dein PIC ein Brown-Out-Reset und hast Du es aktiviert ? Peter
hast du den "Power up timer" eingeschalten? der verzögert dir nach anlegen der betriebsspannung den start des PICs um 72ms - vielleicht hilft es ?
Ich würd mal die Startup Time hochsetzen, vllt steigt deine Spannung nicht schnell genug.
Hab jetzt sowohl Brownout detect sowie powerup timer ausprobiert, bringt beides nix .... das mit den variablen schließ ich auch aus, ist momentan sogar nur ein billiges LED-blink-testprogramm, um erstmal dieses problem zu lösen. Quarz hab ich auch mal mit Keramikresonator und mit nen richtigen Quarzoszillator ausgetauscht, hilft auch nicht... und ich mein mit anderen PIC-typen funzt es ja... HMMMM....
RC-Glied schon probiert? Wenn garnix geht mal nen neuen nehmen. Oder n REset-IC.
jap, bei RC auch selbes Phänomen. Und hab schon 5 PICs reingelegt, daran kanns auch nicht liegen... apropos, weiß jemand, wie man im CC5X compiler in den configs den internen oszillator wählt ? #pragma config FOSC=INTRC oder so geht leider nicht... der mag scheinbar nur HC, XT und RS...
Falls Du den internen Oszillator im 16F876 benutzen willst, der hat keinen. Siehe Datenblatt Seiten 145 und 146.
schreib doch mal deine picconfiguration hier rein. den funktionscode kannst ja vorerst aussparen. und um das configword zu setzen könntest du alternativ ja auch cc5x in mplab einbinden und dort das configword im menü einstellen. zum debuggen ist die umgebung auch zu empfehlen =).
uaaaa, danke für den Hinweis auf die Config, auch wenn das völlig ominös ist, hab das problem gelöst: habe zuvor meine Config immer nur mit "#pragma config WDTE=off" usw gesetzt. Schreibe ich diese binär, (wo wiederum meine 88er und 648er mucks machen) und setze dort noch irgendwelche codeprotection-bits, geht es!! aber was zum teufel hat denn codeprotection damit zu tun, dass der pic nicht bei powerup startet.... egal, danke an alle!
Das schreit aber danach, dass dein Compiler nicht auf den richtigen PIC eingestellt ist. Haben denn die anderen PIC's, - die, bei denen es funktioniert (84, 88, 648) - identische Config-Bits wie der 876? Könnte ja sein, das du bei falscher Controller-Wahl in CC5X z. B. mit #pragma config WDTE=off beim 867 das Config-Bit für Power-Up-Timer auf "0" setzt, und nicht für den WDT, wie du eigentlich wolltest?!
hm also der power-up timer hatte zwar keine wirkung, aber das mit den nicht identischen Config-bits ist interessant, vorallem wenn man sie Binär schreibt. thx4 tip...
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.