Forum: Mikrocontroller und Digitale Elektronik ICSP für 3,3V PIC-System


von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

Hallo zusammen,

ich habe eine Schaltung die auf 3,3V ausgelegt ist.
Den PIC18LFXX möchte ich per ICSP programmieren.

Da der Pic zur Programmierung aber 5V benötigt versorge ich den Pic mit 
5V über den ICD2 und trenne die restliche Schaltung über eine 
BAT64-Diode von den 5V.

Das Problem ist, dass die Pegel an den Ausgängen vom PIC auch 5V 
annehmen, was die Schaltung natürlich nicht verträgt.

Daher möchte ich die 5V nur während des Programmier-Vorgangs zuschalten. 
Natürlich automatisch und nicht per Taster ;-)

Hat jemand hierfür eine Lösung (oder eine Lösung wie man den PIC bei 
3,3V programmiert) ?

Gruß,
 Tobias

von (prx) A. K. (prx)


Lesenswert?

Tobias John schrieb:

> Hat jemand hierfür eine Lösung (oder eine Lösung wie man den PIC bei
> 3,3V programmiert) ?

Indem man einen PIC nimmt, der das kann. Ich hab grad mal bei den 
2xxx/4xxx reingesehen, die können.

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

> Indem man einen PIC nimmt, der das kann.

Andere (echte) Lösungen für mein Problem?

von holger (Gast)


Lesenswert?

>Da der Pic zur Programmierung aber 5V benötigt versorge ich den Pic mit

5V braucht er nur für ChipErase. Zum programmieren nicht.

> Hat jemand hierfür eine Lösung (oder eine Lösung wie man den PIC bei
> 3,3V programmiert) ?

Bootloader wäre eine Lösung.

von (prx) A. K. (prx)


Lesenswert?

Tobias John schrieb:

> Andere (echte) Lösungen für mein Problem?

Du hast den Typ bis jetzt nicht genannt. Vielleicht kann er.

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

> Du hast den Typ bis jetzt nicht genannt. Vielleicht kann er.
PIC18LF452

von (prx) A. K. (prx)


Lesenswert?

Nu also, der kann doch. Nur, wie schon geschrieben, keinen Bulk Erase. 
Ich hab aber nicht parat, wie man die Programmiersoftware zu Row Erase 
statt Bulk Erase überreden kann. Der PIC selbst jedenfalls kann es.

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

A. K. schrieb:
> Nu also, der kann doch. Nur, wie schon geschrieben, keinen Bulk Erase.
> Ich hab nur nicht parat, wie man die Programmiersoftware zu Row Erase
> statt Bulk Erase überreden kann. Der PIC jedenfalls kann es.

Oh man, jetzt wirds kompliziert G

Wenn mir den Zusammenhang jemand näher erläutern kann wäre ich 
demjenigen sehr dankbar.

D.h. wenn ich die Programmiersoftware dazu überreden kann, dann kann ich 
den PIC bei 3,3V laufen lassen und über PGC/PGD den Pic programmieren?

Gruß,
 Tobias

von (prx) A. K. (prx)


Lesenswert?

Tobias John schrieb:

> D.h. wenn ich die Programmiersoftware dazu überreden kann, dann kann ich
> den PIC bei 3,3V laufen lassen und über PGC/PGD den Pic programmieren?

Korrekt.

Es gibt von Microchip eine separate Doku zur Programmierung der Dinger. 
Da steht zwar weit mehr drin als du wissen willst, aber eben auch dies.

von K. J. (Gast)


Lesenswert?

also wen du nen ICD2 benutzt einfach auf traget power stellen dann kommt 
deine schalte mit 5v nicht in berürung

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

K. J. schrieb:
> also wen du nen ICD2 benutzt einfach auf traget power stellen dann kommt
> deine schalte mit 5v nicht in berürung

Ich werde das morgen mal probieren.

Aber ich meine ich hätte das bereits einmal probiert - jedoch kommt dann 
die Fehlermeldung, dass die Daten nicht verifiziert werden konnten - 
also kommt es dann zu keinem erfolgreichen Programmiervorgang.

Ich habe nur PCD, PGC und GND verbunden.

von (prx) A. K. (prx)


Lesenswert?

Hintergrund: Es gibt zwei Arten den Chip zu löschen.

Einerseits Selbsttätig = Bulk Erase/Chip Erase. Das geht je nach Typ 
erst ab 3,0V (4stellig) oder 4,5V (3stellig).

Andererseits im Rahmen der nomalen Programmierung häppchenweise. Das 
geht ab 2,0V.

Jetzt musst du nur noch rauskriegen, ob dein unbekannt gebliebenes 
Programmiergerät mit weniger als 5V überhaupt zurecht kommt, und wie man 
die unbenannt gebliebene Programmiersoftware dazu bringt, es zu tun. 
Wenn sie es nicht selber merkt.

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

A. K. schrieb:
> Jetzt musst du nur noch rauskriegen, ob dein unbekannt gebliebenes
> Programmiergerät mit weniger als 5V überhaupt zurecht kommt, und wie man
> die unbenannt gebliebene Programmiersoftware dazu bringt, es zu tun.
> Wenn sie es nicht selber merkt.

http://www.digitale-elektronik.de/shopsystem/USB-ICD2_User-Guide_Version_6-12-3_deutsch.pdf

Das ist mein Programmer.

Ich benutze MPLAB-IDE.

von (prx) A. K. (prx)


Lesenswert?

Der Programmer kann es jedenfalls, steht drin. MPLAB habe ich grad nicht 
parat, kann man darin vielleicht irgendwo einstellen. Probier auch mal 
was K.J. oben geschrieben hat.

von K. J. (Gast)


Lesenswert?

ja der passt des unbedinkt vorm anstopseln einstellen benutze mplab 
nicht aber ich glaub da wo man den Programmierer auswählt gibt es was 
zum configurieren wen des umgestelt ist müsste er da auch VDD=0V im 
nicht angeschlossenden zustand anzeigen b.z.w dann 3,3V im 
angeschlossenden zustand wen die schalte mit den 3,3v versorgt wird des 
ist alles kein problem die lf typen sind ja extra dafür gebaut.


Aufpassen beim programieren kann es passieren das der pic kurtz anfängt 
zu arbeiten meist zwischen programieren und vergleichen also wen was 
dran ist was nicht geschaltet werden darf vorher abklemmen.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Ich möchte dieses Thema auch nochmal aufgreifen:

Bisher hab' ich immer 5V PIC-Schaltungen aufgebaut mit den PIC16Fxxx 
bzw. PIC18Fxxx

Als Programmer nutze ich diesen: http://www.stolz.de.be

Klappt auch soweit super!

Jetzt möchte ich aber gerne auch mal einen PIC24FJ64GA002 benutzen
http://ww1.microchip.com/downloads/en/DeviceDoc/39881c.pdf

Dieser Chip kann jedoch nur mit max. 3,6V betrieben werden (würde ihn 
dann wohl mit 3,3V betreiben). Bei den I/O's steht "5V tolerant".

Jetzt meine Fragen:
-Kann dieser PIC mit dem Programmer geflasht werden?
-MCLR (13V) schließe ich dann nicht an?
-Gibt es weiteres zu beachten?

Vielen Dank & schöne Grüße,
Alex

von (prx) A. K. (prx)


Lesenswert?

Alex Bürgel schrieb:

> Dieser Chip kann jedoch nur mit max. 3,6V betrieben werden (würde ihn
> dann wohl mit 3,3V betreiben). Bei den I/O's steht "5V tolerant".

Innerhalb der Spezifikation für's Programmieren bist du damit nicht, 
denn die schreibt beim Input max Vdd vor.

Das ist bei den Microchippern übrigens regelmässig ein separates 
Dokument, also nicht im Datasheet.

> -Kann dieser PIC mit dem Programmer geflasht werden?

Vermutlich nicht. Mit welchem übrigens? Auf der Seite gibt es 2 
verschiedene.

> -MCLR (13V) schließe ich dann nicht an?

Ohne MCLR geht da reinweg garnix, nur sind bei den PIC24F keine 13V 
nötig.

> -Gibt es weiteres zu beachten?

Dass die zur Hardware passende Programmiersoftware den PIC24F ebenfalls 
auf der Rechnung hat. Wenn nicht => vergiss es.

Tip: Anderen Programmer besorgen. ICD2 Nachbauten gibt's wie Sand am 
Meer.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

A. K. schrieb:

> Dass die zur Hardware passende Programmiersoftware den PIC24F ebenfalls
> auf der Rechnung hat. Wenn nicht => vergiss es.

Die Programmiersoftware ist MPLAB

> Tip: Anderen Programmer besorgen. ICD2 Nachbauten gibt's wie Sand am
> Meer und Debuggen geht dann auch.

Der Programmer von http://www.stolz.de.be wird als "ICD2-Nachbau" 
gehandelt.

Kennst du einen (besseren) Nachbau? (mit USB)

von (prx) A. K. (prx)


Lesenswert?

Alex Bürgel schrieb:

> Der Programmer von http://www.stolz.de.be wird als "ICD2-Nachbau"
> gehandelt.

Ist aber deutlich eingedampft. Es fehlen beispielsweise die 
Pegelwandler, die ihn für 3,3V Devices geeignet machen. Kommt bei ICD2 
Clones wohl nicht so selten vor, man muss schon drauf achten ob 
2V-Programmierung explizit erwäht wird.

Mag sein, dass sich das umbauen lässt. Schaltbilder zum ICD2 findet man 
im Netz.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

>Mag sein, dass sich das umbauen lässt. Schaltbilder zum ICD2 findet man
>im Netz.

Kennst du denn einen, den du explizit empfehlen kannst?

von (prx) A. K. (prx)


Lesenswert?

Ich hatte diesen gekauft, war damals wohl auf ebay angeboten: 
http://www.sivava.com/MPLAB_ICD2.html.

Low voltage hat sich bei mir noch nicht ergeben, steht aber explizit 
dabei und sieht vom Innenleben her auch danach aus. Bisher ausprobiert: 
PIC18F258 und irgendein dsPIC30F20xx, jeweils 5V.

von K. J. (Gast)


Lesenswert?

Hi, ja den hab ich auch nen feines teil aber echtes LVP kann der auch 
nicht für LVP braucht man noch PGM aber ich glaub des hat selbst der 
org. ICD2 nicht.

von (prx) A. K. (prx)


Lesenswert?

Halblang, ich bin da zusammen mit Sivava etwas in die sprachliche Falle 
von Microchip geraten. Ich hatte den Begriff "low voltage" direkt aus 
deren Aussage übernommen und meinte damit genau wie Sivava die 
Versorgungsspannung des Controllers, nicht den sogenannten "low voltage 
programming" LVP-Modus einiger PIC18. Ich hatte damit einfach nur eine 
Programmierung unterhalb von Vcc=5V gemeint, während Microchip das auf 
eine nicht erforderliche hohe Programmierspannung am Reset-Pin bezieht.

Wobei die PIC24/33 übrigens bei normaler Reset-Spannung programmiert 
werden, entsprechend LVP bei manchen PIC18, ohne dafür aber einen 
PGM-Pin zu benötigen.

von K. J. (Gast)


Lesenswert?

Ja ist teilweise etwas merkwürdig den sivaia Programmierer kann man wohl 
dafür nachrüsten die Platine ist dafür vorgesehen aber es ist nicht 
bestückt bei mir fehlt da nur nen levelschifter und nen bisschen 
Hünerfutter.

ist ja auch wurst jeden falls geht das mit 3,3V aber halt nur wen die 
3,3V aus der Schaltung kommen übrigens auch bei den 16LF*A

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Gut, habe mir den Sivava-Programmer gestern bestellt und freue mich 
schon darauf nun auch PIC24FJxxxx nutzen zu können...

von (prx) A. K. (prx)


Lesenswert?

Bei meinem Exemplar sind im Bereich vom Target-Interface nur 2 Dioden 
und ein elektronisches Poti MCP41010 unbestückt, was im nicht 
identischen aber eher ähnlichen Schaltplan von 
http://www.nebadje.org/doku.php?id=neblab:icd2clone den exakten Wert der 
"13V" Programmierspannung kontrollierbar macht.

Die als Pegelwandler eingesetzten 74HC125 und 126 sind jedenfalls drin. 
Der für den Eingangspegel zuständige 74HC126 läuft mit 3,3V, was bei 
einer Targetspannung von nur 2,0V zwar nicht offiziell passt, aber in 
der Praxis vielleicht noch funktionieren wird. Nebadje verwendet 74AHCT, 
was aufgrund deren asymmetrischer Charakteristik bei 2,0V möglicherweise 
besser funktioniert, aber bei Vdd=3,3V genauso inoffiziell ist. Für die 
Begrenzung der Eingangsspannung bei einer Targetspannung oberhalb von 4V 
sind wahrscheinlich Serienwiderstände zuständig. Diese Art der 
Pegelanpassung ist zwar etwas mit der Brechstange entworfen, aber 
funktioniert wohl. Bei einer Targetspannung von 2,0V könnte es etwas 
knapp werden.

von Potter (Gast)


Lesenswert?

Ich habe einen Standard-Programmer mit folgendem Anschluss:

1 - VPP, 2 - VDD, 3 - GND, 4 - PGC, 5 - PGD

Davon habe ich 4 Leitungen mit Ausnahme von VDD auf einen Stecker 
gelegt, womit ich dann meine Schaltungen programmiere. Das Programmieren 
(allerdings bisher nur bei 5 V PIC's ausprobiert) funktioniert 
einwandfrei. Die Schaltung wird dabei extern mit 5 Volt (für VDD) 
versorgt. Und ob ich jetzt 5 Volt oder 3.3 Volt von einer externen 
Quelle an den PIC hänge, juckt den Programmer nicht, da keinerlei 
Verbindung zwischen VPP und VDD besteht.

Gruß Potter

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

A. K. schrieb:
> Der Programmer kann es jedenfalls, steht drin. MPLAB habe ich grad nicht
> parat, kann man darin vielleicht irgendwo einstellen. Probier auch mal
> was K.J. oben geschrieben hat.

Also um noch einmal auf mein Problem zurückzukommen.

Ich habe das nun ausprobiert - ohne Erfolg.

Mein Programmer liefert immer 5V - egal welche Einstellung ich im MPLAB 
vornehme.

Ich vermute mein ICD2-Clone ist kein "echter" Clone  -  daher rührt das 
Problem.

Lasse ich die 5V-Versorgung weg, so sagt MPLAB mein Target-Chip sei 
nicht korrekt erkannt worden.

Das funktioniert also nicht ... any Ideas?

von Potter (Gast)


Lesenswert?

Du schreibst da was von 'LF'. Wenn mich nicht alles täuscht ist dessen 
interner 2.5 Volt Regulator abgeschaltet/nicht vorhanden. D.h. Du musst 
das Teil mit 3.3 V für die IO's und 2.5 Volt für den Core versorgen. 
Jedenfalls ist das beim PIC18LF46J50 so.

von Master S. (snowman)


Lesenswert?

> Das funktioniert also nicht ... any Ideas?
unter programmer->options kannst du self-powered oder so was ähnliches 
auswählen. dann werden die schnittstellentreiber ncht vom ICD2 gespiesen 
sondern von der zielspannung (ev. auch gerade umgekehrt anklicken). 
wichtig ist: falls du es aktivierst, muss die richtige spannung 
eingestellt sein. vielleicht ist's ja das.

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

Potter schrieb:
> Du schreibst da was von 'LF'. Wenn mich nicht alles täuscht ist dessen
> interner 2.5 Volt Regulator abgeschaltet/nicht vorhanden. D.h. Du musst
> das Teil mit 3.3 V für die IO's und 2.5 Volt für den Core versorgen.
> Jedenfalls ist das beim PIC18LF46J50 so.

Dies ist nicht der Fall beim 18lf452.

Master Snowman schrieb:
>> Das funktioniert also nicht ... any Ideas?
> unter programmer->options kannst du self-powered oder so was ähnliches
> auswählen. dann werden die schnittstellentreiber ncht vom ICD2 gespiesen
> sondern von der zielspannung (ev. auch gerade umgekehrt anklicken).
> wichtig ist: falls du es aktivierst, muss die richtige spannung
> eingestellt sein. vielleicht ist's ja das.

Wir drehen uns im Kreis - die Einstellung hat keinerlei Auswirkungen auf 
den VDD-Pin von meinem ICD2 (siehe letzter Post von mir).

von Master S. (snowman)


Lesenswert?

während des schreibens einer weiteren antwort, habe ich STGR-A dann DEL 
gedrückt, da ich erkannte, dass deine letzte überaus dankbare antwort 
klar zu verstehen gibt, dass du offensichtlich weisst, wie der 
original-ICD2 funktioniert und was MPLAB bei dieser option beim 
original-ICD2 macht und somit alles wunderbar funktioniert - oder 
vielleicht doch nicht? egal, nichts für ungut, tschüüss.

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

Master Snowman schrieb:
> während des schreibens einer weiteren antwort, habe ich STGR-A dann DEL
> gedrückt, da ich erkannte, dass deine letzte überaus dankbare antwort
> klar zu verstehen gibt, dass du offensichtlich weisst, wie der
> original-ICD2 funktioniert und was MPLAB bei dieser option beim
> original-ICD2 macht und somit alles wunderbar funktioniert - oder
> vielleicht doch nicht? egal, nichts für ungut, tschüüss.

Ohne jetzt eine Grundsatzdiskussion anzufangen:

Wieso fühlt sich eigentlich jeder gleich auf den Schlips getreten sobald 
man anfängt zu diskutieren und versucht ein Problem näher zu 
erläutern?!?!
Niemand ist unfehlbar - und den Gedanken sollten man stets haben wenn 
man in derartigen Foren sein Wissen versucht preis zu geben.

Schlussum: Mein vermeintlicher ICD2 von embedded-channel hat sich wohl 
als Fehlkauf herausgestellt - zumindest wenn man versucht einen PIC 
unter 5V zu programmieren.

von K. J. (Gast)


Lesenswert?

Hi,

Reinteoretisch sollte der Wandler von sprut auch mit nem ICD laufen nen 
versuch ist es wert.

http://sprut.de/electronic/pic/projekte/brenner9/adapter.gif

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

Oh... das ist mal ne Idee - das werd' ich mal versuchen!

Dank Dir!!

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.