Forum: Mikrocontroller und Digitale Elektronik PIC 16C/F84 über ISP programmieren?


von Lothar Behrens (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

dies ist ein erster Versuch mit ISP und ich möchte nicht gleich meine 
Elektronik abfackeln :-)

Ich habe in meiner Schaltung an PB7/Serial programming data eine LED und 
ein Wiederstand (470 Ohm) gegen +5V um ein Einschalten zu signalisieren.

An PB6/Serial programming clock habe ich einen 10K Pullup mit einem 
Taster gegen Masse. (Normalerweise offen, aber naja, wenn man da dran 
kommt...)

An MCLR Pin 4 ist die Brownout Schaltung mit Z-Diode.

Ansonsten eine übliche Nutzung der Schaltung.

Was muss ich beachten, wenn ich nun mit einem ISP Adapter programmieren 
will?

Ist die beste Lösung, 3 Jumper zu verwenden, oder kann ich auch 
Schutzdioden verwenden?

Die relevante Beschaltung ist im Bild gezeigt.

Danke

Lothar

von Colt F. (Firma: TUC) (coltfish)


Lesenswert?

Bitte tue Dir einen Gefallen und verwende NICHT den PIC16X84. Selbst 
wenn Du ihn gerade noch zuhause herumfliegen hast.
Nimm z.B. einen 16F628A. Dieser ist (m.E. nach) pinkompatible, hat dafür 
aber mehr RAM, mehr ROM, integrierten Oszillator (4MHz) und auch den 
Brown-out-Reset bereits onboard.
Von der Verwendung eines einfachen ISP-Adapters würde ich stark abraten. 
Wenn es unbedingt billig sein soll, schau Dich bei www.sprut.de um, dort 
werden diverse "Brenner"-Designs vorgestellt.
Optimal wäre ein ICD2 von Microchip bzw. ein ICD2-Klon (diese gibt es 
bereits sehr günstig bei eBay usw.)

Davon abgesehen: Pullups an PGC/PGD sind nicht erlaubt! Nimm den 
PIC16F628A wie bereits vorgeschlagen, dieser hat integrierte pullups an 
PortB, welche per Software aktiviert werden können und so den 
Programmiervorgang nicht behindern.

von Chris (Gast)


Lesenswert?

Ob der Transistor die 12V gegen VCC abblockt, weiß ich nicht,
müsste man checken. Ansonsten kannst du ja einen Jumper nur für /MCLR
einsetzen, der Rest geht problemlos. Daß du während des ISP nicht die
Taste betätigen darfst, sollte eigentlich klar sein.

von Lothar Behrens (Gast)


Lesenswert?

Leider habe ich schon 2 16F84A gekauft. Fürs nächste Mal gerne den 
16F628A.

Der Programmer ist der usbpicproc (Open Source) auf 
http://usbpicprog.org/. Dieser hat vor dem Stecker jeweils einen 
Schutzwiederstand (100 Ohm) in Serie an PGD und PGC. Also bekommt der 
Programmer erstmal keine Probleme.

Der Programmer verfügt über einen 18F2550.

Wenn die Brownout Schaltung im 16F628A schon eingebaut ist, sollte ich 
mir
mit einer einfachen Beschaltung eines Steckers auf meinem Board keine 
Probleme einfangen.

Ich meine, dass die 13V den Kollektor auf 13V angehoben werden. Ist die 
interne Beschaltung des 16F628A mit der im Bild vergleichbar?

von Chris (Gast)


Lesenswert?

Auch der 16f628A ist teilweise veraltert, da man einen 16f88 teilweise
günstiger herbekommt. Hat doppelt so viel Flash und EEprom,
kann den Flash selbst beschreiben (bootloader) und hat auch ADC
sowie interne OSC bis zu 8Mhz oder auch runter auf 32Khz. Mehr Ram, ... 
.

von Chris (Gast)


Lesenswert?

Habe mir den Programmer angesehen, warscheinlich funktioniert der nicht, 
wie auch nicht der ICD2 oder ander dergleichen. Der Grund ist, daß
diverse neuere Chips einen internen voltage-doubler haben, der für die 
Flash Programmierung verwendet wird, und die 4.5V+VDD einfach nur für
den Eintritt in den Programmiermodus verwendet werden, bei ca 20uA 
Belastung oder so. Hingegen CPU´s ohne den internen Spannunsverdoppler
brauchen richtige mA, um den Flash zu löschen, und neu zu programmieren.
Was ich dir in deinem Falle raten würde, die CPU einfach zu sockeln, und
extern zu programmieren, ev. auch nur mit einem Steckbrett, und VPP
extern zuführen, 12V reichen, und sind leicht aufzutreiben, aber kein
einfaches 12V Steckernetzteil. Ev auch eine neue 9V Blockbatterie.

von Lothar B. (lollisoft)


Lesenswert?

Also ich habe letztendlich den 16F84 auch separat programmiert. Ein 
extra Sockel, wenig Tefzel Draht und einen verpolungssicheren Stecker 
(Reichelt: PS 25/5G WS). Überlege noch, ob ich nicht
den PICSTART ZIF Sockel ausbaue und mit dem dann bis zu 28 Polige PIC's 
programmiere.

Nur muss ich prüfen, ob ich alle Gehäuse in einem ZIF programmieren 
kann.

Nun habe ich aber andere Probleme. Mein PIC will nicht laufen :-(

Lothar

von Lothar B. (lollisoft)


Lesenswert?

Nun hat es geklappt. Es waren die Config Bits. Es ist offensichtlich so, 
dass mein HEX File keine enthält. Erstellt habe ich dieses HEX File mit 
MPLab IDE. Der Programmer geht, aber die Config Bits kann ich nur 
einstellen, wenn ich einmal programmiere, dann auslese und die Bits 
anpasse. Nur noch einmal programmieren und es geht.

Also ich bin mit dem 20 € Teil erstmal zufrieden (fertig mit Bauteilen 
bestückt und nutzbar).
Software läuft auf Mac OS X 10.5.2 (PPC), was ich getestet habe. Windows 
XP geht auch. Linux Debian (PPC) geht noch nicht. Alles andere habe ich 
nicht getestet.

Gruß

Lothar

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.