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
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
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.
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?
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.
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?
hadua schrieb:> Gibt es auch einen einzelnen IC der die Verriegelung kann die ich> möchte, habe wenig platz und einfach ist immer gut (:74HC244 wurde ja genannt, 8 Treiber die zugleich disabelt werden können,
danach noch ein SIL Array aus 8 Widerstände als pulldown um die MOSFETS
unten zu halten.
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
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.
hadua schrieb:> Gibt es eine einfache Möglichkeit zu verhindern, dass während der> Programmierung die Pins unkontrolliert meine Mosfets schalten.
Pulldowns, da die Pins beim ISP floaten.
Und JTAG-Fuse abschalten.