Open-Drain Pin an MCLR anschließen

OP #3489861
Lesenswert?

Hallo,
ich habe mir überlegt (mit hilfe von Google ) die Programmierschaltung 
für meinen PIC18f46j11 wie im Anhang dargestellt auszuführen. Ich denke 
das sollte ja funktionieren. Das Problem das ich jetzt habe ist das ich 
den MCLR mit dem Ausgang eines auf der Platine verbauten IC's ebenfalls 
auf LOW ziehen möchte (der IC hat LOW auf seinem Ausgang wenn er in 
einen Fehlerhaften zustand geht. In dem Fall möchte ich den µC ebenfalls 
reseten).
Der IC hat leider keinen open-collector Ausgang sondern einen open-drain 
Ausgang mit 40k internen Pull-up Widerstand. Mir ist jetzt leider 
überhaupt nicht klar wie ich das ganze realisieren könnte, so das ich 
gleichzeitig Programmieren und trotzdem den IC an MCLR anschließen kann.

Einen 0 Ohm Widerstand einzubauen um beim Programmieren den IC 
wegzuschalten wäre ja eine Möglichkeit denke ich mir. Nur halt sehr 
fehleranfällig fals ich mal vergesse den bei Neuprogrammieren 
auszulöten.

Besten Dank

LG Johannes
Angehängte Dateien:
Gast #3491456
Lesenswert?

Hallo,

open drain ist so änlich wie open collector. Eignetlich könnte man die 
direkt zusammenhängen, wenn das PICkit nicht wäre. Das wird nämlich 
vermutlich auf den MLCR aktiv eine Spannung treiben.

--> Programming specification genau lesen! Speziell was High Voltage 
Programming angeht. Ich bin mir nicht sicher, ob da nicht auch mal mehr 
als 3.3V daherkommen können.

Wenn das PICkit nur 3V3 an MLCR ausgibt, kannst du  den PIN von deinem 
IC über einen Serienwiderstand (z.B. 1k) kontaktieren. Der 
Serienwiderstand muss zwischen dem PICkit und dem IC sitzen, und den 
Strom begrenzen, wenn der IC "0" treibt und das PICkit 3,3V. Dein IC 
muss dann 3,3mA sinken können - steht im Datenblatt.

Der 1k spielt Spannungteiler mit den Pullups. Weil der Unterschied groß 
genug ist (1k<>22k-->140mV, 1k<>40k-->70mV, jeweils + Sättigungsspannung 
des Reset"erzeugers"), ist das aber ok. Du kannst zur Sicherheit noch 
die Pegel im Datenblatt nachschauen (Minimum LOW Treshold oder so 
ähnlich).

Kann dein IC keine 3.3mA Dauerstrom musst du mehr Widerstand nehmen und 
die Pegel nachrechnen. Zu nahe an die Treshold würde ich nicht gehen, 
dann wirds störanfällig.
OP #3491484
Lesenswert?

Hallo, also zusammengefasst würde das wie im Anhang aussehen.
Ich habe zusätlich die Diode am MCLR noch durch eine Schottky Diode 
erstetzt (hab ich noch irgendwo im Internet gelesen das das besser wäre.
Wegen dem Strom bin ich mir nicht ganz sicher. Im Datenblatt 
(http://www.onsemi.com/pub_link/Collateral/NCN5120-D.PDF) auf Seite 8 
steht für Outputs IOL = 4mA. Leider weiß ich nicht ob das der gesuchte 
maximale Strom ist.

Jetzt sollte das ganze doch eigentlich wie folgt funktionieren:
* Die Schaltung wird nicht aktiv versorgt aber das PICkit ist 
angeschlossen --> ich kann programmieren und debuggen (ohne Peripherie 
anzusprechen) da der PIC über +3.3V-PIC versorgt wird, der Rest aber 
über +3V3 und da kann aber wegen der rechten Diode kein Strom fließen.

* Die Schaltung wird aktiv versorgt und PICkit ist angeschlossen
--> ich kann programmieren und debuggen (mit Peripherie) wobei die 
Versorgung für die Peripherie von +3V3 und nicht vom PICkit kommt. Die 
Versorgung für den PIC kommt vom PICkit.
Setzt die Peripherie den MCLR auf low wird das programmieren nicht mehr 
funktionieren wenn das PICkit nicht aktiv eine Spannung treibt. Falls 
doch sollte es schon gehen oder?


* Die Schaltung wird aktiv versorgt und kein PICkit ist angeschlossen
--> PIC und Peripherie werden über +3V3 versorgt und der normale Betrieb 
funktioniert.

Liege ich mit meinen Deutungen richtig?
Angehängte Dateien:
OP #3491574
Lesenswert?

Hallo, leider versteh ich den letzten Post nicht.
Es gibt doch einen Pull Up mit 22k an MCLR. Noch einer mehr?
Das mit der Diode verstehe ich auch nicht. Die soll noch in Serie mit 
dem 1k Widerstand? Was genau bringt das? Wenn der IC durchschaltet und 
das PICkit aktiv treibt ändert sich nichts. Wenn der IC nicht 
durschaltet und das PICkit Low treibt dann sieht er halt nicht die 
Paralleschaltung aus 22k und 41k sondern nur die 22k, da sollte sich 
doch auch nicht sehr viel ändern oder?

Kannst du mir das ev. etwas genauer erklären
Gast #3491730
Lesenswert?

Hallo,

das passt schon so.
Prüfe aber noch, ob dass das PICkit hier nicht mehr als 3V3 anlegt. Bei 
einem PIC bei mir (12F1840) habe ich das glaube ich einmal gesehen.

@./. Was genau meinst du mit richtigem Pullup? Zum hochziehen des 
Signals hängen doch ohnehin schon 22k (Pullup) parallel mit 40k (im IC) 
= 14,7k  drin? Wenn hier keine 5m Leitung dranhängen sollte das doch 
reichen?

Den Zweck der Diode verstehe ich nicht. Da der IC Ausgang ein Open drain 
ist, kann er kaum Strom herausdrücken, nur die paar µA vom Pullup.
Gast #3491756
Lesenswert?

Hallo,

zu den Angaben im Datenblatt:

IL ist die Angabe für den max. Laststrom. Je nach PIN sind -4 oder -8mA 
erlaubt (- ist nur die Richtungsangabe). Die 3.3mA sind also auf alle 
Fälle in Ordnung.

VOL Ist der Spannungsabfall am IC-Pin, durch den Strom in den PIN 
verursacht (400mA), das ist das garantierte Maximum der Spannung für 
einen LOW-Pegel, wenn du den angegebenen Strom hineinfließen lässt.

VIL Ist die Treshold. Von 0 - 0,7V erkennt dein IC sicher logisch LOW.

Übrigens hat dein Pullup nicht 40k, sondern 20-80k. Rechnen muss man 
immer mit dem ungünstigsten Wert, das wären 20k - passt aber auch.
Gast #3493440
Lesenswert?

Hallo,

die Dioden passen schon.

Stelle aber zu 100% sicher, dass du Low Voltage Programming verwendetst. 
Ansonsten legt dir das PICkit beim programmieren an diesen Pin eine 
Spannung >3,3v an und kann dir deinen IC zerstören.

Siehe auch angehängtes Bild für MPLABX.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren