Forum: Mikrocontroller und Digitale Elektronik PIC 12F629 brennen


von Andy S. (bastler01)


Lesenswert?

Hallo,
habe mich hier angemeldet und hoffe, dass ich vielleicht einen richtigen 
Hinweis bekomme, warum bei dem PIC nach dem Brennen das Config-Byte 
nicht stimmt.
Zur Hardware: Brenner8  und Brenner5 von Sprut mit der dazugehörigen 
Software.
Kurze Beschreibung des Fehlers.
Nach dem Brennen und Vergleichen (bei beiden Brennern) wird mir alles 
mit O.K. angzeigt, aber wenn ich dann das Config-Byte vergleiche wird 
nicht #3FC4 sondern #31C4 angezeigt - manchmal auch #11C4. An dem PIC's 
kann es nicht liegen(?), da ich 5 DIP und 3 SMD gebrannt habe und immer 
der gleiche Fehler angezeigt wird. (PIC's sind auch von verschiedenen 
Anbietern).
Vielleicht kann mir einer einen Tipp geben, was ich da machen kann.

Gruß Andy

: Bearbeitet durch User
von Andras H. (kyrk)


Lesenswert?

Was sagt ein PICkit3/4 oder ICD3/4 dazu? Hast du den Fehler auch damit?

Sonst eventuell auf kurze Verbindungen achten. Kondensator sollte auch 
da sein. Da es vermutlich ICSP ist kannst mal versuchen alles von den 
PINs zu trennen.

BB---CCBMPWFFF
11111111000100  3FC4
11000111000100  31C4
 1000111000100  11C4

Sonst scheinen die Bits mehr oder weniger zu passen. Bei 11C4 fehlt 
alerding der BG1 bit.
31C4 ist richtig, denn es gibt ja 3 bits die unimplemented sind. Daher 
0. Das solltest du auch in dein HEX so eintragen, dann passen die auch 
beim verification.

von Andy S. (bastler01)


Lesenswert?

Vielen Dank für die schnelle Antwort. Pickit3/4 habe ich nicht. Habe ca. 
4-5 Jahre nichts mehr mit PIC's gemacht und meine Brenner reichen mir 
für das bisschen zu.
Dann werde ich mal sehen, ob der PIC läuft.

von Mitleser (Gast)


Lesenswert?

Wird der PIC in der Schaltung Programmiert oder bevor er in die 
Schaltung implementiert wird?
Wenn der PIC in der Schaltung ist kann die Außenbeschaltung vielleicht 
zum Problem werden, in dem Fall die PDIP Variante vielleicht mal auf dem 
Steckbrett flashen.

von Andy S. (bastler01)


Lesenswert?

Der PIC wird im Brenner gebrannt. Ob der nun läuft, zeigt sich erst in 
paar Tagen, da ich für meinen Kumpel für die Modellbahn eine Schaltung 
gebaut habe, wo er in den Wagen das Licht schalten kann und der wohnt 
ca. 250km von mir. Also immer Postweg.

von Christian M. (christian_m280)


Lesenswert?

Was von Digital-Bahn.de? Vielleicht 
https://www.digital-bahn.de/bau_weiche/wz_dauer.htm
Ich habe alle meine Funktions- und Schaltdekoder von hier nachgebaut, 
mit Sprut-Brenner 8 programmiert - und hat alles funktioniert! Sorry, 
keine grosse Hilfe...

Gruss Chregu

von Wolfgang W. (Gast)


Lesenswert?

Der PIC12F629 braucht eine recht hohe VPP von 12,75V - 13,25V. Kann der 
Brenner8 beim Programmieren diese hohe VPP sicher liefern?

von Mitleser (Gast)


Lesenswert?

Andy S. schrieb:
> da ich für meinen Kumpel für die Modellbahn eine Schaltung
> gebaut habe

...hast Du fertigen Code verwendet? Wenn ja, schick mal einen Link, dann 
kann ich den Code mal mit einem PICkit 3 testen, Controller und 
Digitalbahn sind vorhanden.

Christian M. schrieb:
> Was von Digital-Bahn.de? Vielleicht
> https://www.digital-bahn.de/bau_weiche/wz_dauer.htm
> Ich habe alle meine Funktions- und Schaltdekoder von hier nachgebaut,
> mit Sprut-Brenner 8 programmiert - und hat alles funktioniert!

Kann ich bestätigen, die Schaltungen und die Codes funktionieren, hab 
halt ein PICkit 3 verwendet.

von Toxic (Gast)


Lesenswert?

Wolfgang W. schrieb:
> Der PIC12F629 braucht eine recht hohe VPP von 12,75V - 13,25V. Kann der
> Brenner8 beim Programmieren diese hohe VPP sicher liefern?

Ja

von H. H. (Gast)


Angehängte Dateien:

Lesenswert?

Wolfgang W. schrieb:
> Der PIC12F629 braucht eine recht hohe VPP von 12,75V - 13,25V.

Nein, siehe Anhang.

von Andy S. (bastler01)


Lesenswert?

Irgendwie ist ein Beitrag von mir hier nicht angezeigt. Also noch mal.

Wolfgang W. schrieb:
> Der PIC12F629 braucht eine recht hohe VPP von 12,75V - 13,25V. Kann der
> Brenner8 beim Programmieren diese hohe VPP sicher liefern?

Der Brenner bringt 12,96V und da kann ich noch die Spannung um 0,5V 
erhöhen.

Christian M. schrieb:
> Was von Digital-Bahn.de? Vielleicht
> https://www.digital-bahn.de/bau_weiche/wz_dauer.htm

Da habe ich auch schon einiges nachgebaut. Brennen des PIC's war kein 
Problem.

Mitleser schrieb:
> ...hast Du fertigen Code verwendet? Wenn ja, schick mal einen Link, dann
> kann ich den Code mal mit einem PICkit 3 testen, Controller und
> Digitalbahn sind vorhanden.

Die Schaltung und die Hex-, sowie die asm-Datei findest du hier:
https://usuaris.tinet.cat/fmco/download_en.html
ca. in der Mitte unter:
"Function decoder with 4 outputs" - die Version v2
Hex-Datei ist in der zip.In der Schaltung ist der ULN2003 kopfstehend 
eingezeichnet. Da wäre ich fast darüber gestolpert.

: Bearbeitet durch User
von Mitleser (Gast)


Lesenswert?

Andy S. schrieb:
> Die Schaltung und die Hex-, sowie die asm-Datei findest du hier:
> https://usuaris.tinet.cat/fmco/download_en.html
> ca. in der Mitte unter:
> "Function decoder with 4 outputs" - die Version v2
> Hex-Datei ist in der zip.In der Schaltung ist der ULN2003 kopfstehend
> eingezeichnet. Da wäre ich fast darüber gestolpert.

Okay, werde ich mal die Woche testen, jedoch ohne ULN2003 Treiber, werde 
einfach mal vier LEDs dran hängen und schaue dann mal, ob ich 1. den PIC 
mit dem hex File Flaschen kann, 2. CVs lesen und schreiben kann und 3. 
LEDs schalten kann.

von Wolfgang W. (Gast)


Lesenswert?

@ Andy S.

Die Bits 13-12 im Configuration Word sind laut Datenblatt factory 
calibrated  for Bandgap Voltage und müssen vor einem erase gesichert 
werden, d. h. die Software für den Brenner8 sollte das berücksichtigen. 
Beim Programmieren ohne erase ist man auf der sicheren Seite, wenn man 
die 2 Bits auf 1 stellt.

D. h. bei z. B. gelesener Configuration 0x11c4, 0x21c4 oder 0x01c4 sind 
die factory calibrated Bits unverändert. Bei gelesenem 0x31c4 kann 
möglicherweise die Factory Calibration durch ein erase gelöscht worden 
sein.

von Mitleser (Gast)


Lesenswert?

So,
hab das ganze mal getestet.

Mit PICkit 3 und MPLAB X IPE v5.50 konnte ich das File ohne Probleme in 
einen PIC12F629 im PDIP Gehäuse flashen.

Und auch der Code funktioniert, aufgrund der Schaltung lassen sich die 
CVs nicht auslesen, programmieren und funktionieren tut es trotzdem.

von Andy S. (bastler01)


Lesenswert?

Vielen Dank für deine Mühe. Da muss ich mal sehen, ob die PIC's, welche 
ich brenne auch funktionieren.

von Andy S. (bastler01)


Lesenswert?

Mitleser schrieb:
> So,
> hab das ganze mal getestet.
>
> Mit PICkit 3 und MPLAB X IPE v5.50 konnte ich das File ohne Probleme in
> einen PIC12F629 im PDIP Gehäuse flashen.
>
> Und auch der Code funktioniert, aufgrund der Schaltung lassen sich die
> CVs nicht auslesen, programmieren und funktionieren tut es trotzdem.

So, nun habe ich drei PIC's gebrannt. Alles soweit gut. Brennen - grün; 
Vergleichen - grün, Auslesen und Vergleich im Hex-Editor mit der 
original Datei ohne Fehler. Jeder hat eine anderes Cofig. Einer 01C4, 
einer 11C4 und einer 31C4 - in der Hexdatei war ja 3FC4.
Der mit 31C4 reagiert überhaupt nicht, die anderen Beiden Schalten zwar, 
aber die Ausgangszustände ändern sich laufend unregelmäßig von selbst. 
Nun meine Frage.
Weche Zentralstation benutzt du und mit welchen Programm änderst du die 
CV-Werte? Wir haben da so eine Vermutung.

von usuru (Gast)


Lesenswert?

Spielen evtl. die Taktzeiten eine Rolle?

Der interne OSC hat 4 MHz, die aber bei 12F629 einen individuellen ! 
Kalibrierwert ab Werk mitbringen. Wird der PIC falsch gebrannt, geht 
dieser Wert verloren.

Weiteres siehe 
https://www.sprut.de/electronic/pic/projekte/osccal/osccal.htm

von Chris (Gast)


Lesenswert?

Diesen Wert kann man auslesen in einem reservierten Speicherbereich, ist 
also nicht verloren. Er steht dort auch deshalb weil der interne 
Programmieralgorithmus diesen Wert einsetzten muss damit die 
Programmierzeiten stimmen. Ed geht auch 3.3v Vcc und 9V Batterie zur 
Programmierung, der Häufigste Fehler ist vpp nicht vor Vcc 
einzuschalten, denn da geht gerne der PC falsch und man kann dann keine 
config bits programmieren.

von usuru (Gast)


Lesenswert?

Chris schrieb:
> Diesen Wert kann man auslesen in einem reservierten Speicherbereich, ist
> also nicht verloren.

Der Speicherbereich ist eben NICHT reserviert, man kann den 
überschreiben! Es gibt von sprut aber Programme, um den Wert zu 
restaurieren, siehe 
https://www.sprut.de/electronic/pic/projekte/osccal/osccal.htm

von Andy S. (bastler01)


Lesenswert?

Der Kalibrierwert wird nicht überschrieben. Erstens ist das Programm 
nicht so lang und in #7FF steht auch noch das gleiche Byte nach dem 
Brennen drin.
Vpp wird auch erst nach Vcc eingeschaltet.

: Bearbeitet durch User
von Chris (Gast)


Lesenswert?

Von bulk erase noch nie was gehört?
Und ja, wenn vcc < 4.5V oder > 5.1V ist funktioniert bulk erase nicht 
mehr und das config word kann man mit row erase nicht löschen oder 
beschreiben.

von Chris (Gast)


Lesenswert?

Es gibt aber ein zweiten reserved Region wo das oscal gesichert wird und 
intern für den programmieralg. Verwendet wird. Stand mal in mehreren 
programming specification drin und musst suchen.

von Andy S. (bastler01)


Lesenswert?

Chris schrieb:
> Von bulk erase noch nie was gehört?
> Und ja, wenn vcc < 4.5V oder > 5.1V ist funktioniert bulk erase nicht
> mehr und das config word kann man mit row erase nicht löschen oder
> beschreiben.

Und ja, Vcc liegt bei 4,95V. Das Config-Word 31C4 müsste ja stimmig 
sein, weil drei Bits nicht implementiert sind - siehe Beitrag weiter 
oben. Und gerade dieser PIC reagiert überhaupt nicht.

von Andy S. (bastler01)


Lesenswert?

So, hat sich erledigt. Danke für die Unterstützung und für die 
Anregungen.
Das Problem war der ESU-Programmer womit die CV-Werte eingetsellt 
werden. Mit der Maus läuft soweit Alles. Es hat sich herausgestellt, 
dass das Config-Wort auf 01C4 stehen muss.

: Bearbeitet durch User
von Andy S. (bastler01)


Lesenswert?

War ein Fehler drin - config muss auf 11C4 stehen.

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
Noch kein Account? Hier anmelden.