Vstup: co na něm visí a jak ho chránit
Vstup si proud skoro nebere, takže se zdá, že s ním není co řešit. Jenže právě proto je citlivý na všechno: nedrží ho nic, a co na něm zůstane, to přečte.
Plovoucí vstup není nula
Nezapojený CMOS vstup není nula ani jednička — je to kus vodiče s kapacitou, který si drží poslední náboj a mezitím sbírá všechno, co kolem prolétne. A jak vysvětluje LogicLab, uvnitř zakázaného pásma jsou otevřené oba tranzistory, takže se hradlo topí. Každý vstup musí mít, kdo ho drží — budič, pull-up, pull-down, nebo aspoň vnitřní pull, který se dá zapnout v registru.
Sériový odpor: nejlevnější ochrana, jaká existuje
Každý CMOS vstup má diody do napájení a do země. Vydrží zlomek miliampéru trvale a několik miliampér krátce. Sériový odpor je to, co z přepětí udělá zlomek miliampéru:
Pro 24 V na 3,3V pinu a mez 1 mA vyjde R ≥ 20 kΩ. Deset kiloohmů je běžná volba, protože bere dva miliampéry a to většina čipů snese; sto kiloohmů je bezpečnější a pomalejší.
Proč to ale není správné řešení: ten proud neteče do země, teče do napájecí větve. Když je čip vypnutý a signál zvenku ne, napájí ho ten signál — deska se rozběhne napůl, procesor se nespustí ani nezůstane v resetu, a chová se to naprosto nepochopitelně. Kdykoli může být jedna strana bez napájení, patří tam dělič, který nikam netlačí, nebo budič.
Co ta ochrana stojí
Šířku pásma. Sériový odpor s kapacitou vstupu dělá dolní propust s mezním kmitočtem 1/(2πRC) — a u 100 kΩ a 8 pF to je 200 kHz. Na tlačítko je to skvělé (rovnou to odruší zákmit), na SPI hodiny je to konec. Velký odpor a rychlý signál se vylučují, a mezi tím se vybírá.
Tři obvyklé vstupy
| co | jak | na co pozor |
|---|---|---|
| tlačítko | pull-up + RC + Schmitt | zákmit — LogicLab kap. 11 |
| 24V čidlo | dělič nebo optočlen | nikdy sériový odpor sám |
| rychlá sběrnice | přímo, bez odporu | úrovně a terminace, ne ochrana |