Ich habe hier eine Schaltung, die mit einem PIC 16F876 bestückt wird.
Sie wird mit einem 8MHz-Quarz betrieben.
http://usuaris.tinet.cat/fmco/dccgen_en.html
Damit ich den Kontroller programmieren kann, habe ich das Programm
"IC-PROG"
installiert und mir einen sog. JDM-Programmer gebaut.
Es ist das erste Mal, daß ich mit einem PIC arbeite und daher habe ich
folgende Fragen:
1. Wie muß ich den Oszillator einstellen, damit er mit einem externen
Quarz von 8MHz arbeitet? LP, XT oder HS?
(RC scheint der interne Oszillator zu sein).
2. Wie müssen für oben genannte Bedingungen die Fuse Bits stehen?
Das Datenblatt ist mir nicht so ganz verständlich und ich habe bzw.
brauche diesen Kontroller nur einmal und will ihn nicht so flashen,
daß ich mich aus Versehen aussperre.
MfG Paul
Paul Baumann schrieb:> 1. Wie muß ich den Oszillator einstellen, damit er mit einem externen> Quarz von 8MHz arbeitet? LP, XT oder HS?> (RC scheint der interne Oszillator zu sein).
HS, steht aber eigentlich verständlich im Datenblatt. Wenn Du was
andres einstellst braucht er halt mehr Strom.
Wichtig is die Einstellung hinsichtlich des verwendeten OSC: interner
RTC, externer Quarz o. Keramikeresonator, ext. RTC, extern erzeugter
Takt (ohne Zutun des µC).
Paul Baumann schrieb:> Das Datenblatt ist mir nicht so ganz verständlich und ich habe bzw.> brauche diesen Kontroller nur einmal und will ihn nicht so flashen,> daß ich mich aus Versehen aussperre.
Keine Panik aus nem Pic kannste Dich nich wirklich aussperren :)
Gruß
Manfred
Paul Baumann schrieb:> 1. Wie muß ich den Oszillator einstellen, damit er mit einem externen> Quarz von 8MHz arbeitet? LP, XT oder HS?
HS
> (RC scheint der interne Oszillator zu sein).
Stimmt.
>2. Wie müssen für oben genannte Bedingungen die Fuse Bits stehen?Paul Baumann schrieb:> Das Datenblatt ist mir nicht so ganz verständlich und ich habe bzw.> brauche diesen Kontroller nur einmal und will ihn nicht so flashen,> daß ich mich aus Versehen aussperre.
Kann eigentlich nicht passieren. Du kannst per ICSP doch immer wieder
neu schreiben, auch die Config-Bits (Fuses).
für 8 MHz Quarz ist die Einstellung HS
Aussperren geht bei PICs (fast) nicht
JDM-Prommer sind eigentlich "für die Katz", aber für ein einmaliges
Experiment akzeptabel, JDM läuft aber über die RS232 und funktioniert
NICHT an USB-seriell-Umsetzern.
Die Fuses spielen dafür fast keine Rolle, stell die so ein, wie sie für
das Programm vorgegeben sind. Allerdings braucht man meistens keinen WDT
und keinen BODEN (Brownout), aber LVP MUSS unbedingt weg (sonst sperrst
Du Dich tatsächlich aus). WRT ist der Schreibschutz für das Flash. PWRT
ist ganz sinnvoll, dann wartet der PIC nach dem Einschalten erst mal
70ms, bevor er losläuft.
@Manfred
Danke für die Auskunft. Ich habe das Datenblatt von Microchip
heruntergeladen und darin nach dem Stichwort "Oscillator" suchen lassen.
->kein Treffer.
Soll ich die Fuse-Bits so stehen lassen, wie im Bild oben?
Das ist die Standardeinstellung nach dem Start von IC-prog.
WDT wird wohl der Watchdog-Timer sein.
BODEN der Brown-Out Detektor
aber was PWRT, LVP, CPD und WRT sind, finde ich auch nicht.
MfG Paul
Oh, wir haben uns überschnitten....
Danke auch an Loonix und Usuru.
Ja, in dem Link zur Schaltung hat der Verfasser nur die .hex-Datei
angegeben, aber keine Fuse-Einstellungen. Deshalb fragte ich Euch.
Ich habe hier noch einen richtig "guten" Rechner mit 2 "echten"
seriellen Schnittstellen, da geht es noch anständig.
Na, da will ich den kleinen Kerl mal mit 13 Volt Programmierspannung
erschrecken...
;-)
MfG Paul
Hallo Paul
Du hast den DCCGen gebaut?
Kannst Du mir eine Einkaufsliste geben, wo ich die Teile bekomme und
was Du genommen hast?
Hast Du noch eine Platine übrig?
Ich muß unbedingt noch den Source Code besorgen, weil ich das um
XPressnet erweitern möchte. Dann kann ich eine Meldung an Zentrale/PC
schicken, damit die PC Software weiß, was ich am DCCGen geschaltet habe.
P.S. Den PIC kann ich Dir brennen, wenn es nicht funktioniert...
Ich denke mal, man braucht keine Fuses anzugeben, da das alles im Hex
File integriert sein sollte.
Danke Thomas
Paul Baumann schrieb:> Danke für die Auskunft. Ich habe das Datenblatt von Microchip> heruntergeladen und darin nach dem Stichwort "Oscillator" suchen lassen.> ->kein Treffer.
??????
Also das man sich über all zu Viele Treffer im Datenblatt, mit dem
Suchbegriff "Oscillator" beschweren könnte ist mir verständlich.
Aber damit gar kein Treffer zu haben ist auch ne Kunst :D
mfg
Manfred
usuru schrieb:> aber LVP MUSS unbedingt weg (sonst sperrst> Du Dich tatsächlich aus).
NEIN! Zumindest zum MUSS!
Man kann sich beim PIC (fast*) nicht aussperren - weder versehentlich
noch Absichtlich. Und schon gar nicht mit der LVP Fuse.
LVP bedeutet ja LowVoltageProgramming und ermöglicht das Programmieren
des Pics OHNE erhöhte Programmierspannung. ISt prinzipiell also eine
Vereinfachung...
Allerdings ist das mit dem Opfer eines IO Pins verbunden, der dann auch
im normalbetrieb nicht mehr zur Verfügung steht (PGM Pin, oft einer des
PortB). Schlimmer noch, wander der PIN während des Programmierens auf
High weil er nicht ganz sicher an Masse liegt, dann hält der PIC an und
befindet sich im Programmiermodus.
Daher ist es ratsam diese Fuse einfach zu deaktivieren, dann hat man
einen IO Pin mehr und das Problem mit dem versehentlichen Anhalten ist
auch keines mehr.
Zum *(bzgl. Fast):
Einige wenige PICs mit hoher Beinchenzahl haben die Möglichkeit das man
zwischen Zwei verschiedenen Konfigurationen für die Programmierpins mit
einer Fuse umschalten kann. (ICD/ICSP Fuse).
So kann man zum beispiel bei einem Controller der normalerweise 40PIN
hat, sich aber in einem TFQP GEhäuse mit 44 Pins befindet diese
Programmier-/Debugleitungen auf die normalerweise nicht angeschlossenen
(NC) PINs umleiten, so das man keinen IO Port doppelt nutzen muss.
Dummerweise lässt sich das aber bei den Varianten im 40Pol DIP Gehäuse
(Je nach verwendeter Kombi ProgSoft/Brenner) mnachmal auch aktivieren.
Da diese zuätzlichen Anschlüsse aber Physikalisch nicht vorhanden
sind...
Eine abhilfe schafft hier dann ein komplettes Löschen des PICs...
ISt also auch nicht wirklich dramatisch...
Gruß
Carsten
@Thomas
>Du hast den DCCGen gebaut?
Noch nicht, -ich bin dabei, ihn zu bauen.
>Kannst Du mir eine Einkaufsliste geben, wo ich die Teile bekomme und>was Du genommen hast?
Nein, denn ich habe alle Teile dafür hier gehabt. Aber es sind ja auch
nicht so viele Sachen nötig. Die Schaltung ist ja bis auf den PIC nicht
mit exotischen Teilchen bestückt.
>Hast Du noch eine Platine übrig?
Auch nicht, -ich stelle sie nur einzeln für mich selbst im
Tonertransfer-
verfahren her.
MfG Paul
> Danke für die Auskunft. Ich habe das Datenblatt von Microchip> heruntergeladen und darin nach dem Stichwort "Oscillator" suchen lassen.> ->kein Treffer.
Brille ??? Kapitel 12, Seite 120 ff (Config und Oscillator)
Schau Dich mal bei www.sprut.de um, da steht alles über PICs, viele
Beispiele etc.
zu LVP: http://sprut.de/electronic/pic/fallen/fallen.html#lvpon
@Bingo
Jetzt habe ich das "richtige" Datenblatt gefunden. Das, was ich zuerst
fand, war nur so eine Kurzinformation. Ja, das beantwortet mir meine
Fragen.
Ich will mich gar nicht weitergehend mit den PIC befassen, nur diese
eine Schaltung damit bauen. Sonst gehe ich lieber mit AVR um, weil
ich mich mit diesen Kontrollern begonnen habe und davon auch eine ganze
Menge verschiedener Kollegen vorrätig sind.
MfG Paul
In aller Regel sind bei übersetzten PIC-Programmen die Config-Bits in
den .HEX-Dateien enthalten.
Man kann es evtl. überprüfen, indem man ein Config-Bit ändert und dann
die Hex-Datei erneut lädt.
Wir PIC-Leute sprechen eigentlich nicht von "fuses", eher von
"Config-Bits" oder -Register.
Mit dem High-Voltage-Programmer JDM kann man einen PIC immer wieder neu
programmieren.
>In aller Regel sind bei übersetzten PIC-Programmen die Config-Bits in>den .HEX-Dateien enthalten.
Jupp, da ist es:
:02400E00723FFF
Configuration Word ist 0x723F
Paul Baumann schrieb:> (RC scheint der interne Oszillator zu sein).
Der 16F876 hat gar keinen internen RC-Oszillator. R + C müssen extern an
den Quarzpin angeschlossen werden. (Datasheet Kap 12 ff)
Gruß Anja
Alles klar. Danke noch einmal an alle Helfer und Ratgeber.
Es ist, wie es immer ist, wenn man etwas Neues ausprobiert: Man ist
vorsich-
tig und fragt lieber mal Leute, die sich schon damit befasst haben.
Vorbeugen ist besser als nach hinten umfallen.
(alte mongolische Volksweisheit)
;-)
MfG Paul
Paul Baumann schrieb:> Vorbeugen ist besser als nach hinten umfallen.> (alte mongolische Volksweisheit)
Alte Russische Weisheit
wenn de nach hinten umfällst geht der letzte Schnaps auch noch rein :)
holger schrieb:> Jupp, da ist es:>> :02400E00723FFF>> Configuration Word ist 0x723F
Fast richtig.
In der Hex-Datei sind die Daten als Little-Endian gespeichert.
Das Config-Word ist deshalb: 0x3F72
Gruß
John