Halten Sie Vpp von anderen Pins in der PIC-MCU fern

Ich habe die folgende Schaltung mit PIC16F627a, die ICSP unterstützen sollte (in Autocad gezeichnet statt im integrierten Editor). IO-Pins, die für meine Frage nicht relevant sind, werden weggelassen.

Die Ausgänge RB5 und RB6 müssen jeweils auf die Eingänge RA5 und RA6 zurückgeführt werden. Diese Signale mit den Namen „Reset“ und „Inhibit“ müssen mit entsprechenden Signalen identischer Einheiten in zwei globalen Signalen für das gesamte System kombiniert werden. Alle Reset-Signale werden logisch UND-verknüpft, da sich alle Einheiten auf einen globalen Reset einigen müssen. Sperren werden logisch ODER-verknüpft, da eine einzelne Einheit in der Lage sein sollte, diese Funktion zu initiieren.

Wie zu sehen ist, würde die Programmierspannung von 12 V über die Diode D2 zum Ausgang RB5 zurückgeführt, was möglicherweise den PIC beschädigt. Um diese Gefahr zu beseitigen, ist ein 2k2-Widerstand R1 im System enthalten, der den Strom begrenzt, der zu RB5 zurückfließen könnte.

Eine ähnliche Besorgnis kann für das IO-Paar RA6/RB6 gelten, aber nur wenn die ICSP-CLOCK-Spannung niedrig ist, würde RB5 auf Masse gezogen werden. Ich sehe hier keine Vererbungsgefahren, die hier verwendete Diode dient nur der Sicherheit.

Wird diese einfache Lösung, die auf VPP angewendet wird, die Gefahr eliminieren, 12 V an RB5 zu bekommen und den IC zu zerstören?

Geben Sie hier die Bildbeschreibung ein

Hinweis: Die zusätzlichen Einheiten in der Cloud sollen die E/A-Kapazität des Systems erhöhen.

Du hast vermutlich recht. Mein Elektroniklehrer war total gegen Junction-Dot. Wahrscheinlich habe ich mich auch damit angesteckt.
OK, Abzweigungen platziert.
"Wie zu sehen ist, würden 12 V Programmierspannung zum Ausgang RB5 zurückgeführt werden" . Nein, das kann man nicht sehen. Es ist nicht klar, was genau Ihre Schaltung zu erreichen versucht.
@Olin: Ich habe das Diagramm verbessert. Ich hoffe es ist jetzt klarer. Da das System mit 5 V läuft, wäre die Anode D2 in Bezug auf ihre Kathode hoch, wodurch eine Spannung von 12 V an RB5 angelegt wird, eine Bedingung, die ich vermeiden möchte. Es gibt wirklich nicht viel zu tun, es ist nur ein System, das erfordert, dass Ausgänge zu den Eingängen zurückgeführt werden, und gleichzeitig ICSP ermöglicht.
Vielleicht fehlt mir etwas. Warum nicht die Rückkopplung zu RA5 und RA6 eliminieren, die Dioden bei RB5 und RB6 eliminieren, Pull-up-Widerstände auf beide setzen. Richten Sie dann RB5 und RB6 als Open-Drain-Ausgänge ein (die tatsächlichen Pin-Werte können immer noch gelesen werden). Machen Sie die Reset-Logik aktiv-high und die Sperrlogik aktiv-low.
@Tut: Nein, das ist nicht möglich, das System muss skalierbar sein, indem zusätzliche Einheiten kombiniert werden. Alle Einheiten im System müssen sich auf ein systemweites Zurücksetzen einigen, daher das logische UND. Auch wenn es seine eigene Ausgabe lesen kann, müssen noch andere Ausgaben berücksichtigt werden. Ähnlich wie beim Sperren, aber unter Verwendung von Draht-ODER kann jede Einheit es auslösen. Am Ende wird es drei Einheitentypen geben, einen mit 5 I/O (PIC16F627), 8 I/O (PIC16F72) und 15 IO (PIC16F884), die alle untereinander kompatibel sind.
Indem die Reset-Logik aktiv hoch gemacht wird, wäre ein Open-Drain mit Pull-up ein logisches UND. Jedes Gerät würde das Zurücksetzen verhindern, indem es die Leitung nach unten zieht.

Antworten (2)

2.2k lässt immer noch ziemlich viel Strom fließen und könnte die Stromversorgungsschiene auf dem Chip nach oben drücken.

Ich schlage vor, einen verdrahteten NPN-BJT anstelle einer Diode zu verwenden, um /MCLR niedrig zu zwingen (die Ausgangslogik an B5 umzukehren). Ich bin mir nicht sicher, ob die Uhr ein Problem ist - es ist keine Hochspannung.

Ich habe tatsächlich daran gedacht, hier einen Transistor zu verwenden und UND in ODER umzuwandeln, aber ich möchte die Anzahl der Komponenten niedrig halten.
Wie wäre es mit einem größeren Widerstand? Die Eingangsimpedanz am PIC ist ziemlich hoch, daher ist möglicherweise viel Platz dafür vorhanden.
Sie müssen einen unsichtbaren Pullup auf / MCLR haben, damit Sie sich um ein Verhältnis kümmern müssen, plus einen Diodenabfall. Außerdem kann die Verwendung des Schutznetzwerks auf diese Weise unerwünschte Nebenwirkungen haben. Ich würde es sicher nicht tun. Teile sind billig, Ärger nicht.
Es gibt einen Pull-up von 56k auf MCLR, der sich oben rechts im Schaltplan befindet. Eine niedrige Spannung an RB5 zieht MCLR auf die Diodendurchlassspannung herunter. Nebenbei bemerkt, MCLR ist deaktiviert. Die Reset-Funktion übernimmt das eingebettete Programm selbst, weil ich die Eingabe benötige. Wenn der Vorwärtsabfall der Diode zu hoch ist, könnte ich einen Schottky verwenden. Eigentlich wurde die Schaltung zufriedenstellend gebaut und getestet, aber ich möchte ICSP einbauen.
Die Spannung erhöhen, du meinst durch die Body-Diode? Ja, das versuche ich auch zu vermeiden.
Nun, es ist nicht so schlimm wie einige Fudges, weil der Vpp nur während der Programmierung vorhanden ist, aber es gibt immer noch mögliche Probleme mit der Störfestigkeit usw.

Du kannst deinen Kuchen nicht haben und ihn auch essen.

Aus Ihrem Kommentar, die Anzahl der Komponenten niedrig zu halten, gehe ich davon aus, dass Sie ein kommerzielles Produkt herstellen. In diesem Fall muss die fertige Software vor dem Löten nur noch auf den Chip geladen werden. Viele Unternehmen, darunter DigiKey und Microchip selbst, verkaufen Ihnen einen Chip, der mit Ihrer Hex-Datei geladen ist. Es ist unwahrscheinlich, dass Sie das Gerät von Ihren Kunden vor Ort programmieren lassen.

Wenn Sie eine Entwicklungsplattform zum Schreiben der Software erstellen möchten, hat diese nicht die gleiche Anzahl von Teilen wie die verkaufte Plattform.

Sie können bestenfalls einen 0,1-Zoll- oder 2-mm-Header mit einem Jumper in Reihe mit der Reset-Leitung platzieren. Ziehen Sie den Jumper, um alles andere vom VPP-Pin-Programm oder -Debug zu isolieren. Stecken Sie den Jumper zurück, um normal zu laufen. Sie können auch eine Leiterbahn verwenden, um eine Verbindung über den Jumper herzustellen. Auf diese Weise kann die Leiterbahn für die Entwicklung geschnitten und der Jumper installiert werden, und für die Produktion muss der Jumper einfach nicht bestückt werden.

Sie haben Recht, hier geht es um ein kommerzielles Produkt. Das ist auch der Grund, warum ich den Zweck nicht genau angeben kann, ich darf diese Informationen noch nicht offenlegen. Die ersten Muster der Leiterplatte werden von uns selbst hergestellt, aber die Idee ist, den Leiterplattenherstellungsprozess, einschließlich der Bestückung der Komponenten, später auszulagern. Wir haben dann die Möglichkeit, den Programmcode unserem Auftragnehmer anzuvertrauen oder ihn selbst zu flashen, wobei letztere Option ICSP erfordert.
Die Jumper-Option ist sicherlich etwas, über das ich schon einmal nachgedacht habe, aber es lässt Raum für Fehler. Vergessen Sie, vor dem Programmieren einen Jumper zu entfernen, und wir haben gebratenes PIC zum Abendessen.
@Bart Die Angabe des Herstellers mit der Hex-Datei ist normalerweise Standard. Die Hex-Datei ist ein Binay und ist schwierig, wenn nicht unmöglich, zurückzuentwickeln. Weiteres Schlagen des Herstellers mit und NDA ist ebenfalls Standard. Je nachdem, welches Chippaket Sie verwenden, ist die Verwendung eines Sockels, der den Chip außerhalb des Schaltkreises programmiert, auch eine gute Option. Programmieren Sie eine Charge von Chips und löten Sie sie dann fest. Der PM3-Programmierer hat dazu eine Reihe von Aufsätzen. Das Risiko, einen Chip zu braten, wenn der Jumper installiert ist, kann nur etwas sein, mit dem Sie leben müssen.