ICSP - In Circuit Serial Programming

- das Brennen des PIC in der fertigen Schaltung
- der Anschluss von PICs an Brenner ohne passende Fassung

zurück zu PIC-Prozessoren , Elektronik , Homepage

ICSP - Allgemeines
Wie funktioniert ICSP?
Low Voltage Programming
Was ist beim Entwurf ICSP-tauglicher Schaltungen zu beachten?
ICSP-Anschluss bei PIC18FxxJxx, PIC24, dsPIC33, PIC18FxxKxx
Das ICSP-Kabel


universeller ICSP-Adapter für PICs/dsPICs DIL-Gehäuse
ICSP-ICD-Adapter


ICSP-Adapter für PIC10F2xx-Typen

ICSP-Adapter für 6-Pin 12-Bit-PICs im DIL-8-Gehäuse

ICSP-Adapter für PIC12F/16F/18F-Typen

ICSP-Adapter für PICs im PLCC-44-Gehäuse
ICSP-Adapter für PICs im SO-18-Gehäuse
ICSP-Adapter für PICs im DIL-8-Gehäuse
ICSP-Adapter für DIL-40-Gehäuse

ICSP-Adapter für dsPICs

ICSP-Adapter für dsPICs im DIL-40-Gehäuse

ICSP-Adapter für SMD-PICs

Aufsteck-ICSP-Adapter

zurück


ICSP - Allgemeines

Wer seine PICs im Brenner programmieren möchte, um sie dann aus der Brennerfassung zu nehmen und in die Anwendungsschaltung einzusetzen, der braucht hier nicht weiterzulesen - es sei denn der Brenner hat keine passende Fassung für diesen PIC.

Das Prinzip des Brennens im separaten Brenner stößt spätestens bei PICs im SMD-Gehäuse an seine Grenzen. Geeignete Testsockel/Nullkraftsockel gibt es nur für SMD-PICs mit maximal 28 Pins im (S)SOP-Gehäuse, und die sind auch nicht gerade billig (30 ... 45 Euro bei Farnell). Man kann sich auch mit einer Bastellösung behelfen, oder aber es auch auf die Spitze treiben, und mit viel Fleiß und Geschick einen SMD-Adapter selber basteln, wie "Lardz" bewiesen hat.) Bei größeren SMP-PICs gibt es aber keine praktikable Lösung für einen Testsockel/Nullkraftsockel im separaten Brenner.

Alle meine Brenner besitzen aber eine 5-polige Buchsenleiste, die mit "ICSP" beschriftet ist. Die bietet eine Lösung: das Brennen des PIC in seiner Anwendungsschaltung - In Circuit Serial Programming (ICSP).

Außerdem lassen sich alle möglichen zusätzlichen IC-Sockel über den ICSP-Steckverbinder an den Brenner anschließen, und damit dann auch z.B. PICs im PLCC-44-Gehäuse brennen.

nach oben

Wie funktioniert ICSP?

Vorab:
Wer die Details erfahren möchte, der besorgt sich am besten die "Programming Specification" von der Microchip Homepage. Es gibt allerdings nicht nur eine, da es für die verschiedensten PICs die unterschiedlichsten ICSP-Dialekte gibt. Eine gute Einstiegslektüre ist das PDF-Dokument DS30277 (In-Circuit Serial Programming™ (ICSP™) Guide), die das Programmieren vieler unterschiedlicher Typen beschreibt. Aber vor allem bei neueren Typen sollte man nach einer speziell für diesen Typ geschriebenen "FLASH Memory Programming Specification" (oder ähnlich) suchen.
 

Auch wenn der PIC beim Brennen mit allen Pins in der Fassung des Brenners steckt, elektrisch sind mit dem Brenner nur 5 Pins verbunden. Das ist möglich, da der PIC mit Hilfe einer seriellen Datenübertragung programmiert wird - dem In Circuit Serial Programming (ICSP).

Dazu benötigt man:

  1. eine Leitung für die +12V-Programmierspannung
  2. eine Leitung für die +5V-Betriebsspannung
  3. eine Masseleitung
  4. eine Datenleitung
  5. eine Taktleitung
(Manche meiner Kabel und Steckverbinder haben ein 6. Pin, das aber nicht belegt ist.)
Diese 5 Leitungen des Brenners werden an folgende Pins des PIC angeschlossen:     

 

Nr.
Leitung des Brenners Signalbezeichnung Pin des PIC
1 Leitung für die (+12V) Programmierspannung Vpp MCLR/Vpp (der Reset-Anschluss)
2 Leitung für die (+5V) Betriebsspannung Vdd Vdd
3 Masseleitung Vss Vss
4 Datenleitung Data (PGD) meist RB7
5 Taktleitung Clock (PGC) meist RB6

Um in den Programmiermodus zu gelangen, wird zunächst die 5V-Betriebsspannung eingeschaltet und die Pins MCLR, RB6 und RB7 mit Masse verbunden. Dann wird MCLR schnell von Masse auf die Programmierspannung von 12 V gezogen. Dabei müssen RB6 und RB7 noch auf Masse gehalten werden.

Danach kann der Brenner den PIC über die Pins RB6/RB7 auslesen und neu programmieren.

An der ICSP-Buchse stehen also alle Signale zur Verfügung, um einen PIC zum Programmieren an den Brenner anzuschließen. Ein  Beispiel für die Nutzung der ICSP-Buchse  sind Adapter, mit dem eine zusätzliche Schaltkreis-Fassung an einen beliebigen Brenner angeschlossen werden kann, wenn dieser über die ICSP-Buchse verfügt.

Die Hauptanwendung der ICSP-Verbindung ist aber eine andere: Das Brennen eines PIC, der bereits in seine Anwendungsschaltung eingebaut ist.

Dazu verfügt die Leiterplatte der Anwendungsschaltung des PIC auch über eine ICSP-Buchse. Brenner und Anwenderschaltung werden über ein 5-poliges Kabel miteinander verbunden, und der PIC wird "zuhause" gebrannt. Das lästige Umstecken des PIC zwischen Anwendungsschaltung und Brenner entfällt, und das komfortable Brennen von PICs im SMD-Gehäuse wird überhaupt erst möglich.

nach oben

Low Voltage Programming

Das oben beschriebene Verfahren benötigt zum Brennen die relativ hohe Spannung von 12V. Deshalb wird es high-voltage-programming (HVP) genannt. High-voltage-programming ist das Standardverfahren.

Einige PICs unterstützen zusätzlich das low-voltage-programming (LVP). Dabei erzeugt der PIC die benötigte Programmierspannung intern selbst. Es werden keine 12V zum Brennen benötigt. Alle LVP-PICs beherrschen aber auch das HVP. Um dem PIC zu Beginn des Programmierens mitzuteilen, welches Verfahren benutzt wird, ist eine zusätzliche Leitung im Interface nötig. Diese Leitung trägt den Namen PGM und geht in der Regel am PIC zum Pin RB3.
Wurde ein PIC im LVP-Mode gebrannt, dann ist das PGM-Pin (z.B. RB3) vom PIC nicht mehr verwendbar, es ist dann für den normalen PIC-Betrieb blockiert. Man erkauft sich die einfachere Programmierung also mit dem Verlust eines I/O-Pins. Aus diesem Grunde bevorzuge  ich HVP.
 

  • Um in den HVP-Mode zu gelangen, wird PGM auf low (0V) gehalten, und MCLR von low (0V) auf Vpp (12V) umgeschaltet.
  • Um in den LVP-Modus zu gelangen, wird zuerst PGM  und danach MCLR auf high (5V) gelegt.

  • Versucht  man nun mit dem oben beschriebenen 5-Leitungs-ICSP-Anschluss (in dem PGM ja nicht vorkommt) den PIC in den HVP-Mode zu schalten, während versehentlich das PGM-Pin aus der Anwenderschaltung high Pegel bekommt, dann programmiert man den PIC versehentlich im LVP-Mode. Das fällt erst auf, wenn später das PGM-Pin des PIC nicht als I/O-Pin funktioniert.
    Aus diesem Grunde ist es nötig, bei allen LVP-fähigen PICs das PGM-Pin während des Brennens auf low-Pegel zu halten.
    Erfahrungsgemäß ist es unproblematisch, wenn das Pin gar nicht beschaltet ist. Das ist der Fall, wenn man den PIC im Brenner brennt. Aber gerade bei ICSP-Programmierung kann es leicht vorkommen, das in der Anwendungsschaltung PGM versehentlich high erhält.

    Tip:
    Während des Brennens kann man eine Konfigurationsoption wählen, die LVP deaktiviert. Danach geht der PIC immer in den HVP-Mode, unabhängig vom Pegel an PGM. Ich empfehle, diese Option zu nutzen. Selbst wenn man dann beim ersten Brennen versehentlich im LVP-Mode ist, löst dann ein zweiter Brennvorgang alle Probleme. Bei diesem geht der PIC dann automatisch in den HVP-Mode (, wenn beim ersten Brennen LVP korrekt deaktiviert wurde).

    nach oben


    moderne PICs

    Diverse erwachsene PICs (dsPIC30/33, PIC24 u.a.) benötigen generell keine Programmierspannung mehr. Mann übergibt dem PIC mit den PGD und PGC-Leitungen die Daten, und der PIC brennt sie selbst in den Speicher. (so ähnlich zumindest) Damit der PIC nun aber nicht zufällig in diesen Modus kommt, ist eine komplizierte Prozedur vorgesehen, bei der MCLR, PGD und PGC recht aufwendige Signalmuster erzeugen, um den PIC in den Programmiermodus zu bringen. Das ist vergleichbar mit der Eingabe eines Passwortes. Dazu wird aber keine erhöhte Programmierspannung benötigt. Die MCLR-Leitung arbeitet mit der gleichen Spannung wie alle anderen Leitungen (5V oder 3,3V).
    nach oben


    Was ist beim Entwurf ICSP-tauglicher Schaltungen zu beachten?

    Die 5 Pins, die zum ICSP an den Brenner angeschlossen werden müssen dienen ja nicht exklusiv zum Brennen, sie werden meist auch in der Anwendungsschaltung verwendet. Um zu verhindern, das sich Brenner und Anwendungsschaltung gegenseitig in ihrer Funktion stören, sind einige Dinge beim Entwurf der Anwendungsschaltung zu beachten:
     
     
    Schaltungsvorschlag für ICSP Programmierspannung MCLR/Vpp
    Dieser Anschluss ist am schwierigsten.

    Meine Brenner ziehen dieses Pin über einen Widerstand auf Masse, oder auf +12V.
    In der Anwenderschaltung wird dieses Pin mit einem Hochziehwiderstand auf 5V gehalten, oder mit einem Resettaster kurzfristig auf Masse gelegt. Das der Reset-Taster beim Brennen keinesfalls gedrückt werden darf ist damit klar!!

    Schwierig ist aber auch der Hochziehwiderstand. Beim Brennen trennt nur dieser Widerstand die 5-V-Versorgung der Anwendungsschaltung von den 12V des Brenners. Hier muss deshalb eine Diode vor Schäden durch Überspannung schützen.

    Der 5V-Hochziehwiderstand muss deutlich größer sein (mindestens 20 X) als der Widerstand, der im Brenner das MCLR-Pin mit Masse verbindet. Ansonsten kann der Brenner MCLR nicht sauber auf Masse ziehen. 
    Wird ein Brenner5 verwendet, sollte der Hochziehwiderstand etwa 20kOhm betragen.

    Bei den alten Brennern 1&3 sollte ein 200 kOhm großer Widerstand zwischen dem Reset/MCLR-Pin und +5V eingesetzt werden. 

    Betriebsspannung Vdd
    Beim Brennen speist der Brenner den PIC mit der nötigen Betriebsspannung. Ist der PIC der einzige Spannungsverbraucher in der Anwenderschaltung, kann die +5V-Leitung des Brenners direkt mit dem Vdd-Pin des PIC verbunden werden. Vor dem Anschluss des Brenners muss dann unbedingt die normale Betriebsspannung des PIC abgeschaltet werden.

    Sind neben dem PIC noch andere Bauelemente mit der 5-V-Versorgung der Anwendungsschaltung verbunden, würde der Brenner bei Brennen die gesamte Anwendungsschaltung in Betrieb nehmen. Bei größeren Schaltungen könnte das den Brenner überlasten. Eine Entkopplung mit Shottky-Dioden oder ein Jumper in der +5V-Leitung trennen dann besser die beiden potentiellen 5-V-Quellen.
    Wird mit einer Shottky-Diode entkoppelt, dann ist die Vdd des PICs im Normalbetrieb ca. 0,2V kleiner als Vdd der restlichen Schaltung. Meist ist das unkritisch, aber wenn Vdd z.B. als positive Referenzspannung des ADC verwendet wird, kann es zu Messwertverfälschungen des ADC kommen. In diesem Fall ist ein Jumper der Diode vorzuziehen.

    Größere PICs besitzen mehrere Vdd-Pins. Zum Programmieren sind alle diese Pins untereinander zu verbinden, was in der Anwenderschaltung in der Regel ohnehin gegeben ist.

    Masseverbindung Vss
    Das ist die einzige unkritische Verbindung. Normalerweise wird die Masse des Brenners direkt mit der Masse des PIC und damit auch mit der Masse der Anwenderschaltung verbunden.
    Größere PICs besitzen mehrere Vss-Pins. Zum Programmieren sind alle diese Pins untereinander zu verbinden, was in der Anwenderschaltung in der Regel ohnehin gegeben ist.

    Takt- und Datenleitung PGC (RB6) und PGD (RB7)
    Wer in der Anwendungsschaltung auf diese beiden Pins verzichten kann, sollte sie exklusiv der ICSP-Schnittstelle zur Verfügung stellen. Werden die beiden Pins aber benötigt, sollten sie mit der ICSP-Buchse direkt, aber mit dem Rest der Schaltung über Widerstände von wenigstens 1 kOhm verbunden werden. Ist so ein 1 kOhm Widerstand für die Applikationsschaltung zu groß, helfen nur noch Jumper, die vor dem Brennen geöffnet werden müssen, um den PIC von der restlichen Schaltung zu trennen.


    ICSP-Anschluss bei PIC18FxxJxx, PIC24, dsPIC33, PIC18FxxK50, PIC18FxxK80, PIC18K6xKxx, PIC18F8xKxx

    Bei den herkömmlichen PIC10F, PIC12F, PIC16F, PIC18Fxxxx, dsPIC30F wird das gesamte Innenleben des Mikrocontrollers mit einer einheitlichen Betriebsspannung Vdd betrieben (mal abgesehen von Vref oder Vusb, aber das ist ein anderes Thema). Nun weiß aber jeder PC-Overclocker, dass die Stromaufnahme und damit auch die Verlustleistung stark von der Höhe der Betriebsspannung abhängig ist. Das mag der Grund dafür sein, dass Microchip bei einigen Familien die Stromversorgung der Prozessorkerns von der Stromversorgung der Input/Output-Hardware trennte.

    Diese PICs besitzen zwei Betriebsspannungen, die auf getrennten Pins eingespeist werden kann.

    Es gibt nun grundsätzlich drei Varianten, wie man so eienen PIC mit Betriebsspannungen versorgt:
     Verlangt die Peripherie aber nach einem höheren Spannungspegel, so hat man weitere zwei Optionen. Meistens gilt:

    Es handelt sich also um ein recht komplexes Thema, und man kommt um ein genaues Studium der Datenblätter nicht herum.
    Hier nun eine detailliertere Übersicht darüber, wie man PICs mit so einer getrennten Stromversorgung, am Brenner9 bzw. Brenner8 anschließen kann. Darüberhinaus empfehle ich in der Nähe des zu brennenden Chips zwischen Vdd und Vss einen Keramilkondensator mit 200 nF ... 470 nF anzuschließen.


    PIC18(L)FxxJxx

    PIC18F2xJxx / PIC18F4xJxx
    Der Einfachheit halber empfehle ich für alle PIC18FxxJxx den internen Spannungsregler zu verwenden, und mit Vdd=3,3V zu arbeiten. 

    Am Vcore-Pin ist ein 10uF-Kondensator nach Vss anzuschließen. Mein Brenner9 kann hier problemlos eingesetzt werden.
    PIC18F6xJxx / PIC18F8xJxx
    Ein eventuell vorhandenes ENVREG-Pin (bei PICs ab 60 Pins) ist mit Vdd zu verbinden.
    PIC18LF2xJxx / PIC18LF4xJxx
    Bei PIC18LFxxJxx (mit maximal 44 Pins) muss man entweder Vdd und Vcore mit maximal 2,7V speisen, oder man verwendet getrennte Spannungen (z.B.  Vcore=2,5V; Vdd=3,3V). Das wird aber von meiner Brennerhardware NICHT direkt unterstützt.

    Eine (nicht erprobte) Lösung ist ein Betrieb mit 3,3V vom Brenner9 mit einer Absenkung der Spannung für Vcore mit Hilfe zweier Silizium-Dioden (keine Shottky-Typen!).


    PIC24, dsPIC33

    dsPIC33F / PIC24H

    Alle dsPIC33F- und PIC24H-Typen haben einen internen Spannungsregulator zur Versorgund des Prozessorkerns mit 2,5V, der nicht extra eingeschaltet werden muss. Es genügt, 3,3 V in Vdd einzuspeisen, und am Vcore (oder Vddcore) Pin einen 10 uF-Kondensator nach Vss anzuschließen.
    PIC24FJ mit mehr als 44 Pins

    Die PIC24FJ-Typen ähneln bei der Stromversorgung am ehesten des PIC18FxxJxx. Mit Hilfe des vorhandenen internen Spannungsregulators für die Kernspannung, lassen sie sich alle mit 3,3V betreiben.
    PIC24FJ mit maximal 44 Pins

    Eine Besonderheit weisen die PIC24FJ-Typen mit bis zu 44 Pins auf. Anstelle eines ENVREG-Pins besitzen sie ein DISVREG-Pin. Dieses entspricht einem invertierten ENVREG-Pin. Um den Spannungsregulator zu nutzen, ist dieses Pin also mit Vss zu verbinden.


    PIC18(L)F8xKxx
    Die meisten Mitglieder der PIC18FxxKxx-Familie (vor allem die kleineren) haben keinen separaten Vddcore-Anschluss und vertragen auch 5V. Sie lassen sich deshalb einfach mit dem Brenner8 programmieren die low-power-Typen PIC18LFxxKxx erfordern neben dem Brenner8 noch den 3,3V-Adapter, da sie nur maximal 4V vertragen.

    PIC18F6xK22 / 8xK22 / 6xK90 / 8xK90

    Aber auch in dieser Familie gibt es natürlich Ausnahmen.  Die großen (ab 60-Pins) Vertreter der PIC18FxxK22 und PIC18FxxK90 Gruppe haben Vddcore und ENVREG-Pins. Wird ENVREG mit Vdd verbunden, dann vertragen diese Typen 5V, und lassen sich mit dem Brenner8 wie auch mit dem Brenner9 brennen.
    PIC18F6xK22 / 8xK22 / 6xK90 / 8xK90

    Wird aber ENVREG mit Vss verbunden, dann beträgt die maximale Betriebsspannung nur 3,3V, und es kann der Brenner9 oder der Brenner8 mit 3,3V-Adapter eingesetzt werden.
    PIC18F1xK50

    Ganz exotische sind die PIC18(L)F1xK50-Typen. Diese benötigen während der Programmierung zusätzlich 3V an Vusb (warum auch immer). Dazu verwendet man den Brenner9 oder den Brenner8 mit 3,3V-Adapter und verbindet Vusb mit Vdd.


    nach oben

    Das ICSP-Kabel

    Ist es wirklich nötig, über ein einfaches Kabel Worte zu verlieren? JA ES IST NÖTIG.
    In der Belegung des Kabels gibt es eine Schwachstelle. Die für störende Einstreuungen sehr empfängliche CLK-Leitung muss dringend von den anderen Leitungen abgeschirmt werden. Dazu ist nun keine komplette Schirmung nötig, aber eine separate Masseleitung zwischen CLK und DATA ist wenigstens erforderlich. Aus diesem Grunde verwende ich in letzter Zeit stets 6-poliges Hosenträgerkabel mit 2 Masseleitungen: eine zwischen Vdd und DATA und eine weitere zwischen DATA und CLK. Das ist in den untenstehenden Stromlaufplänen deutlich zu sehen.

    Natürlich gibt es auch andere Lösungen, um ein Übersprechen auf die CLK-Leitung zu vermeiden, z.B. kann man die CLK-Leitung vom restlichen Kabel getrennt verlegen, wie es im Foto vom DIL-40-Adapter zu sehen ist. Man kann auf die Masseleitung zwischen Vdd und DATA auch verzichten, ihre Funktion erfüllt ja auch die Masse zwischen DATA und CLK. Wer High-endig baut, verwendet vielleicht ein 10-poliges Flachbandkabel, in dem jede zweite Leitung auf Masse liegt .....
    Da will ich keine weiteren Vorschriften machen, Hauptsache CLK ist vor Einstreuungen geschützt.

    Wer diese einfache Regel missachtet, wird feststellen, dass schon die Autodetect-Funktion meiner Brennersoftware nicht funktioniert. Vom Brennen ganz zu schweigen.

    Wie lang darf ein ICSP-Kabel eigentlich sein?
    Es sollte so lang wie nötig und so kurz wie möglich sein. Wer nur einen zusätzlichen Sockel adaptieren will, kommt mit 10 cm aus. Für ICSP sollten 20 cm auch genügen. Wenn CLK ordentlich geschirmt ist, sollte aber auch 1/2 Meter kein Problem sein. Zu lange Kabel und Kabel ohne jede CLK-Schirmung führen immer wieder zu Brenn-Problemen.

    nach oben


    universeller ICSP-Adapter für alle PICs/dsPICs im DIL-Gehäuse

     
    universeller DIL-Adapter für ICSP In diesem Adapter lassen sich alle PICs im DIL Gehäuse (8..40 Pins) am Brenner8 oder Brenner5 programmieren. Dazu müssen allerdings die 5 ICSP-Steuerleitung manuell mit Drahtbrücken mit den richtigen Pins des 40-poligen Testsockels verbunden werden.
     
    Mein Prototyp ist auf einer Streifenleiterplatte aufgebaut, und hat keinen ICD-Anschluss sondern nur mein Standard-ICSP-Kabel.

    Dieses Foto zeigt den Adapter an einem alten Brenner5. In diesem Fall wird er benutzt, um einen dsPIC30F3012  zu brennen.

    Natürlich funktioniert das auch an allen anderen Programmiergeräten mit 5-poligem ICSP-Anschluss.

    universeller DIL-Adapter für ICSP am
              Brenner5
    nach oben


    ICSP-ICD-Adapter

     
    ICSP-ICD-Adapter Viele Test-Platinen von Microchip (z.B. der universelle Programmieradapter) haben eine ICD-Buchse zum Anschluss von Brenner oder In-Circuit-Debugger. Dabei handelt es sich im Prinzip um einen ICSP-Anschluss. Allerdings benutzt Microchip hier einen 6-poligen Westernstecker.
    Am Brenner oder Debugger (z.B. ICD2) befindet sich ebenfalls eine Westernbuchse, allerdings mit spiegelbildlicher Pinbelegung. Aus diesem Grunde müssen Brenner und Testplatine mit einem Cross-over-Kabel verbunden werden.

    Ein einfaches Adapterkabel, das die Pins 1..5 des Westernsteckers auf einen 5-polige Steckerleiste verbindet, stellt die Verbindung zwischen meinem Standard-ICSP-Anschluss und dem Microchip-ICD-Anschluss her. Damit kann z.B. der Brenner5 (ab Rev.7e) PICs auf Microchip-Testplatinen brennen, oder der ICD2 von Microchip kann PICs auf meinen Testplatinen brennen und debuggen.

    Allerdings muss die 5-polige Steckerleiste dabei in meinen Brenner genau andersherum eingesteckt werden, wie in meine Testplatinen:

    • sprut-Brenner -> Microchip-Testplatine
    • Microchip-ICD2 -> sprut-Testplatine
    Der Adapter kann auch zum Anschluss des PICkit2 und des BFMP an Microchip-Testplatinen verwendet werden. Die Benutzung des sechsten Pins ist dabei nicht nötig.
    Im Michrochip-typischen ICD-Kabel laufen die Takt-Leitung und die Datenleitung direkt nebeneinander. Dadurch ist die Gefahr des Überkoppelns von Datenleitungssignalen auf die Taktleitung besonders groß. Der Brenner5 funktioniert deshalb mit so einem Kabel erst ab der Revision 7e (R11 auf 220 Ohm verringert). Außerdem sollte das Kabel nicht länger als unbedingt nötig sein.
    nach oben




    ICSP-Adapter für PIC10F-Typen
    Die PIC10F2xx haben eigentlich nur 6 Pins und werden im kleinen SOT23-Gehäuse geliefert. Es gibt aber auch eine DIL8-Version.

    ICSP-Adapter für 6-Pin 12-Bit-Kern-PICs im DIL-8-Gehäuse

     
    DIL-8-Adapter
                für ICSP. Die eigentlich 6-pinnigen PIC10F20x werden auch in einem 8-Pin-DIL-Gehäuse geliefert, bei dem 2 Pins nicht belegt sind. Für diese PICs passt der weiter unten beschriebene Adapter nicht.

    Einen elektrisch passenden DIL-8-Sockel, um die 12-Bit-Kern- PIC10F20x im niedlichen DIL-8-Gehäuse zu brennen hat keiner meinen Brennern.
    Aber an alle  Brenner (Brenner1/2/3/5/8) lassen sich diese Chips  über einen einfachen Adapter an den 5-poligen ICSP-Steckverbinder anschließen, und dann brennen.

    Dieser Adapter ist NICHT mit dem unten vorgestellten Adapter für normale 8-Pin-PICs identisch!

    Stromlauplan des DIL-8-Adapters Der nebenstehende Stromlaufplan stellt die Verbindung zwischen dem 5-poligen Stecker und dem DIL-8-Sockel dar. Der Sockel ist in der Draufsicht dargestellt.

    Wichtig ist die zusätzliche Masseleitung (blau) im Flachbandkabel. Sie schirmt die CLK-Leitung gegen Einstreuungen von den anderen Leitungen (insbesondere DATA) ab.

    nach oben



    ICSP-Adapter für PIC12F/PIC16F/PIC18F-Typen

    Die Pinbelegung der PIC16F und PIC18F ist ziemlich einheitlich.

    ICSP-Adapter für PICs im PLCC-44-Gehäuse

     
    PLCC-44-Adapter für ICSP. Keiner meiner Brenner hat einen PLCC-44-Sockel, um PIC16F871, PIC16F84(A), PIC16F877(A), PIC16F74 oder PIC16F77 im quadratischen PLCC-44-Gehäuse zu brennen. All diese Chips lassen sich aber über einen einfachen Adapter an den 5-poligen ICSP-Steckverbinder der Brenner1/2/3/5/8 anschließen, und dann brennen.
    Stromlauplan
                des PLCC-44-Adapters Der nebenstehende Stromlaufplan stellt die Verbindung zwischen dem 5-poligen ICSP-Stecker und dem PLCC-44-Sockel dar. Der Sockel ist so dargestellt, dass man von unten auf die Lötpins schaut.

    Wichtig ist die zusätzliche Masseleitung (blau) im Flachbandkabel. Sie schirmt die CLK-Leitung gegen Einstreuungen von den anderen Leitungen (insbesondere DATA) ab.

    Microchip empfiehlt generell alle Vss-Pins und alle Vdd-Pins anzuschließen. Bei mir geht es auch mit nur je einem Pin, wer aber einen Adapter neu baut, kann es ja gleich richtig machen, und der Microchip-Empfehlung folgen.

    nach oben


    ICSP-Adapter für PICs im SO-18-Gehäuse

     
    SO-18-Anschluß an ICSP. Für SMD-Gehäuse wie SO-18 (PIC16F84(A), PIC16F62x) gibt es keine Fassungen, die man auf eine Brennerplatine löten könnte. Auch ein richtiger Adapter lässt sich nicht bauen, aber man kann den Schaltkreis direkt an ein ICSP-Kabel löten.

    All diese Chips lassen sich damit an den 5-poligen ICSP-Steckverbinder anschließen, und dann brennen. Eleganter wäre es hier natürlich, den PIC in seine Schaltung einzulöten, und dort via ICSP zu brennen.

    Die Ausführung im nebenstehenden Foto und die einzelnen Leitungsfarben entsprechen nicht den Farben im untenstehenden Stromlaufplan.

    Stromlauplan
                des SO-18-Anschlusses Der nebenstehende Stromlaufplan stellt die Verbindung zwischen dem 5-poligen ICSP-Stecker und dem SO-18-Gehäuse da. Der PIC ist in der Draufsicht dargestellt.

    Beim 20-poligen SSOP-Gehäuse, muss die Beschaltung entsprechend abgeändert werden.

    Wichtig ist die zusätzliche Masseleitung (blau) im Flachbandkabel. Sie schirmt die CLK-Leitung gegen Einstreuungen von den anderen Leitungen (insbesondere DATA) ab.

    Korrektur:

    1. Wer bereit ist 200 Euro auszugeben, kann Adapter für SO-Gehäuse käuflich erwerben.
    2. Mit viel Geschick ist es doch möglich einen Adapter selber zu bauen (gebaut von "Lardz").
    Aber beides liegt jenseits der Schmerzgrenze des Normalanwenders.
    nach oben


    ICSP-Adapter für PICs im DIL-8-Gehäuse

     
    DIL-8-Adapter für ICSP. Einen separaten DIL-8-Sockel, um die 14-Bit- PIC12F629 und PIC12F675 im niedlichen DIL-8-Gehäuse zu brennen hat kaum ein Programmiergerät

    An alle Programmiergeräte mit ICSP-Anschluss lassen sich diese Chips aber über einen einfachen Adapter an den 5-poligen ICSP-Steckverbinder anschließen, und dann brennen.

    Stromlauplan des
                DIL-8-Adapters Der nebenstehende Stromlaufplan stellt die Verbindung zwischen dem 5-poligen Stecker und dem DIL-8-Sockel dar. Der Sockel ist in der Draufsicht dargestellt.

    Wichtig ist die zusätzliche Masseleitung (blau) im Flachbandkabel. Sie schirmt die CLK-Leitung gegen Einstreuungen von den anderen Leitungen (insbesondere DATA) ab.

     
    nach oben


    ICSP-Adapter für PICs im DIL-40-Gehäuse

     
    DIL-40-Adapter für ICSP.

    Das nebenstehende Foto zeigt noch den Prototyp einen Adapter für PICs im 40-poligen DIL-Gehäuse, die in Details noch nicht mit den darunter stehendem Stromlaufplan exakt übereinstimmt.

    Stromlauplan
                des DIL-40-Adapters Der nebenstehende Stromlaufplan stellt die Verbindung zwischen dem 5-poligen ICSP-Stecker und dem DIL-40-Sockel dar. Der Sockel ist in der Draufsicht dargestellt.

    Wichtig ist die zusätzliche Masseleitung (blau) im Flachbandkabel. Sie schirmt die CLK-Leitung gegen Einstreuungen von den anderen Leitungen (insbesondere DATA) ab.

    Bei billigen DIL-Fassungen lassen sich die einzelnen Pin-Kontakte oft mit einer Zange herausziehen. Man sollte alle nicht benötigten Kontakte aus der Fassung entfernen, um die Klemmkraft der Fassung klein zu halten. Dann lässt sich der PIC nach dem Brennen wieder leicht aus der Fassung herausziehen.

    Microchip empfiehlt generell alle Vss-Pins und alle Vdd-Pins anzuschließen. Bei mir geht es auch mit nur je einem Pin, wer aber einen Adapter neu baut, kann es ja gleich richtig machen, und der Microchip-Empfehlung folgen.

    nach oben


    ICSP-Adapter für dsPICs

    dsPICs haben eine abweichende Pinbelegung. Deshalb können die oben beschriebenen ICSP-Adapter leider nicht für dsPICs benutzt werden.

    ICSP-Adapter für dsPICs im DIL-40-Gehäuse
     
    ICSP-Brennadapter für
                  40-polige dsPIC Der nebenstehende Stromlaufplan stellt die Verbindung zwischen dem 5-poligen ICSP-Stecker und dem DIL-40-Sockel für eine dsPIC30F dar. Der Sockel ist in der Draufsicht dargestellt.

    Wichtig ist die zusätzliche Masseleitung (blau) im Flachbandkabel. Sie schirmt die CLK-Leitung gegen Einstreuungen von den anderen Leitungen (insbesondere DATA) ab.

    Bei billigen DIL-Fassungen lassen sich die einzelnen Pin-Kontakte oft mit einer Zange herausziehen. Man sollte alle nicht benötigten Kontakte aus der Fassung entfernen, um die Klemmkraft der Fassung klein zu halten. Dann lässt sich der PIC nach dem Brennen wieder leicht aus der Fassung herausziehen.

    Microchip empfiehlt generell alle Vss-Pins und alle Vdd-Pins anzuschließen. Deshalb habe ich hier auch die Pins 31, 32, 39 und 40 angeschlossen. Mir wurde berichtet, das sich ein PIC nicht brennen ließ, solange Analog-Beriebsspannungs-Pins (39&40) nicht angeschlossen wurden.

    Leider gibt es zwei unterschiedliche Pinbelegungen für den ICSP-Anschluss an 40-Pin-dsPICs

    Dieser erste Adapter eignet sich  für folgende (General Purpose and Sensor Family) Typen:

    • dsPIC30F3014
    • dsPIC30F4013 

     
    ICSP-Brennadapter für 40-polige dsPIC Während dieser Adapter für folgende (Motor Control Family) Typen geeignet ist:
    • dsPIC30F3011
    • dsPIC30F4011 
    Die Betriebsspannung wird in beiden Varianten gleich angeschlossen, aber es werden unterschiedliche Pins für die Datenleitung und die Taktleitung verwendet.

    nach oben


    SMD-ICSP-Adapter

    Dieser Adapter für SMD-Chips geht auf eine Email zurück, die ich vor geraumer Zeit bekam, die ich aber leider nicht mehr in meinem Email-Archiv finden konnte. PLCC-44-Fassungen sind für Chips mit einem Pinabstand von 1,27mm ausgelegt. Den selben Pinabstand haben auch SMD-PICs im SOIC- bzw. SSOP-Gehäuse.

    Man zersägt eine PLCC-44-Fassung so, dass nur noch zwei gegenüberliegende Stege übrig bleiben. Die lötet man dann im geeigneten Abstand auf einer Lochrasterplatine fest. Nun kann man einen SMD-Chip (SOIC, SSOP) "kopfüber" auf die Fassung legen. Durch eine Halterung (z.B. ein Stück Draht) wird er etwas nach unten gedrückt, so dass die federnden Kontakte der PLCC-44-Fassung einen sicheren Kontakt herstellen. Auf diese Art und Weise kann man 18-polige und 20-polige Chips an den Brenner anschließen, ohne sie verlöten zu müssen.
    Den fertig programmierten PIC kann man der Fassung entnehmen, und dann in seine endgültige Schaltung einlöten.

      SMD-Adapter

    Das Beispielfoto zeigt einen PIC18F1330-E/SO. (anklicken für Detailfoto)
    nach oben


    Aufsteck-Adapter

    Von Holger stammt dieser Aufsteckadapter, der auf den ICSP-Steckverbinder des Brenner8 passt.
    Im Vergleich zum Kabeladapter ist er etwas aufwendiger zu fertigen, aber robuster. Auch um das Überkoppeln auf die Taktleitung braucht man sich hier keine Gedanken zu machen.

    Der schwarze Zylinder ist ein "Fuß" mit dem sich der Adapter auf einer freien Flache auf dem Brenner8 abstützt.
    Adapter
    Adapter Rückseite

    nach oben


    zurück zu PIC-Prozessoren , Elektronik , Homepage
    Autor: sprut
    letzte Änderung: 08.05.2012