Stránka 1 z 2
Prispôsobenie pinu mcu pre 5 až 24V
Napsal: 21 srp 2025, 18:47
od Dumitru
Ahojte stoji za úlohu na 3.3V mcu prispôsobiť mcu pin pre napätie od 5 do 24V
Vyzerá to ako jednoduchá vec ale

funkcionalita by mala byť nasledovná
1. Ak je GPIO nastavene na výstup nech je možne spínať nejakú zaťaž od 5 do 24V prúd max 100mA
2. Ak je GPIO nastavene na vstup nech výdrži od 5 do 24V.
3. Ak je GPIO nastavene na vstup aby bolo možné pripojiť aj kontakt bez potenciálu napr. tlačidlo detegovať stlačenie.
Niečo som si načarbal
1. V režime GPIO ako vstup R33 a D16 slúžia ako pull up v prípade použitia bezpotenciálového kontaktu.
2. Ak privedieme nejaký potenciál 5-24V D16 je uzavretá, signal sa obmedzi cez R34 a D17 na cca 3,5 – 3,6V.
3. V režime GPIO ako výstup mosfet Q9 pracuje ako open drain a otvorí pomocou Q10 voči skratu je mosfet chránený pomocou resetovacej poistky F5 na 500mA
Ale bojím sa, že sa mi nepodarí pomocou R35 nastaviť pracovný bod BC846 (Q10) tak aby mi v režime vstupu ked privediem 24V neotváral mosfet Q9. A naopak v režime výstupu spoľahlivo ho otvoril.
Alebo ak mate iné lepšie nápady ako to vyriešiť sem s nimi ja osobne nič také nenašiel.

Napsal: 21 srp 2025, 20:49
od bdn
Na jeden I/O kanál 24V přiřaď na straně MCU dva I/O:
1/ fixní vstup I
2/ fixní výstup Q
Schéma níže přebráno z datasheetu dataloggeru.
Idea je taková, že pomocí softwéru si uživatel přepne, zda kanál bude I nebo Q.
Pokud je kanál Q, proud 100mA je možný pouze ve směru, že teče směrem dovnitř (nejedná se o push-pull).
Napsal: 21 srp 2025, 21:09
od Dumitru
Ďakujem za napad ja Push Pull nevyžadujem postačuje open drain ale využitie dvoch pinov na prepínanie Output/Input je minimálne neefektívne to môžem rovno rozdeliť a jeden pin bude vždy input a druhy bude vždy output.
Napsal: 21 srp 2025, 22:23
od martinkopp
Netuším k čemu to máš, ale pokud to má opravdu spolehlivě fungovat, vykašli se na ty nesmysly s tranzistory co fungují jen někdy, někomu, při nikdo neví jakých podmínkách a parametrech použitých součástek. Použij obvody jako MAX14906, AD74413R apod. jež se používají např. v průmyslových PLC a které fungují správně vždy a za všech okolností.
Napsal: 21 srp 2025, 22:32
od Puda
Jsou na to šváby řady TTL74xx s otevřeným kolektorem. Budič sběrnice, nebo nějak tak se to jmenuje.
Napsal: 21 srp 2025, 22:45
od rampage
Obstarožné TTL budiče s otvoreným kolektorom mu budú na dve veci, ak to má fungovať aj ako vstup. Skôr niečo na spôsob ako radí martinkopp.
Napsal: 22 srp 2025, 18:38
od bdn
na prepínanie Output/Input je minimálne neefektívne to môžem rovno rozdeliť a jeden pin bude vždy input a druhy bude vždy output.
Samozřejmě nevím na co to je.
Neefektivní se to může zdát, ale cena za jeden I/O v dnešní době je tak nízká, tak je na zvážení, zda to vůbec řešit.
Ve světě PLC je běžné, že kanály jsou pouze fixní vstup a nebo fixní výstup. Celé to zjednodušuje údržbu atd.
Ve světě USB/dataloggeru jsem se setkal s řešením výše, kdy si uživatel na začátku konfigurace měření v software navolí, zda chce kanál jako I (vstup) nebo Q (výstup).
Napsal: 22 srp 2025, 22:20
od lesana87
Já si myslím, že to spolehlivě udělat nejde. Jsou tam dva protichůdné požadavky. V režimu vstupu, se má přenášet signál pouze z výstupu na vstup, v režimu výstupu se má přenášet signál pouze ze vstupu na výstup. Ten externí obvod ale neví, jaký režim je navolený a jaký směr přenosu signálu má být volný a jaký blokovaný. I uvnitř procesoru jsou ke GPIO potřeba minimálně dva signály.
Napsal: 22 srp 2025, 23:32
od Dumitru
Ja som trošku pokročil načarbal a trosku aj simuloval toto
Narýchlo som si spravil skúšobnu pcb
Použil som biele led diódy (2,5V) D2,D4 a ono to aj nejako pracuje.
Ak je pin na mcu nakonfigurovaný ako vstup a na J1 input pin2 privediem 5V na J2 teda na pine mcu mam 3V pri 24V mam 3.3V a svieti led D2
Ak prepnem mcu pin na výstup teda pushpull svieti LED2 aj LED4 a cez optočlen sa mi zapne mosfet.
Takže funkcionalita je ok jediný háčik je že pre aktiváciu výstupu teda aby sa mi otvoril optočlen a mosfet potrebujem až 5V. Takže nad tým treba ešte porozmýšľať ale ide to dobrým smerom.
Možno to ešte nie je úplné ideálne ale za mňa idea je taká že keď je pin mcu nastavený ako vstup obvodom bude tiecť mali prúd ktorý nie je schopný otvoriť optočlen a aktivovať výstupný mosfet a zase ak pin sa prepne na výstup tak dôkaze dodať taký prúd aby sa optočlen otvoril .... samozrejme sa tam ešte hrám s úrovňami 1N4148 + LED = cca 0,5 + 2,5V. A Optočlen + LED = cca 1,2 + 2,5V.
Princíp som popisal možno niekoho napadne lepšie riešenie budem rad

Napsal: 23 srp 2025, 09:09
od lesana87
Nojo, ty si ale pořád hraješ na to, že logická 1 je 3,3V nebo 5V, a logická 0 je 0V, ale logické úrovně mají nějaké rozsahy.
Napsal: 23 srp 2025, 17:47
od martinkopp
Jak je takových dotazů zde zcela obvyklé, tajíš účel celého bastlu, neuvádíš pořádně co to má dělat (např. rychlost, impedance vstupu, jak ma spinat vystup apod) takže ti nikdo nic pořádně neporadí protože z těch zmatených schémat je prd patrné. Rady jsou pak styl pokus-omyl než se někomu podaří trefit do myšlenky v tvé hlavě.
Pokud jsi skutečný kolenovrt a nechceš použít uvedené specializované obvody, dej tam prostě mosfet s gate na port mcu jako výstup (nechápu proč tam dáváš ten optočlen) a v režimu vstupu použij prostý odporový dělič a AD převodník v mcu, kde si pohodlně rozhodneš co je 0 a co 1
Napsal: 23 srp 2025, 20:41
od Dumitru
Nič tajného to nie je a ani som to netajil hned na začiatok som uviedol že potrebujem prispôsobiť IO pin MCU konkrétne ak to pomôže Raspberry Pi (ale nemyslím si že tato informácia nejako pomôže pri realizácii). Ako som napísal v prvom príspevku ale doplním tam údaje.
1. Ak je GPIO nastavene na výstup nech je možne spínať nejakú zaťaž od 5 do 24V prúd max 100mA. Vystup nech je open drain rychlosť nizka radovo ms.
2. Ak je GPIO nastavene na vstup nech výdrži od 5 do 24V. Vstupna impedancia okolo 10k, rychlosť nizka radovo ms. 3V3 CMOS logika.
3. Ak je GPIO nastavene na vstup aby bolo možné pripojiť aj kontakt bez potenciálu napr. tlačidlo detegovať stlačenie. Vstupna impedancia okolo 10k, rychlosť nizka radovo ms. 3V3 CMOS logika.
Prečo sú tie schémy zmätené ? Veď sú tam dokopy par súčiastok nepovažujem to za niečo náročné na pochopenie. Osobne neviem ako ich prekresliť tak aby pôsobili usporiadane ale nechám si poradiť.
Tie zmätené schemi sem uvádzam aby bolo jasnejšie čo chcem dosiahnuť.
Nie som kolenovrt ale takto sa dá všetko obhájiť a potom nemusíme nič riešiť ani bastliť. Bohužiaľ zaujalo ma to ako by to šlo vyriešiť a viem že v analógovej oblasti niesom úplné profi preto som napísal sem.
Optočlen tam je nato že ak je IO nastavene na vstup tak aby sa neotváral mosfet keď privedieš vstupní signál.
Napsal: 24 srp 2025, 14:19
od bdn
Jestli to je na Raspberry PI tak můžeš použít pro I/O převodníček I2C na I/O např. s MCP23017. Např. 8 pinů použiješ jako Q kanál a 8 pinů jako I kanál. Do Q kanálu přidáš posílení proudu např. mosfet. Do I kanálu ochranu, rezistor, zenerka, kondenzátor... Případně ještě galv. oddělení optočlenem.
Napsal: 24 srp 2025, 16:12
od martinkopp
Takže jestli to dobře chápu, ty chceš mít jeden drát do rpi, druhý drát jako vstup a třetí drát jako výstup? Nebo jeden drát do rpi a druhý jako vstup/výstup jen s 24V logikou? Tedy vlastně obousměrný level shifter jak jsi uvedl "3.3V mcu prispôsobiť mcu pin pre napätie od 5 do 24V". To je dost podstatný rozdíl. Taky z tvého pohledu nepodstatný detail že jde o rpi znamená, že nemá na portu ani AD převodník ani komparátor takže nejde použít řešení podobně jako v těch profi chipech. Prostě bys měl uvést co to je, k čemu to chceš použít a proč to chceš řešit tak jak chceš. Je rozdíl jestli jde o dvířka do kurníku nebo stroj co ti při selhání urve hlavu apod. Takhle to z tebe budem tahat jak z chlupaté deky což většinu lidí dřív nebo později otráví.
Jaký je vlastně důvod tohoto požadavku? Osobně si myslím, že zvládnutím technologie typu AD74413R se naučíš mnohem víc, než nějakým lepením odporů, ale to už je každého věc
Napsal: 24 srp 2025, 17:02
od Dumitru
@bdn – nerozumiem ako/prečo sa ty daný rozširovač portov spája len s raspberry, teda neber že sa navážam len chcem pochopiť logiku prečo až keď som napísal raspberry ta to napadlo ? Ak by som použil STM32, WCH , MSP , AVR ...
@matinlkopp – jeden drat do rpi a druhy drat ako vstup/výstup s 24V logikou, podľa toho ako je na rpi nakonfigurovaní pin.
Požadavek je jednoduchý vyvediem povedzme von x-pinov z RPI a až programátor sa rozhodne či to bude pracovať ako vstup alebo ako výstup.
Ale zatiaľ mam toto riešenie.
Switch použijem nejaký mali SPDT alebo solder jumper.
Myslím si že to bude ok ak bude switch v polohe 2->3 a pin rpi nastavený na výstup nič sa tomu nestane aj keby tam bolo tych 24V privedene na vstup. A ak bude pin rpi na vstup tak to bude fungovať korektne.
A naopak ak bude v polohe 2->1 a pin nastavený pin rpi ako vstup tak sa optočlen neotvorí a ani výstupný mosfet aj keby tam bol pullup aktivovaný, pracovať to bude korektne až v mode pushpull.