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
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.
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.
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?
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, ...
.
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.
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
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