Stránka 1 z 1

Mesa a nastavenie výstupov

Napsal: 22. 8. 2021, 11:55
od Fizol
Zdravím,
vedel by mi niekto vysvetliť rozdiel medzi nastaveniami výstupov a to:
GPIO Output a
GPIO O Drain?
Teoreticky by to malo byť push-pull verzus open-drain predpokladám. Ak je to tak, tak aj zapojeniu ako tak rozumiem. Skôr ma zaujíma v praxi, ktorý výstup zvoliť. Výhody a nevýhody.

ďakujem

Re: Mesa a nastavenie výstupov

Napsal: 22. 8. 2021, 7:15
od zz912
Tady budu bruslit na tenkém ledě, doufám, že mě někdo ze zkušenějších opraví.

GPIO Output:
logická 1 => 5V (nebo 3.3V, nebo cokoliv jiného kladného)
logická 0 => GND

Pokud spojím GPIO Output v logické 0 s 5-ti volty začne procházet přes GPIO proud.
Výhoda je, že se tím dá jednoduše negovat výstup. U optronu zapojím Anodu na 5V a katodu na GPIO.
Nevýhoda je, že pokud spojím dva GPIO nakonfigurované jako Output a chyba programu způsobí stav, kdy na jednom GPIO je logická 0 a na druhém logická 1, tak ten duch co řidí FPGA hradlové pole z něj vyletí a kromě zápachu Ti nic z funkčnosti toho pole nezbude.

GPIO O Drain:
logická 1 => 5V měkkých
logická 0 => GND
?????

Re: Mesa a nastavenie výstupov

Napsal: 22. 8. 2021, 8:11
od Fizol
Negovať výstup môžeš priamo v konfigurácii Hal, takže to nie je výhoda.

Nevidím dôvod, prečo by sa mali spájať GPIO dokopy....

Re: Mesa a nastavenie výstupov

Napsal: 22. 8. 2021, 10:02
od Mex
Rozdíl mezi push-pull a open-drain (open-collector) je jednoduchý:
- u push-pull (PP) jsou aktivní obě úrovně
- u open-drain (OD) jednom jedna
Přirovnáno k mechanice: jako rozdíl mít třeba ventil, který se aktivně přepíná do obou úrovni (PP). Nebo ventil, kde je aktivní jenom jeden směr, a druhý je vracený pružinou (OD).

Já osobně open-drain nemám rád, a vyhýbám se tomu jak to jenom jde.

Jsou ale situace, kdy je OD výhodou. Např. se tak dají snadno dělat převody napěťových úrovní. Můžeš mít elektroniku na 5V, na výstupu tranzistor s otevřeným kolektorem, a připojit to třeba k logice na 24V. Nebo naopak.

Ale tohle neplatí obecně. Pokud je na výstupu opravdu nezávislý tranzistor, tak to tak funguje.
Pokud ale takto použiješ nějaký výstup třeba hradlového pole nebo procesoru v režimu OD, tak ten vetšinou neumožňuje připojit vyšší napětí, než je napájecí napětí té elektroniky. Tak pak můžeš napěťovou úroveň jenom snižovat. Takže pak je to celkem k prdu.

No a nevýhoda OD je, že je buď pomalé, nebo žere. Abys dosáhl nějaké aspoň trochu rozumné rychlosti při přechodu do té neaktivní úrovně (rychlost rozepnutí), tak tam musíš připojit dost malý pull-up odpor. A ten pak při sepnutí hodně žere. Čím to má být rychlejší, tím víc to bude žrát.
Jako u mechaniky, kde pro vyšší rychlost rozepnutí musíš použít silnou pružinu, která ale zatěžuje ten spínač v sepnutém stavu.

Další použití OD pak je třeba tzv. "montážní AND". Spojíš víc výstupů dohromady, a pak je na výstupu neaktivní úroveň jen tehdy, když není na žádném z výstupů aktivní úroveň.

Jsou-li ty výstupy navíc galvanicky oddělené, tak je můžeš řetězit i sériově. Tak se třeba dá šikovně zapojit více koncáků typu NC do série, aniž by to snižovalo bezpečnost.