Forum: Mikrocontroller und Digitale Elektronik Programmier Pins beim PIC


von Creo_123 (Gast)


Lesenswert?

Guten Abend.. ich nutze einen dsPIC33 und so langsam wird es knapp mit 
den Pins;) Daher die Frage, ob ich den PGEC- und PGED-Pin neben dem 
Programmieren gleichzeitig auch als Ein- bzw. Ausgang nutzen kann. Würde 
die entsprechenden Pins dann auf meinem Board nach außen führen, um den 
Programmieradapter anzuschließen. Wenn der Adapter nicht mehr 
angeschlossen ist, führen die Leiterbahnen ja einfach ins Leere, d.h. 
ich müsste die Pins ja auch andersweitig nutzen können oder kann das zu 
irgendwelchen Problemen während der Programmierung führen? Würde sie 
beispielsweise gerne als CLK und SDI für das SPI-Modul nutzen.

Mir fehlen nur zwei Pins für meine Anwendung. Deshalb möchte ich es 
gerne vermeiden zum nächst größeren Controller zu wechseln.

von Carsten S. (dg3ycs)


Lesenswert?

Hi,

Creo_123 schrieb:
> Guten Abend.. ich nutze einen dsPIC33 und so langsam wird es knapp mit
> den Pins;) Daher die Frage, ob ich den PGEC- und PGED-Pin neben dem
> Programmieren gleichzeitig auch als Ein- bzw. Ausgang nutzen kann.

Grundsätzlich möglich und auch so vorgesehen.
Bei vielen Controllern im übrigen auch beim !MCLR möglich, den du ja 
auch zum Programmieren brauchst.

> Würde
> die entsprechenden Pins dann auf meinem Board nach außen führen, um den
> Programmieradapter anzuschließen. Wenn der Adapter nicht mehr
> angeschlossen ist, führen die Leiterbahnen ja einfach ins Leere, d.h.
> ich müsste die Pins ja auch andersweitig nutzen können oder kann das zu
> irgendwelchen Problemen während der Programmierung führen? Würde sie
> beispielsweise gerne als CLK und SDI für das SPI-Modul nutzen.

Es gibt bei der Nutzung sowohl für Prog- als auch normale IO Pins 
allerdings ein paar Dinge die man beachten muss. Dazu sollte es aber 
auch einen Hinweis im Datasheet bzw. Family Datasheet geben.

Zusammengefasst ist aber darauf zu achten das der Restliche Teil der 
Schaltung der neben dem Programmer an dem Pin sitzt hochohmig genug ist.
Dein Problem sind ja normalerweise nicht die freien Leitungen wenn der 
Programmer nicht angeschlossen ist (Ok, wer so "blöd" ist und den PRG IO 
mit dem Eingang des 12Bit AD Wandlers bei einer Signalquelle mit hoher 
Impedanz teilen will hat dann evtl. doch ein Problem), sondern das die 
angeschlossene Schaltung deinen Programmiervorgang stört!

Daher sollte zwischen Programmieranschluss und der Restlichen Schaltung 
ein Widerstand von mind. 4,7K besser 10K vorgesehen werden. (ICSP 
natürlich direkt an den µC)

Es ist daher geschickt dann solche Peripherie darauf zu legen wo das 
nicht stört, beispielsweise eine Tastenabfrage, digitaler Eingang oder 
wenn man einen Ausgang an diesem Pin braucht halt nur für Anwendungen wo 
alleine die Spannung, nicht aber der Maximale Strom wichtig ist. (Also 
alles wo das Signal direkt wieder in einen hochohmigen Eingang geht, 
aber LED & Co treiben kann man vergessen!)

Alternativ bleibt halt noch die Notlösung mit Jumpern o.ä. die 
verbindung zur Restlichen Schaltung zu unterbrechen. Dann geht natürlich 
praktisch jede Verwendung.

Allerdings gibt es einen manchmal wichtigen Nachteil:
Je nach Funktion die man auf den ProgPins nutzt verbaut man sich die 
Möglichkeit zu Debuggen oder man kann noch debuggen aber ein Teil der 
Schaltung funktioniert nicht.

Gruß
Carsten

von Max H. (hartl192)


Lesenswert?

Bein DSPIC33 weiß ich es nicht, aber beim PIC24 und beim PIC18 kann man 
die ICSP Pins auch als IOs benutzen, es sollte eim dsPIC33 auch gehen. 
Man muss aufpassen, dass man das Programmiergerät nicht zu viel 
belastet: http://ww1.microchip.com/downloads/en/DeviceDoc/52010A.pdf

: Bearbeitet durch User
von Creo_123 (Gast)


Lesenswert?

Vielen Dank für die ausführlichen Antworten!

Habe eh einige Taster in meiner Schaltung und werde die dann auf die 
beiden Pins legen, die ich auch für den Programmieradapter nutze.. der 
Taster ist ja im Normalfall eh geöffnet, d.h. da liegt dann sonst gar 
nichts mehr an (außer der hochohmige Pulldown-Widerstand auf Ground).

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.