Forum: Mikrocontroller und Digitale Elektronik Open-Drain Pin an MCLR anschließen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johannes M. (johannes_m35)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

von Johannes M. (johannes_m35)


Bewertung
0 lesenswert
nicht lesenswert
Keine Ideen?

von Dingens23 (Gast)


Bewertung
0 lesenswert
nicht 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.

von Johannes M. (johannes_m35)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

: Bearbeitet durch User
von ./. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mach mal einen richtigen* Pull-Up ans MCLR und eine Diode in Richtung
Deines IC, dass er den MCLR auf Low ziehen kann.

(* richtig: 10-22k)

Dann wird das auch was.

von Johannes M. (johannes_m35)


Bewertung
0 lesenswert
nicht 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

von Dingens23 (Gast)


Bewertung
0 lesenswert
nicht 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.

von Dingens23 (Gast)


Bewertung
0 lesenswert
nicht 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.

von Johannes M. (johannes_m35)


Bewertung
0 lesenswert
nicht lesenswert
Danke für die guten Hilfestellungen.
Ich glaube ich habe jetzt Verstanden wie das ganze funktioniert.
Eine letzte Frage habe ich aber noch. Ist für die beiden Dioden eine 
Schottky Diode vom Typ BAT54HT1G geignet. Habe von denen noch ein paar 
und würde die gleich verwenden.
Für die Diode bei Vdd sollte in der Regel auch eine 1N4148 reichen oder?

von Dingens23 (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.