unkontrolliertes Schalten während Programmierung

Gast #3899254
Lesenswert?

Hallo,

An meinem Atmega644 sind 8 n-Mosfets angeschlossen (PortC -> Gate 
n-Mosfet), welche jeweils rund 500mA schalten sollen.
Es darf Aufgrund einer Hardwarevorgabe jedoch zu jeder Zeit nur einer 
dieser Ausgänge aktiv sein.

Gibt es eine einfache Möglichkeit zu verhindern, dass während der 
Programmierung die Pins unkontrolliert meine Mosfets schalten.
(Jumper kommen nicht in Frage)

Wäre für jeden Tipp dankbar.

lg
#3899261
Lesenswert?

hadua schrieb:
> Es darf Aufgrund einer Hardwarevorgabe jedoch zu jeder Zeit nur einer
> dieser Ausgänge aktiv sein.
>
> Gibt es eine einfache Möglichkeit zu verhindern, dass während der
> Programmierung die Pins unkontrolliert meine Mosfets schalten.

mit einer Verriegelungslogik ist das doch leicht, wenn einer aktiv ist 
werden weitere gesperrt.

-> 74HC****
-> GAL entsprechend programmiert
Gast #3899324
Lesenswert?

Tobias L. schrieb:
> PullDown am Gate vorhanden?
>
> Mit einigen 74er Logic-ICs eine verrigelung Aufbauen, oder einfacher:
> einen 3 zu 8 decoder mit enable eingang verwenden.

Pulldown vorhanden.

Gibt es auch einen einzelnen IC der die Verriegelung kann die ich 
möchte, habe wenig platz und einfach ist immer gut (:

Beim encoder besteht das Problem ja weiterhin, denn der enable Eingang 
wird ja auch vom uC beschalten.

Matthias Sch. schrieb:
> Du könntest ausnutzen, das Reset während der Programmierung aktiv ist
> und solange per Treiberbaustein die MOSFet abkoppeln. Das kann im
> einfachsten Fall ein '244 sein.

Dachte ich zuerst auch, aber nimm ich mir mit diesem Ansatz nicht die 
Möglichkeit zu debuggen?
(Firma: matzetronics) #3899341
Lesenswert?

Joachim B. schrieb:
> Matthias Sch. schrieb:
>> das Reset während der Programmierung aktiv
>
> low ist, sperrt die Signale zum Mos FET

Ja, Reset ist aktiv, wenn es low ist, gut erkannt.

hadua schrieb:
> Dachte ich zuerst auch, aber nimm ich mir mit diesem Ansatz nicht die
> Möglichkeit zu debuggen?

Keine Ahnung, ich musste meine Programme bisher nicht auf der 
Zielhardware debuggen.
Wenn das aber wichtig ist, würde ich PortC sowieso nur mit Vorsicht oder 
für LEDs oder so benutzen, denn da hängt nun mal auch JTAG drauf.
Meine MOSFet Treiber koppele ich meistens sowieso über HC244 o.ä. an den 
MC, erstens schützt das den MC im Falle einer detonierenden Endstufe und 
zweitens ist das Sperren aller Treiber so recht einfach.
Gast #3899360
Lesenswert?

Matthias Sch. schrieb:
> Keine Ahnung, ich musste meine Programme bisher nicht auf der
> Zielhardware debuggen.
> Wenn das aber wichtig ist, würde ich PortC sowieso nur mit Vorsicht oder
> für LEDs oder so benutzen, denn da hängt nun mal auch JTAG drauf.
> Meine MOSFet Treiber koppele ich meistens sowieso über HC244 o.ä. an den
> MC, erstens schützt das den MC im Falle einer detonierenden Endstufe und
> zweitens ist das Sperren aller Treiber so recht einfach.

Ist nicht sehr wichtig, aber nice to have wenn möglich.

Hmmm, gute Frage, ist es generell möglich einen der Pins zu verwenden 
während man debugged?

Hast du dabei ebenfalls Reset als zum Enablen benutzt?
#3899397
Lesenswert?

hadua schrieb:
> Tobias L. schrieb:
>> PullDown am Gate vorhanden?
>>
>> Mit einigen 74er Logic-ICs eine verrigelung Aufbauen, oder einfacher:
>> einen 3 zu 8 decoder mit enable eingang verwenden.
>
> Pulldown vorhanden.
>
> Gibt es auch einen einzelnen IC der die Verriegelung kann die ich
> möchte, habe wenig platz und einfach ist immer gut (:
>
> Beim encoder besteht das Problem ja weiterhin, denn der enable Eingang
> wird ja auch vom uC beschalten.

74hc138.
Pin 6 (GC) an !Reset
Pin 5 (!GB) an einen Portpin mit ext. Pullup
Pin 4 (!GA) an Ground
Pin 3..1 an Portpins - hier wird der zu schaltende Ausgang ausgewählt.

Wichtig dabei: Im und nach dem Reset sind alle IO-Pins hochohmig bzw 
Eingänge. Der Pullup verhindert die unkontrollierte Aktivierung.
Später, wenn die Ports initialisiert werden, wird zuerst das Bit in 
PORTC auf 1 gesetzt, dann das Bit in DDRC. Dadurch wird der Pin zum 
Ausgang und treibt dann den Pin aktiv auf 1, und zwar ohne Glitch bei 
der Initialisierung). Der Decoder verhindert außerdem, dass mehr als ein 
Ausgang gleichzeitig aktiv wird. Achtung: Die Ausgänge des HC138 sind 
low-aktiv, daher Beschaltung entsprechend anpassen.

fchk
#3899421
Lesenswert?

hadua schrieb:
> Es darf Aufgrund einer Hardwarevorgabe jedoch zu jeder Zeit nur einer
> dieser Ausgänge aktiv sein.

Frank K. schrieb:
> 74hc138.

Mist, ich wusste doch warum 244 keine tolle Idee ist, wieso 8 Ports 
vergeuden wenn eh nur einer aktiv sein darf? (ich dachte kurz mal an den 
138 habe es aber schnell wieder vergessen, ist lange her das ich den 
nutze)

der 74HC138 macht das automatisch und disabelt kann er auch werden, nur 
das er low aktiv ist stört etwas, er benötigt noch 8 Inverter
gefunden 74HC540 kann auch disabelt werden, aber ich würde disable am 
138 machen, den 540 immer enabelt lassen uns wie gesagt am Ausgang kann 
ein zusätzlicher pulldown nicht schaden.

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