Forum: Mikrocontroller und Digitale Elektronik PIC 16F684 programmieren


von Roland H. (minitron)


Lesenswert?

Moinmoin zusammen,

gestern habe ich mich lange vergeblich damit abgemüht ein hex-file in 
einen PIC 16F684 zu brennen. Üblicherweise brenne ich meine PICs mit 
einem chinesischem TOP2004, Sprut Brenner 8 oder dem Minibrenner 8 in 
der Silviu-Version, bisher stets problemlos und erfolgreich.

Bei dem PIC 16F684 jedoch funktionierte garnichts. Der TOP2004 
verlangte, daß der Chip etwa in der Mitte der 40er-Textoolfassung 
plaziert wird, also 6 Pins nach unten frei und nach oben 7 (pro Reihe). 
Das Programm behauptete dennoch, daß "no chip placed" sei. Auch alle 
Versuche mit pinweisem Verschieben nach oben und unten bzw. Drehen des 
uc waren erfolglos.

Der "Sprut Brenner 8" erkannte den 684 nicht, weder in der 
Textoolfassung noch im ICSP-Mode mit abgeschirmtem clk-Kabel. Immer hieß 
es, daß der "chip not in database" sei, was schlicht gelogen ist. Bei 
einem zweiten Brenner 8 gleicher Bauart an einem anderen PC das gleiche 
Ergebnis. Mit der Programmierspannung habe ich auch erfolglos 
experimentiert, weil der 684 recht exakt 11 Volt verlangt.

Zum Schluß versuchte ich es mit dem Minibrenner 8, aber auch der 
erkannte den 684 nicht. Probiert habe ich übrigens 6 verschiedene ucs, 
sodaß ich nicht davon ausgehe, daß alle 684er defekt sind.

Jetzt bin ich mit meinem Latein am Ende, und daher meine Frage an die 
PIC-Profis: was könnte das Problem sein, und was könnte ich noch tun, um 
den 684 erfolgreich brennen zu können.

Besten Dank und viele Grüße
Roland

von B. L. (b8limer)


Lesenswert?

Servus,

zuerst:

+ wird der 16F684 unterstüzt (davon gehe ich aus)?
+ ist evtl. der 16F684 defekt? hat was abbekommen ESD, verpolen, ....
+ so gut wie alle PIC-Programmiergerätschaften haben Probleme mit dem 
Pullup an MCLR. Evtl den mal variieren. Gerade Sprut's ganze Brenner 
kämpfen damit. Mir kommt dieses "Chip not in Database" übel bekannt. Das 
ist dann wenn die ID: 0x000 oder sowas in der Art ist. Das eine Tool 
sagt dann: Hab ich nicht in Datenbank, das andere sagt eben: Kenn ich 
nicht.

von Christian K. (Firma: Atelier Klippel) (mamalala)


Lesenswert?

Roland Hutter schrieb:
> Mit der Programmierspannung habe ich auch erfolglos
> experimentiert, weil der 684 recht exakt 11 Volt verlangt.

11V? Recht exakt? Das halte ich für ein ganz böses Gerücht. 12V 
mindestens für production-quality, mindestens. Schau mal in die Spec's 
für die PIC's was die da so verlangen. Ganz alte wollen teilweise sogar 
noch mehr, wenn ich mich recht erinnere.

Und überhaupt. Du kannst mit der Programmierspannung experimentieren? 
Was auch immer Du da benutzt was das erlaubt: Scheint so ziemlicher 
Murks zu sein. Da gibt es nichts zu experimentieren. Was da benötigt 
wird steht in den Spec's.

Grüße,

Chris

von Scotty (Gast)


Lesenswert?

Diese Brenner sind doch obsolet. Hol dir für'n 20er einen Pickit3 Clone 
aus der Bucht. Seitdem habe ich keinen Ärger mehr, zumindest was das 
Brennen betrifft.

von Roland H. (minitron)


Lesenswert?

Seid gegrüßt,

danke für Eure Beiträge.

@B.Limer: alle von mir verwendeten Brenner unterstützen den 684. Bei 6 
unterschiedlichen PICs müßte es imho mit dem Teufel zugehen, wenn gleich 
alle 6 zeitgleich hin sind. Mit den Sprutschen Brennern hatte ich bisher 
nie Probleme, außer gestern beim 684er.

@Christian: die Weisheit mit der 11V-Programmierspannung habe ich von 
Sprut's site. Er hat dort für eine ganze Reihe von PICs die Bandbreite 
der Programmierspannungen angegeben. Sein Brennprogramm "usbburn" 
erlaubt unter "options" diese Spannung zu variieren. Bei einem PIC habe 
ich dann auch mal von 8 - 13 Volt alles probiert; möglicherweise ist 
dieser PIC jetzt tatsächlich hin.

@Scotty: Dein Rat ist wohl das einzig Richtige. Bald kann ich einen 
Laden mit Programmern aufmachen ;-)

@alle: warum aber gab's bisher nie Probleme mit dem Brenner 8 und PICs 
vom 8 - bis 40pinner, egal ob's ein F675, F84, F628, F690 oder sonstwas 
war? Was ist denn an diesem 684er so besonders oder anders als bei den 
anderen PICs. Das Datenblatt habe ich zwar quergelesen, aber bei 192 
Seiten das Entscheidende vielleicht überlesen.

Viele Grüße
Roland

von usuru (Gast)


Lesenswert?

> 11V? Recht exakt? Das halte ich für ein ganz böses Gerücht. 12V
> mindestens für production-quality, mindestens. Schau mal in die Spec's
> für die PIC's was die da so verlangen. Ganz alte wollen teilweise sogar
> noch mehr, wenn ich mich recht erinnere.

@Christian
WENN Du das Datenblatt des 16F684 WIRKLICH gelesen hättest, dann 
wüsstest Du, dass bei den 16F6xx die Vpp zwischen 10 und 13 V sein darf. 
sprut nimmt halt die Mindest-Spannung und tut 1 V Marge dazu.  Ich 
benutze öfter die 16F687 und 688, welche die gleichen 
Programmierspezifikationen wie der 16F684 haben und hatte mit den 
sprut-Brennern noch nie Probleme. Auch steht im Errata-File nichts über 
Programmier-Probleme; nachdem es den Chip schon seit 2006 gibt, wäre ein 
solcher Fehler längst dort angekommen. Es muss auch kein PICKIT3 sein, 
sogar das PICKIT1 geht noch für diesen µC.

@Roland
Sind die 16F684 alle aus der gleichen Quelle? Evtl. Fakes: wieviel mA 
ziehen die denn, wenn sie neu und nicht programmiert sind?

von Roland H. (minitron)


Lesenswert?

Grüß Dich, Usuru,

2 Exemplare hatte ich von Reichelt, die restlichen 4 aus der Bucht. 
Natürlich habe ich alle nebeneinander aufbewahrt und weiß daher nicht 
mehr, was von wem war. Leider spielen aber alle nicht :-)
Bei 5 Volt Versorgungsspannung ziehen diese F684 unprogrammiert zwischen 
0,8 und 0,9 mA. Das scheint mir ein bißchen viel zu sein, weil ein 
unprogrammierter F690 nur 0,3 mA zieht. Ich denke nicht, daß die 684er 
Fakes sind, zumindest nicht die von Reichelt. Falls es wirklich fakes 
sind, scheiden jedenfalls ein massiver Kupferblock oder nur Platik imho 
aus.
Ich muß mal schauen, ob in meinem Programmer-Sammelsurium noch ein alter 
Pickit 1 rumfliegt.

Viele Grüße
Roland

von Christian K. (Firma: Atelier Klippel) (mamalala)


Lesenswert?

usuru schrieb:
> @Christian
> WENN Du das Datenblatt des 16F684 WIRKLICH gelesen hättest, dann
> wüsstest Du, dass bei den 16F6xx die Vpp zwischen 10 und 13 V sein darf.
> sprut nimmt halt die Mindest-Spannung und tut 1 V Marge dazu.

In den datenblättern steht viel. Z.B. auch das ein PIC einen 
Versorgungsspannungsbereich von z.B. 2.0V bis 5.5V haben kann. Das 
heisst aber nicht das er in dem Bereich auch mit der maximal möglichen 
Taktgeschwindigkeit läuft....

Bzgl. der benötigten Spannungen beim 16F684 schaut man einfach in das 
entsprechende Dokument:

http://ww1.microchip.com/downloads/en/DeviceDoc/41204H.pdf

Und schon sieht man folgendes, gleich auf der ersten Seite:

"PIC12F6XX/16F6XX devices require one power supply
for VDD (5.0V) and one for VPP (12.0V)."

Auf Seite 35 wird dann auch der Bereich von 10V bis 13V erwähnt. 
Allerdings unter:

"High voltage on MCLR for Program/Verify mode entry"

Das heisst also das in diesem Spannungsbereich lediglich eine sichere 
Erkennung folgt das in den Programmier/Prüf-Modus gesprungen wird. 
Natürlich ist eine gewisse Toleranz für VPP erlaubt bei der das 
Schreiben immer noch funktioniert. Nur sind die 12V halt der Richtwert. 
Habe selber schon mit exotischen Programmern gearbeitet. Die haben dann 
eine 12V Versorgung, wobei VPP über einen Transistor zugeschaltet wird. 
Durch den Spannungsabfall am T kommen dann halt weniger als 12V raus. 
Dabei habe ich hin und wieder Probleme gehabt. Versorgungsspannung 
soweit erhöht das am Ende bei VPP auch wirklich 12V rauskamen, schon 
waren die Probleme weg.

Grüße,

Chris

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.