Forum: Analoge Elektronik und Schaltungstechnik Mit Attiny85 einen PIC Mikrokontroller ausschalten


von Max S. (maxic)


Lesenswert?

Ich möchte mit einem Attiny85 die Spannungsversorgung eines PIC12F629 
(VDD-Pin) kurz unterbrechen. Am VDD-Pin des PIC liegen 2,8V an.
Die Spannungsversorgung des Attiny ist noch offen und wird wohl zwischen 
1,8 und 5 V liegen.

Hintergrund:
Der PIC ist im Treiber einer Led Lampe verbaut. Es gibt 4 
Helligkeitsstufen. Bei Unterbrechung der Spannung wird jeweils zur 
nächsten Stufe geschaltet. Das Durchschalten soll nun über einen 
externen Mikrocontroller durchgeführt werden.
Datenblatt PIC 
https://ww1.microchip.com/downloads/en/devicedoc/41190c.pdf

Der Schaltplan des Treibers ist hier zu finden:
http://i.imgur.com/BwyO5Wg.png
Quelle:
http://budgetlightforum.com/comment/1156734#comment-1156734

Im Schaltplan zu sehen ist der LD01 (Output=2,8V) welcher zur MCU (PIC) 
führt. Ich möchte den VDD Eingang kurz unterbrechen. Eine Alternative 
wäre den PIN 4 des PICs auf LOW zu ziehen und so einen Reset (MCLR 
Master Clear) durchzuführen.

Welche Möglichkeit habe ich, den VDD Eingang des PIC mit einem Attiny85 
kurz zu unterbrechen? Ich habe etwas über einen P Kanal Mosfet gelesen, 
leider weiß ich nicht wie ich es umsetzen soll. Problem ist u.a., dass 
die Source Spannung geringer als die Gate Spannung ist. Ich besitze nur 
rudimentäre Elektronikkenntnisse.

: Bearbeitet durch User
von Tim (Gast)


Angehängte Dateien:

Lesenswert?

Wieviel Strom braucht denn der PIC?
Wenn es bis 20 mA sind, kannst Du den PIC direkt aus einem Portpin 
versorgen. Wenn es mehr ist, könnte man auch mehrere Portpins parallel 
nutzen, muß aber sicherstellen, das die gleichzeitig geschalten werden.

von Max S. (maxic)


Lesenswert?

Kann ich dir leider nicht sagen, wieviel Strom der PIC zieht. Ich habe 
auch gerade keine Möglichkeit es zu messen, weil der zweite Treiber noch 
unterwegs ist. Der andere ist schon verbaut.

Was ist denn dann mit den unterschiedlichen Spannungen vom Attiny und 
PIC? Der Treiber arbeitet ja auch mit den 2,8V...

Ist es denn so kompliziert die VDD über einen zweiten Mikrocontroller zu 
unterbrechen?

von HildeK (Gast)


Lesenswert?

Wenn du einen pMOS findest, der mit 2,5...2.8V am Gate gut genug 
durchschaltet, dann den einfach als Highside-Switch verwenden. Wenn er 
dann mit 1V am Gate ausreichend sperrt, dann war es das schon, sonst 
halt über einen npn ansteuern.

von Max S. (maxic)


Lesenswert?

Hmmm..ich habe nur leider kaum Ahnung davon. Ich brauche da etwas 
Unterstützung, möchte aufjedenfall dabei lernen.

Meine Source Spannnung ist 2,8V. Der Attiny läuft mit sagen wir 3,3V. 
Das ist dann die Gate Spannung? Soweit ich mitbekommen habe, muss die 
Gate Spannung kleiner als die Source Spannung sein!?

Wie ist dann Vgs? 3,3V-2,8 = +0,5V?
Und wie hoch Vds? 2,8V?
Und wonach wähle ich dann den Mosfet aus?

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

pMOSFET:
Spannung am Gate sei um 2.8V niedriger als an der Source (U_GS=-2.8V), 
dann leitet der, wenn es einer ist für extrem niedrige Gatespannungen. 
Dazu muss der Tiny 0V am Ausgang anlegen.
Legt er HIGH an (z.B. 3.3V), dann ist U_GS +0.5V und der pMOS sperrt. Er 
sperrt vermutlich auch schon bei -1V. Das wäre notwendig, wenn der Tiny 
mit 1.8V läuft und damit die 2.8V ausschalten soll. Solange der Tiny mit 
2.8V oder mehr versorgt wird, ist das kein Problem.

Ein IRF7220 sollte das können, aber ich hab dessen Daten nicht geprüft. 
Details im DB.
Du musst nach einem suchen, der bei U_GS von 2.8V bereits gut leitend 
ist und den Strom für den PIC kann.

von Max S. (maxic)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
> pMOSFET:
> Spannung am Gate sei um 2.8V niedriger als an der Source (U_GS=-2.8V),
> dann leitet der, wenn es einer ist für extrem niedrige Gatespannungen.
> Dazu muss der Tiny 0V am Ausgang anlegen.
> Legt er HIGH an (z.B. 3.3V), dann ist U_GS +0.5V und der pMOS sperrt. Er
> sperrt vermutlich auch schon bei -1V. Das wäre notwendig, wenn der Tiny
> mit 1.8V läuft und damit die 2.8V ausschalten soll. Solange der Tiny mit
> 2.8V oder mehr versorgt wird, ist das kein Problem.
>
> Ein IRF7220 sollte das können, aber ich hab dessen Daten nicht geprüft.
> Details im DB.
> Du musst nach einem suchen, der bei U_GS von 2.8V bereits gut leitend
> ist und den Strom für den PIC kann.

Danke-das war sehr hilfreich! Den Tiny mit >2,8V zu versorgen sollte 
kein Problem sein.

>Ein IRF7220 sollte das können, aber ich hab dessen Daten nicht geprüft.
>Details im DB.

Im DB steht: U_gs=-2,5V @ Id= 8,8A -> sollte ja dann locker passen!
und U_gs(th)=-0,6V

U_ds ist dann die Spannung die im Mosfet abfällt durch den Mosfet 
Widerstand Rdson?

Ich habe mal einen Schaltplan gezeichnet. Habe ich den pMos richtig 
eingebaut? Die rote gestrichelte Linie war die ursprüngliche VDD 
Verbindung zum PIC.
R1= 500Ohm, R2= 10kOhm

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

Max S. schrieb:
> U_ds ist dann die Spannung die im Mosfet abfällt durch den Mosfet
> Widerstand Rdson?

Ja. Aber das dürfte bei deiner Anwendung keine Rolle spielen: Der 
R_DS_on bei 2.5V U_GS beträgt maximal 20mΩ, das wären bei I=100mA nur 
rund 2mV.

Max S. schrieb:
> Ich habe mal einen Schaltplan gezeichnet. Habe ich den pMos richtig
> eingebaut? Die rote gestrichelte Linie war die ursprüngliche VDD
> Verbindung zum PIC.
> R1= 500Ohm, R2= 10kOhm
Im Prinzip richtig, nur würde ich R1 zu Null machen. R2 kann auch 2-5mal 
so groß sein.

von Axel S. (a-za-z0-9)


Lesenswert?

Max S. schrieb:
> Ich möchte mit einem Attiny85 die Spannungsversorgung eines PIC12F629
> (VDD-Pin) kurz unterbrechen.

Möchtest du nicht.

> Hintergrund:
> Der PIC ist im Treiber einer Led Lampe verbaut. Es gibt 4
> Helligkeitsstufen. Bei Unterbrechung der Spannung wird jeweils zur
> nächsten Stufe geschaltet. Das Durchschalten soll nun über einen
> externen Mikrocontroller durchgeführt werden.

> Der Schaltplan des Treibers ist hier zu finden:
> http://i.imgur.com/BwyO5Wg.png

Da fehlt der Schalter. Was wird denn geschaltet? Mutmaßlich sitzt der 
Schalter zwischen BATT+ und dem Eingang des LDO?

> Ich möchte den VDD Eingang kurz unterbrechen. Eine Alternative
> wäre den PIN 4 des PICs auf LOW zu ziehen und so einen Reset (MCLR
> Master Clear) durchzuführen.

Das wäre im Zweifelsfall die wesentlich sinnvollere Variante. Dazu die 
Verbindung zwischen Pin 1 und Pin 4 des PIC auftrennen, optional(?) 
einen Pullup-Widerstand an deren Stelle einfügen. Und dann Pin 4 mit 
einem kleinen Transistor a'la BC546 oder MOSFET a'la BSS138 auf L 
ziehen. Transistor bzw. MOSFET steuert dann der ATtiny an.

Oder man könnte den PIC gleich ganz rauswerfen und die lediglich zwei 
benötigten Signale mit dem ATtiny selber erzeugen. Das sind ja nur das 
Enable Signal für den Boost-Converter (PIC Pin 6) und ein PWM-Signal für 
die Erzeugung der Soll-Spannung für die Stromregelung (PIC Pin 5)

: Bearbeitet durch User
von jemand (Gast)


Lesenswert?

Tim schrieb:
> Wenn es bis 20 mA sind, kannst Du den PIC direkt aus einem Portpin
> versorgen. Wenn es mehr ist, könnte man auch mehrere Portpins parallel
> nutzen, muß aber sicherstellen, das die gleichzeitig geschalten werden.

Das geht schon deshalb nicht gescheit, weil der PIC Kapazitäten 
benötigt. Ein Portpin ist nicht geeignet, um höhere Kapazitäten zu 
laden.

Man kann das mit einem FET machen, muss dann aber auf Inrush-Ströme 
rücksicht nehmen.
Oder man macht es gescheit und nimt Power-Distribution-Switches. 
Beispiel:
http://ww1.microchip.com/downloads/en/DeviceDoc/mic20xx.pdf

von Max S. (maxic)


Lesenswert?

HildeK schrieb:
> Max S. schrieb:
>> U_ds ist dann die Spannung die im Mosfet abfällt durch den Mosfet
>> Widerstand Rdson?
>
> Ja. Aber das dürfte bei deiner Anwendung keine Rolle spielen: Der
> R_DS_on bei 2.5V U_GS beträgt maximal 20mΩ, das wären bei I=100mA nur
> rund 2mV.
>
> Max S. schrieb:
>> Ich habe mal einen Schaltplan gezeichnet. Habe ich den pMos richtig
>> eingebaut? Die rote gestrichelte Linie war die ursprüngliche VDD
>> Verbindung zum PIC.
>> R1= 500Ohm, R2= 10kOhm
> Im Prinzip richtig, nur würde ich R1 zu Null machen. R2 kann auch 2-5mal
> so groß sein.

Danke fürs geduldige helfen und drüber schauen-habe aufjedenfall etwas 
gelernt.

Eventuell funktioniert der Weg nicht über VDD. Ich weiß aber jetzt wie 
ich einen pMos auswähle.

von Max S. (maxic)


Lesenswert?

Axel S. schrieb:
> Max S. schrieb:
>> Ich möchte mit einem Attiny85 die Spannungsversorgung eines PIC12F629
>> (VDD-Pin) kurz unterbrechen.
>
> Möchtest du nicht.

Möchte ich nicht? Tatsächlich habe ich gestern noch irgendwas gelesen 
mit Kapazitäten und Dioden beim Mikrocontroller, die dann Probleme 
machen.
Das war hier:
https://electronics.stackexchange.com/questions/372589/controlling-wemos-d1-power-with-p-channel-mosfet

>
>> Der Schaltplan des Treibers ist hier zu finden:
>> http://i.imgur.com/BwyO5Wg.png
>
> Da fehlt der Schalter. Was wird denn geschaltet? Mutmaßlich sitzt der
> Schalter zwischen BATT+ und dem Eingang des LDO?
Ja genau, zwischen Batt+ und Gnd ein mechanischer Ein/Aus Schalter 
"Omten Clicky Switch"
>
>> Ich möchte den VDD Eingang kurz unterbrechen. Eine Alternative
>> wäre den PIN 4 des PICs auf LOW zu ziehen und so einen Reset (MCLR
>> Master Clear) durchzuführen.
>
> Das wäre im Zweifelsfall die wesentlich sinnvollere Variante. Dazu die
> Verbindung zwischen Pin 1 und Pin 4 des PIC auftrennen, optional(?)
> einen Pullup-Widerstand an deren Stelle einfügen. Und dann Pin 4 mit
> einem kleinen Transistor a'la BC546 oder MOSFET a'la BSS138 auf L
> ziehen. Transistor bzw. MOSFET steuert dann der ATtiny an.
Danke für die Beschreibung. Gut, dass es diese Alternative gibt. Ich 
versuche das mal als Schaltplan umzusetzen.
>
> Oder man könnte den PIC gleich ganz rauswerfen und die lediglich zwei
> benötigten Signale mit dem ATtiny selber erzeugen. Das sind ja nur das
> Enable Signal für den Boost-Converter (PIC Pin 6) und ein PWM-Signal für
> die Erzeugung der Soll-Spannung für die Stromregelung (PIC Pin 5)
Das wäre eigentlich am besten. Dann könnte ich mir nämlich die Modes 
selber programmieren und brauche nicht einen zusätzlichen 
Mikroconroller. Es klingt erstmal simpel, weiß aber nicht was dahinter 
steckt. Mit einem Arduino ein Enable und PWM Signal zu generieren ist 
zumindest kein Problem. Ich müsste also die jetzige PWM Frequenz 
herausfinden und das war es dann schon?

Edit:
Hier steht schon vieles
>Pin1 – Power input (2.8V LDO)
>Pin2 – Open
>Pin3 – Battery level input (2:1 divider)
>Pin4 – Directly connected to Pin1
>Pin5 – 3.9kHz PWM output for current control
>Pin6 – TPS61088 Enable (high to operate)
>Pin7 – Open
>Pin8 – Ground (Battery Negative)
http://budgetlightforum.com/node/54900 Post #20

Attiny und PIC haben allerdings leider nicht die gleiche Anordnung der 
Ports.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Max S. schrieb:
> Axel S. schrieb:
>> Max S. schrieb:
>>> Ich möchte mit einem Attiny85 die Spannungsversorgung eines PIC12F629
>>> (VDD-Pin) kurz unterbrechen.
>>
>> Möchtest du nicht.
>
> Möchte ich nicht?

Nein. Das ist wie "ein Schuß von hinten durch die Brust ins Auge". 
Komplizierter als nötig und im Original nur deswegen so gemacht, weil 
man den Schalter ohnehin hat.

>>> Der Schaltplan des Treibers ist hier zu finden:
>>> http://i.imgur.com/BwyO5Wg.png
>>
>> Da fehlt der Schalter. Was wird denn geschaltet? Mutmaßlich sitzt der
>> Schalter zwischen BATT+ und dem Eingang des LDO?

> Ja genau, zwischen Batt+ und Gnd

Hoffentlich nicht. Ich war nur davon ausgegangen, daß der TPS61088 fest 
an BATT+ angeschlossen ist, damit der Betriebsstrom nicht über den 
Schalter muß. In diesem Fall wäre es auch nicht notwendig, Enable des 
TPS vom PIC abschalten zu lassen.

>> Oder man könnte den PIC gleich ganz rauswerfen und die lediglich zwei
>> benötigten Signale mit dem ATtiny selber erzeugen. Das sind ja nur das
>> Enable Signal für den Boost-Converter (PIC Pin 6) und ein PWM-Signal für
>> die Erzeugung der Soll-Spannung für die Stromregelung (PIC Pin 5)

> Das wäre eigentlich am besten. Dann könnte ich mir nämlich die Modes
> selber programmieren und brauche nicht einen zusätzlichen
> Mikroconroller. Es klingt erstmal simpel, weiß aber nicht was dahinter
> steckt. Mit einem Arduino ein Enable und PWM Signal zu generieren ist
> zumindest kein Problem. Ich müsste also die jetzige PWM Frequenz
> herausfinden und das war es dann schon?

Die PWM Frequenz ist weitgehend egal. Der PIC verwendet die PWM, um eine 
Gleichspannung zu erzeugen. R8 und C11 filtern die PWM zu einer 
Gleichspannung, R9 und R10 teilen die Spannung weiter herunter - von 
ursprünglich 0..2.8V für 0..100% auf 0..74mV. Der OPV (OPA333, oben 
rechts im Schaltplan) vergleicht diese Spannung mit der Spannung am 
LED-Shunt, also im Prinzip dem LED-Strom. Folge: mit dem Tastverhältnis 
der PWM kann die Helligkeit der LED eingestellt werden.

Der ATtiny sollte dann sinnvollerweise auch mit den 2.8V versorgt 
werden, damit der Endwert dieser Spannung der gleiche bleibt wie vorher. 
Und die PWM-Frequenz muß nur hoch genug sein, daß R8 und C11 genügend 
Filterwirkung entfalten. Der PIC verwendet knapp 4kHz.

Der Enable Eingang des TPS61088 dient zum Ein- und Ausschalten der LED. 
Low (<0.4V) ist Aus und High (>1.2V) ist Ein.

> Attiny und PIC haben allerdings leider nicht die gleiche Anordnung der
> Ports.

Korrekt. Ein bißchen umverdrahten müßte man. Man könnte natürlich auch 
einen 8-beinigen PIC passend programmieren. Am einfachsten gleich den 
bereits verbauten.

von Max S. (maxic)


Angehängte Dateien:

Lesenswert?

Axel S. schrieb:

> Nein. Das ist wie "ein Schuß von hinten durch die Brust ins Auge".
> Komplizierter als nötig und im Original nur deswegen so gemacht, weil
> man den Schalter ohnehin hat.
Ok

>> Ja genau, zwischen Batt+ und Gnd
>
> Hoffentlich nicht. Ich war nur davon ausgegangen, daß der TPS61088 fest
> an BATT+ angeschlossen ist, damit der Betriebsstrom nicht über den
> Schalter muß. In diesem Fall wäre es auch nicht notwendig, Enable des
> TPS vom PIC abschalten zu lassen.
Doch, über den Schalter laufen knapp 6A bei 100% Helligkeitsstufe. Das 
ist sehr gängig bei Taschenlampentreibern.


> Die PWM Frequenz ist weitgehend egal. Der PIC verwendet die PWM, um eine
> Gleichspannung zu erzeugen. R8 und C11 filtern die PWM zu einer
> Gleichspannung, R9 und R10 teilen die Spannung weiter herunter - von
> ursprünglich 0..2.8V für 0..100% auf 0..74mV. Der OPV (OPA333, oben
> rechts im Schaltplan) vergleicht diese Spannung mit der Spannung am
> LED-Shunt, also im Prinzip dem LED-Strom. Folge: mit dem Tastverhältnis
> der PWM kann die Helligkeit der LED eingestellt werden.
>
> Der ATtiny sollte dann sinnvollerweise auch mit den 2.8V versorgt
> werden, damit der Endwert dieser Spannung der gleiche bleibt wie vorher.
> Und die PWM-Frequenz muß nur hoch genug sein, daß R8 und C11 genügend
> Filterwirkung entfalten. Der PIC verwendet knapp 4kHz.
>
> Der Enable Eingang des TPS61088 dient zum Ein- und Ausschalten der LED.
> Low (<0.4V) ist Aus und High (>1.2V) ist Ein.
>
>> Attiny und PIC haben allerdings leider nicht die gleiche Anordnung der
>> Ports.
>
> Korrekt. Ein bißchen umverdrahten müßte man. Man könnte natürlich auch
> einen 8-beinigen PIC passend programmieren. Am einfachsten gleich den
> bereits verbauten.
Danke für deine ausführliche Erklärung. Es übersteigt allerdings mein 
Können/Wissen zur Zeit. Da muss ich genauer drüber nachdenken und kann 
dann darauf zurückkommen.
Ich probiere erstmal Variante B) über den Reset Eingang. Einen Attiny 
einzubauen wäre dann die nächste Stufe und auch eine echte 
Herausforderung. PIC Programmieren wäre nochmal eine ganz neue Welt.

Im Schaltplan also Variante B) mit N Mosfet als Low Side Switch.
R1=500 Ohm (oder weglassen?)
R2=10 kOhm (pulldown)
R3=10 kOhm (pullup)

Bitte um Bestätigung, ob die Bauteile so korrekt angeordnet sind.
Edit:
Ich glaube Zeichnung v1 ist komplett falsch^^
Zeichnung v2 ist hoffentlich richtig.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Max S. schrieb:

> Bitte um Bestätigung, ob die Bauteile so korrekt angeordnet sind.
> Ich glaube Zeichnung v1 ist komplett falsch^^
> Zeichnung v2 ist hoffentlich richtig.

Ja, Version 2 sieht gut aus.

Aber warum du GND des ATtiny per Leitung an GND des PIC geführt hast, 
Source vom MOSFET aber per GND Symbol, bleibt ein Rätsel. Egal.

> Im Schaltplan also Variante B) mit N Mosfet als Low Side Switch.
> R1=500 Ohm (oder weglassen?)

Egal. Kann auch weggelassen werden.

(PS: wenn statt des MOSFET ein Bipolartransistor verwendet wird, darf R1 
natürlich nicht weggelassen werden)

> R2=10 kOhm (pulldown)

Darf auch hochohmiger sein. Bis 100K kein Problem. R1 und R2 verringern 
halt die Spannung, die der MOSFET sieht. Wenn der AVR mit 5V läuft und 
der MOSFET ein BSS138 o.ä. ist - kein Problem. Bei 3.3V oder gar noch 
weniger, wird das aber relevant. Und bei 1.8V wirst du evtl. einen 
MOSFET suchen müssen, der bei extra kleiner Gate-Source Spannung 
einschaltet. Ein Bipolartransistor wäre dann die bessere Wahl. Da geht 
dann immer noch jeder Wald- und Wiesen-Typ.

> R3=10 kOhm (pullup)

10K sollte passen. Auch weniger bis 1K. Eventuell geht auch ganz ohne - 
der PIC sollte intern einen Pullup an MCLR haben, oder? Ich mache nix 
mit PICs, kenne mich daher nicht aus. Und bin zu faul (so wie du) das 
Datenblatt zu lesen.

: Bearbeitet durch User
von Max S. (maxic)


Lesenswert?

Axel S. schrieb:

> Ja, Version 2 sieht gut aus.
Super, danke!

> Aber warum du GND des ATtiny per Leitung an GND des PIC geführt hast,
> Source vom MOSFET aber per GND Symbol, bleibt ein Rätsel. Egal.
Ich hatte überlegt alles mit GND Symbol zu versehen, war aber zu faul.

>> Im Schaltplan also Variante B) mit N Mosfet als Low Side Switch.
>> R1=500 Ohm (oder weglassen?)
>
> Egal. Kann auch weggelassen werden.
>
> (PS: wenn statt des MOSFET ein Bipolartransistor verwendet wird, darf R1
> natürlich nicht weggelassen werden)
>
>> R2=10 kOhm (pulldown)
>
> Darf auch hochohmiger sein. Bis 100K kein Problem. R1 und R2 verringern
> halt die Spannung, die der MOSFET sieht. Wenn der AVR mit 5V läuft und
> der MOSFET ein BSS138 o.ä. ist - kein Problem. Bei 3.3V oder gar noch
> weniger, wird das aber relevant. Und bei 1.8V wirst du evtl. einen
> MOSFET suchen müssen, der bei extra kleiner Gate-Source Spannung
> einschaltet. Ein Bipolartransistor wäre dann die bessere Wahl. Da geht
> dann immer noch jeder Wald- und Wiesen-Typ.
Ja, ich wollte den BSS138 nehmen. Der hat ein Vgs(th)max von 1,5V.
Die beiden Widerstände R1 und R2 ergeben einen Spannungsteiler-richtig? 
Ich komme dann mit den Werten (500Ohm+10kOhm, Tiny mit 3,3V) auf 3,1V am 
Gate. Das sollte ja dann passen.
>> R3=10 kOhm (pullup)
>
> 10K sollte passen. Auch weniger bis 1K. Eventuell geht auch ganz ohne -
> der PIC sollte intern einen Pullup an MCLR haben, oder? Ich mache nix
> mit PICs, kenne mich daher nicht aus. Und bin zu faul (so wie du) das
> Datenblatt zu lesen.
Was ist das bitte für eine Unterstellung ;). Ehrlich gesagt bin ich noch 
gar nicht auf die Idee gekommen, dass ein Pullup integriert sein könnte. 
Ich schau mal rein ins DB.


Vielen Dank an alle die sich beteiligt haben und geholfen haben - echt 
klasse! Ich werde berichten ob es funktioniert. Muss aber erst Teile 
bestellen.

: Bearbeitet durch User
von Max S. (maxic)


Angehängte Dateien:

Lesenswert?

Update:

Ich habe den Treiber enthalten und ausprobiert, ob die Reset Lösung 
funktioniert. Dazu habe ich den Pin 4 (MCLR) von der Platine abgelötet 
und etwas hochgehoben, so dass kein Kontakt mehr zur Platine besteht. 
Dann habe ich den Pin mit einem Kabel kurz mit GND verbunden. Eigentlich 
sollte der PIC dann einen Reset durchführen. Mach er aber leider nicht. 
Wahrscheinlich ist der Pin dafür nicht richtig konfiguriert...

Verbaut ist ein PIC 12F683. Das Bild zeigt den H1-A Treiber ohne Spule.
https://ww1.microchip.com/downloads/en/devicedoc/41211d_.pdf

Seht ihr noch eine andere Möglichkeit, den PIC kurz Stromlos bzw. zu 
resetten?

von Tim (Gast)


Lesenswert?

Max S. schrieb:
> Eigentlich
> sollte der PIC dann einen Reset durchführen. Mach er aber leider nicht.
> Wahrscheinlich ist der Pin dafür nicht richtig konfiguriert...
MCLR sollte per default aktiv sein, aber möglicherweise wird er hier als 
Input (GP3) verwendet. Kannst Du mal ausklingeln, an welchen Punkten 
eine leitfähige Verbindung zum Pin 4 des PIC besteht?

> Seht ihr noch eine andere Möglichkeit, den PIC kurz Stromlos bzw. zu
> resetten?
Stromversorgung (Pin 1, Vdd) unterbrechen?

von Max S. (maxic)


Lesenswert?

Tim schrieb:
> MCLR sollte per default aktiv sein, aber möglicherweise wird er hier als
> Input (GP3) verwendet. Kannst Du mal ausklingeln, an welchen Punkten
> eine leitfähige Verbindung zum Pin 4 des PIC besteht?
Hier ist ein Schaltplan des Treibers:
http://i.imgur.com/BwyO5Wg.png
Pin4 ist nur mit Vdd verbunden. Der Treiber funktoniert allerdings auch, 
wenn Pin4 "in der Luft" hängt.


> Stromversorgung (Pin 1, Vdd) unterbrechen?
Ja, daran hatte ich zuerst gedacht. Aber man sollte es nicht so machen, 
bzw. es ist aufwendiger oder geht gar nicht mit nur einem P Kanal 
Mosfet. Ich kann es nicht genau beurteilen.
Hier wird ein ähnliches Thema diskutiert und Gründe aufgeführt warum es 
nicht geht:
https://electronics.stackexchange.com/questions/372589/controlling-wemos-d1-power-with-p-channel-mosfet

von HildeK (Gast)


Lesenswert?

Max S. schrieb:
> Stromversorgung (Pin 1, Vdd) unterbrechen?
> Ja, daran hatte ich zuerst gedacht. Aber man sollte es nicht so machen,
> bzw. es ist aufwendiger oder geht gar nicht mit nur einem P Kanal
> Mosfet. Ich kann es nicht genau beurteilen.

Doch, man kann es so machen mit nur einem pMOSFET!
Der wesentliche Unterschied ist doch: du schaltest mit einem weiterhin 
versorgten Tinyxx den pMOS ein und aus. Die Probleme aus deinem Link 
rühren daher, dass dort der Prozessor sich selbst abschalten soll. Das 
geht nur mit einem zweiten nMOS oder NPN.

von Max S. (maxic)


Lesenswert?

HildeK schrieb:
> Max S. schrieb:
>> Stromversorgung (Pin 1, Vdd) unterbrechen?
>> Ja, daran hatte ich zuerst gedacht. Aber man sollte es nicht so machen,
>> bzw. es ist aufwendiger oder geht gar nicht mit nur einem P Kanal
>> Mosfet. Ich kann es nicht genau beurteilen.
>
> Doch, man kann es so machen mit nur einem pMOSFET!
> Der wesentliche Unterschied ist doch: du schaltest mit einem weiterhin
> versorgten Tinyxx den pMOS ein und aus. Die Probleme aus deinem Link
> rühren daher, dass dort der Prozessor sich selbst abschalten soll. Das
> geht nur mit einem zweiten nMOS oder NPN.

Super, danke!!! Ein kleiner, aber feiner Unterschied mit dem sich selbst 
abschalten.

Falls noch jemand eine Idee hat, warum der Reset nicht funktioniert, 
bitte posten.

von Tim (Gast)


Lesenswert?

An Pin 3 sollte die halbe Versorgungsspannung anliegen. Wie hoch ist 
die?
Vielleicht wird die Erkennung darüber gemacht.
Dann könntest Du testweise die Spannung am Pin 3 mal größer oder kleiner 
machen und schauen, ob (und wie) er reagiert.

von Max S. (maxic)


Angehängte Dateien:

Lesenswert?

Der Treiber wird mit zwei parallel geschalteten 18650 Akkus versorgt. Am 
Pin3 wird die Akkuspannung gemessen, also 50% von 2,5-4,2 V. Ab 3V 
Akkuspannung gibt der Treiber eine Low Voltage Warnung aus in Form von 
blinken.

Die Variante über VDD unterbrechen funktioniert.
Pin1 ist von der Platine gelötet und direkt an Pin4 ist ein Kabel 
gelötet (siehe Bild). Verbinde ich Pin4 mit Pin1, dann leuchtet die Led.

Ich habe es deshalb so gemacht, weil ich bei den Pins den einfachsten 
Zugang habe. Sonst müsste ich Leiterbahn auftrennen.

->Nächster Schritt wäre den "roten Schalter" mit einem PMos zu ersetzen.

Im ausgeschalteten Zustand:
Könnte das jetzt zu einem Problem/Schaden führen, wenn am Pin4 2,8V 
anliegt, aber nicht an VDD?

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Max S. schrieb:
> Ich möchte mit einem Attiny85 die Spannungsversorgung eines PIC12F629
> (VDD-Pin) kurz unterbrechen.

hi side per PHOTOmos Relais

Max S. schrieb:
> Falls noch jemand eine Idee hat, warum der Reset nicht funktioniert,
> bitte posten.

vielleicht war die Zeit zu kurz, die VDD am PIC kann man ja auch messen 
mit dem Tiny.

Für dauerhaftes ON kann die IR LED ja von DC versorgt werden mit Rv und 
er Tiny braucht nur per Port die IR LED überbrücken, maximal 10mA mehr 
braucht die IR LED nicht und das kann der ATtiny ja treiben als 
Kurzschluß

: Bearbeitet durch User
von Max S. (maxic)


Angehängte Dateien:

Lesenswert?

Ich habe nun alle Teile zusammen und die Schaltung auf einem Breadboard 
zusammen gesteckt. Und siehe da, es funktioniert soweit. Über den 
Arduino kann ich den PIC Ein- und Ausschalten.

Ich habe jetzt an diversen Stellen die Spannungen gemessen (siehe 
Anhang) und habe dazu ein paar Fragen.

Der Arduino Uno wird mit 5V versorgt und der Treiber (PIC) läuft mit 
3,2V. Der Pmos ist ein IRML6402
https://www.infineon.com/dgdl/irlml6402.pdf?fileId=5546d462533600a401535668c9822638

Arduino High: U_gs=5V-3,2V=+1,8V -> Mosfet Off
Arduino LOW: U_gs==v-2,8V=-2,8V -> Mosfet On

Unklar sind mir folgende Werte:
a) *Mosfet Off*: U_ds=1,9V.
Wieso fallen denn nicht die vollen 3,2V über Drain-Source ab? Daraus 
folgt, dass am PIC VDD noch 1,26V anliegen. Zum Glück liegt die Minimal 
Spannung vom PIC bei 2V. Ich bin davon ausgegangen, dass am Mosfet dann 
auch die vollen 3,2V abfallen.

b) *Mosfett On*: An den PIC Pins liegen 2,8 V an. Wo werden die 
3,2V-2,8V = 0,3V verbraten?

von Dieter (Gast)


Lesenswert?

b) Kennlinie Mosfet. R_on bei dieser Gatespannung noch im Bereich der 
Widerstandsregelung.

von Max S. (maxic)


Lesenswert?

Dieter schrieb:
> b) Kennlinie Mosfet. R_on bei dieser Gatespannung noch im Bereich der
> Widerstandsregelung.

R_on soll laut Datenblatt maximal bei 0,135 Ohm liegen bei U_gs= -2,5V.

Bei mir fliesst ein Strom I_ds von 1mA.
Dann dürften nur U=0,135*1mA = 0,000135V am Mosfet abfallen. Es fallen 
aber 0,3V ab.

Oder bin ich auf dem falschem Weg?

: Bearbeitet durch User
von Dieter (Gast)


Lesenswert?

Vielleicht mal ein Oszi an D3 anschliessen.

Der PIC hat uebrigens keine konstante sondern ruppige pulsige 
Stromaufnahme. Ein C glaettet dies.

von Max S. (maxic)


Lesenswert?

Dieter schrieb:
> Vielleicht mal ein Oszi an D3 anschliessen.
Besitze leider kein Oszi.

> Der PIC hat uebrigens keine konstante sondern ruppige pulsige
> Stromaufnahme. Ein C glaettet dies.

An der LDO sitzt ein 110pF Kondensator. Den hatte ich vergessen in 
meinen Schaltplan einzuzeichnen.
http://i.imgur.com/BwyO5Wg.png

von Dieter (Gast)


Lesenswert?

C am Vdd auf der PIC Platine waren gemeint.

Ohne Oszi schwierig. Mess mal mit einem R 2,7k von Vdd auf Masse zum 
Vergleichen.

von void (Gast)


Lesenswert?

Max S. schrieb:
> a) *Mosfet Off*: U_ds=1,9V.
> Wieso fallen denn nicht die vollen 3,2V über Drain-Source ab? Daraus
> folgt, dass am PIC VDD noch 1,26V anliegen.

Der PIC versorgt sich parasitär über die 3,2V am MLCR Input.

von Max S. (maxic)


Lesenswert?

>C am Vdd auf der PIC Platine waren gemeint.
Ok.
>Ohne Oszi schwierig. Mess mal mit einem R 2,7k von Vdd auf Masse zum
>Vergleichen.

Kann ich morgen erst machen.



void schrieb:
> Der PIC versorgt sich parasitär über die 3,2V am MLCR Input.
Guter Hinweis-danke.
Ist das dauerhaft schädlich für den PIC?

von Dietrich L. (dietrichl)


Lesenswert?

Max S. schrieb:
> void schrieb:
>> Der PIC versorgt sich parasitär über die 3,2V am MLCR Input.
> Guter Hinweis-danke.
> Ist das dauerhaft schädlich für den PIC?

Naja, er wird dann auch nicht richtig abgeschaltet. Was er in dem 
Zustand macht, ist die erste Frage.
Und dann es hängt von der Größe des Stroms ab, der über den Eingang nach 
Vdd fließt. Das Datenblatt sagt als Zerstörgrenze: +/-20mA (Input clamp 
current).

Also gut ist es in keinen Fall.

von Max S. (maxic)


Lesenswert?

Dietrich L. schrieb:
>
> Naja, er wird dann auch nicht richtig abgeschaltet. Was er in dem
> Zustand macht, ist die erste Frage.
> Und dann es hängt von der Größe des Stroms ab, der über den Eingang nach
> Vdd fließt. Das Datenblatt sagt als Zerstörgrenze: +/-20mA (Input clamp
> current).
>
> Also gut ist es in keinen Fall.

Danke. Echt gut, wie einem hier geholfen wird! Input clamp current...von 
diesen Dingen verstehe ich nichts.
Dann werde ich die Anschlüsse an den PIC noch so ändern, dass VCC und 
MCLR gleichzeitig von der Versorgungsspannung getrennt sind.

von Max S. (maxic)


Angehängte Dateien:

Lesenswert?

Ich habe nun die Anschlüsse an den PIC so geändert, dass VCC und MCLR 
gleichzeitig über den Mosfet geschaltet werden.
Ergebnis:
Der Treiber funktioniert immer noch.

Wenn der Mosfet aus ist, liegt allerdings immer noch eine Spannung von 
1,1V am PIC an. Dabei fließt ein Strom von -0,04µA.
0,04 µA ist nun relativ weit entfernt von den schädlichen 20mA/20000µA 
"Input clamp current". Bin ich damit auf der sicheren Seite?

Kommt der Strom jetzt über den Spannungsteiler, wo die Batteriespannung 
gemessen wird?

Gibt es noch andere Maßnahmen, um den PIC komplett abzuschalten?

Hier ist nochmal der gesamte Schaltplan des Treibers 
http://i.imgur.com/BwyO5Wg.png

von HildeK (Gast)


Lesenswert?

Max S. schrieb:
> Kommt der Strom jetzt über den Spannungsteiler, wo die Batteriespannung
> gemessen wird?

Ja. Warum schließt du den nicht nach dem Schalt-FET an? Der kann sowieso 
nichts messen, wenn er ausgeschaltet ist.

von Max S. (maxic)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
> Ja. Warum schließt du den nicht nach dem Schalt-FET an? Der kann sowieso
> nichts messen, wenn er ausgeschaltet ist.

Wie soll ich das denn realisieren? Ich checke es gerade nicht. Der 
Spannungsteiler hängt ja direkt am Akku. Der PIC sitzt ja erst hinter 
dem LDO.

Anbei noch ein Bild vom Treiber mit "vergewaltigtem" PIC. Was auf dem 
Bild so groß aussieht, ist winzig, wenn man es löten muss. Die Pins VCC 
und MCLR sind von der Platine gelötet, dann hochgebogen und über eine 
Litze verbunden.
Die Vout vom LDO greife ich über den Lötkontakt auf der Platine ab.

von HildeK (Gast)


Lesenswert?

Max S. schrieb:
> Wie soll ich das denn realisieren? Ich checke es gerade nicht. Der
> Spannungsteiler hängt ja direkt am Akku. Der PIC sitzt ja erst hinter
> dem LDO.

Ist auch wieder wahr. Hatte ich übersehen, sorry.

Aber dann zur Ausgangsfrage:
Max S. schrieb:
> Dabei fließt ein Strom von -0,04µA.
> 0,04 µA ist nun relativ weit entfernt von den schädlichen 20mA/20000µA
> "Input clamp current". Bin ich damit auf der sicheren Seite?

Die Sub-µA tun dem PIC nicht weh, aber du solltest den Strom in den 
PIC am Pin 3 messen. Das ist sicher mehr, aber auch nicht mehr als 
400µA.
Wenn du trotzdem Sorgen hast: eine Schottky-Diode zwischen dem Eingang 
und VDD befreit dich davon.
Außerdem: deine +BATT wird durch den Teiler mit 20k dauerhaft belastet, 
das sind 200µA. Ist das akzeptabel?
Wenn nicht: mal genau prüfen, welchen maximalen Quellwiderstand der PIC 
am AD-Wandler haben will (Bei den ATMEL sind es typ. 10k, da kann man 
den Teiler schon mal in Spec. auf 20k/20k erhöhen).
Oder auch außerhalb der Spec noch viel hochohmiger werden (200k/200k), 
dann aber einen 1µ...10µF-C parallel zu R4 schalten und einfach sehr 
selten messen (z.B. nur alle 10s oder seltener). Dann ist aber die 
erwähnte Diode notwendig.

von Max S. (maxic)


Lesenswert?

HildeK schrieb:
> Ist auch wieder wahr. Hatte ich übersehen, sorry.
Kein Ding :)
> Aber dann zur Ausgangsfrage:
> Die Sub-µA tun dem PIC nicht weh, aber du solltest den Strom in den
> PIC am Pin 3 messen. Das ist sicher mehr, aber auch nicht mehr als
> 400µA.
Du rechnest konservativ für den Worstcase in Abhängigkeit vom 
Spannungsteiler: 4V (Akku)/10kOhm = 400µA? Im Normalfall sollten ja dann 
nur 4V/20k = 200µA fliessen. Das ist gut.
Strom messen am Pin3:
Ich konnte leider keinen Strom messen -ein bischen ernüchternd für den 
Aufwand und die Fummelei. Zu nächst musste ich erstmal das Beinchen 
ablöten. Spannung lag am Pin an, aber es gab nichts zu messen. Ein 
bischen merkwürdig!?
> Wenn du trotzdem Sorgen hast: eine Schottky-Diode zwischen dem Eingang
> und VDD befreit dich davon.
Welche Schottky Diode denn genau bzw auf was muss ich achten? Sie müsste 
aufjedenfall 80°C aushalten.

Mit der Kathode dann an Pin3 und Anode an VDD?

> Außerdem: deine +BATT wird durch den Teiler mit 20k dauerhaft belastet,
> das sind 200µA. Ist das akzeptabel?
Ja, das ist kein Problem. Der Akku hat 6000mAh.
> Wenn nicht: mal genau prüfen, welchen maximalen Quellwiderstand der PIC
> am AD-Wandler haben will (Bei den ATMEL sind es typ. 10k, da kann man
> den Teiler schon mal in Spec. auf 20k/20k erhöhen).
Im Datenblatt auf S.45 steht:
"The maximum recommended impedance for analog sources is 10 kΩ. As the 
impedance is decreased, the acquisition time may be decreased."
> Oder auch außerhalb der Spec noch viel hochohmiger werden (200k/200k),
> dann aber einen 1µ...10µF-C parallel zu R4 schalten und einfach sehr
> selten messen (z.B. nur alle 10s oder seltener). Dann ist aber die
> erwähnte Diode notwendig.
Ich denke die oben erwähnte Lösung mit der Diode finde ich gut.

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

Max S. schrieb:
> Mit der Kathode dann an Pin3 und Anode an VDD?

Umgekehrt. Sie soll ja eine Spannung, die am Eingang höher ist als die 
Versorgung auf die Versorgung ableiten. So etwa.

                    VCC
          D          |
 E ---+-->|----------+
      |      ._______|____
      |     |
      +-----| PIN3
            |       PIC


> Welche Schottky Diode denn genau bzw auf was muss ich achten? Sie müsste
> aufjedenfall 80°C aushalten.
Das ist ein Problem, denn der Nachteil der Schottky-Dioden ist ein recht 
großer Leckstrom bei höheren Temperaturen. Das verfälscht dann das 
Messergebnis.

Max S. schrieb:
> Ich konnte leider keinen Strom messen -ein bischen ernüchternd für den
> Aufwand und die Fummelei. Zu nächst musste ich erstmal das Beinchen
> ablöten. Spannung lag am Pin an, aber es gab nichts zu messen. Ein
> bischen merkwürdig!?
Ja, merkwürdig. Denn wenn kein Strom fließt, woher stammen dann die 1.1V 
im Aus-Zustand? Als der PIN3 angehoben war, war die VCC dann Null?
Auch der 40μA Rückstrom ist merkwürdig.

von Max S. (maxic)


Lesenswert?

HildeK schrieb:
> Umgekehrt. Sie soll ja eine Spannung, die am Eingang höher ist als die
> Versorgung auf die Versorgung ableiten. So etwa.
Alles klar - danke für die Zeichnung! Und danke für deine Hilfe!

>
>> Welche Schottky Diode denn genau bzw auf was muss ich achten? Sie müsste
>> aufjedenfall 80°C aushalten.
> Das ist ein Problem, denn der Nachteil der Schottky-Dioden ist ein recht
> großer Leckstrom bei höheren Temperaturen. Das verfälscht dann das
> Messergebnis.
Warum gibt es immer einen Haken?

> Ja, merkwürdig. Denn wenn kein Strom fließt, woher stammen dann die 1.1V
> im Aus-Zustand? Als der PIN3 angehoben war, war die VCC dann Null?
> Auch der 40μA Rückstrom ist merkwürdig.

Ja, VCC war dann Null.
Den -0,04µA Rückstrom bekomme ich auch nicht mehr gemessen. Ich habe On 
jetzt I_ds = 0,1µA und Off = Null. Vielleicht ist der Pin3 defekt?

Allerdings kam mir gerade ein anderer Gedanke in den Sinn:
Wieso tue ich mir dieses Gefummel am PIC an, wenn ich doch einfach auch 
direkt die Versorgungspannung schalten kann? Was hälst du davon?
Da laufen dann maximal 6A @ 3,7V, die ich ebenfalls mit einem Mosfet 
schalten kann. Mit einem typischen R-ds_on von 13mOhm liege ich bei 
0,468 W Verlust. Das wäre weniger als aktuell mit dem Click Schalter.
Mein Vorschlag wäre zum Beispiel ein IRF3708 N-Kanal.

von HildeK (Gast)


Lesenswert?

Oh, der Strom war ja 40nA, nicht 40µA. In der Größenordung brauchst du 
an nichts denken, zumal da schon das Wetter eine Rolle spielt ...

Leider bin ich in deinem Gesamtkonzept nicht tief genug drin, so dass 
ich auf den letzten Absatz nichts antworten kann. Deine Rechnung für den 
MOSFET gilt bei UGS=4.5V - worst case.

von Max S. (maxic)


Lesenswert?

HildeK schrieb:
> Oh, der Strom war ja 40nA, nicht 40µA. In der Größenordung brauchst du
> an nichts denken, zumal da schon das Wetter eine Rolle spielt ...
Jap, 40nA.
> Leider bin ich in deinem Gesamtkonzept nicht tief genug drin, so dass
> ich auf den letzten Absatz nichts antworten kann. Deine Rechnung für den
> MOSFET gilt bei UGS=4.5V - worst case.

Falls du keine Lust mehr hast, und das sagen wolltest, kann ich das 
verstehen. Falls doch:
Das Konzept ist recht Simpel:

Aktuell: Akku 3,7V-> mech. Schalter Ein/Aus -> Boost-Treiber H1-A -> 6V 
Led
Zukünftig: Akku 3,7V-> Attiny85 plus Transistor als Schalter -> 
Boost-Treiber H1-A -> 6V Led
Der Treiber wird mit einem Lion Akku versorgt. Der Treiber zieht maximal 
6A aus dem Akku. Ich möchte nun die Versorgungspannung Ein/Ausschalten 
mit einem Attiny85. Der Attiny85 wird auch vom Akku versorgt. Zur Zeit 
sitzt dort ein mechanischer Clicky Schalter.

Nun war die Idee, den Mosfet in die Versorgungsleitung zu setzen. Ich 
muss jetzt eigentlich nur einen finden, der bei einem U_gs von ~3V 6A 
schalten kann und dabei einen geringen R_ds_on hat. Richtig?

: Bearbeitet durch User
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.