Mesa a nastavenie výstupov

Odpovědět
Fizol
Příspěvky: 355
Registrován: 24. 11. 2006, 6:22
Bydliště: Košice

22. 8. 2021, 11:55

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
Uživatelský avatar
zz912
Příspěvky: 1349
Registrován: 25. 5. 2008, 7:16

22. 8. 2021, 7:15

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
?????
LinuxCNC - MESA 7i96
zz912.webnode.cz
Fizol
Příspěvky: 355
Registrován: 24. 11. 2006, 6:22
Bydliště: Košice

22. 8. 2021, 8:11

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....
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

22. 8. 2021, 10:02

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.
Odpovědět

Zpět na „Periferie“