Vyber tlmivky 10uH pre odrusenie AD prevodnika

Vezmeme to postupně :

Je skvělé mít po ruce někoho, kdo poradí a pomůže přímo na místě. To ale neznamená, že by sis neměl projít datasheet. Věci společné pro celou rodinu procesorů stačí projít jednou, dvakrát na začátku a mělo by se Ti to zažít, že už to pak budeš dělat automaticky i u dalších procesorů.

4x10mOhmů pro napěťový dělič by měl být v pohodě, obzvlášť pokud k pinu přidáš ještě kondík 10-100n. Měření napětí se Ti ještě trošku vyhadí přímo na vstupu do AD a mělo by být stabilnější. Je třeba ověřit časovou konstantu vzniklého RC článku, abys po odpojení aku neměl na vstupu ještě dalších 10 minut stejné napětí. Vstupní impedanci sis určite v datasheetu k procesoru našel, že ?

Jak se bude chovat převodník v případě, že na vstup přivedeš napětí >=1,1V (obecně >=Uref) je celkem jasné - vrátí Ti maximální možnou hodnotu (v tomto případě 1023).

Když se podíváš na POWER_DOWN a POWER_SAVE, tak zjistíš, že jsou téměř shodné. Jediný rozdíl je v tom, že v POWER_DOWN neběží čítače, tím pádem od čítačů nemůžeš MCU probouzet. Ani v jednom případě by ale neměly být v chodu ani hodiny AD převodníku, tím pádem by neměl běžet ani převod a nejsem si jistý, jestli při jiném sleep modu, než IDLE nebo ADC Noise Reduction bude AD převodník fungovat správně. A navíc

Pokud tedy chceš minimalizovat spotřebu, měl bys AD převodník před přechodem do sleep modu vypnout a po probuzení ho zase zapnout. Po celou dobu převodu bys pak měl použít jenom IDLE nebo ADC Noise Reduction.

PCINTx se používá trošičku jinak, než INTx. INTx lze nastavit na jednu hranu, obě hrany nebo low level. Pin Change (jak už sám název napovídá) reaguje pouze na změnu hodnoty na pinu. Reaguje na obě hrany a vyvolá PCINTx přerušení podle skupiny, do které patří. Pokud tedy potřebuješ sestupnou hranu určitého pinu, musíš po vyvolání přerušení zjistit, který pin přerušení vyvolal a jakou úrověň aktuálně má. Vynechat můžeš jenom zjištění, který pin přerušení vyvolal - a to v případě, že PCINT má v dané skupině aktivní jenom jeden. Kontrolu aktuální úrovně pinu zase můžeš vynechat, pokud reaguješ shodně na obě hrany. Další výhodou PCINT přerušení je i to, že není důležité, jestli je pin jako vstupní nebo jako výstupní, dokonce může být použitý v alternativní funkci. Já třeba PCINT používám při UART komunikaci - a to tak, že aktivuju PCINT na pinu, kde je RXD. Jakmile přijde sestupná hrana, tak se vyvolá PCINT (od RXD pinu), rozsvítím LEDku a PCINT zakážu. Po ukončení příjmu znaku se vyvolá USART Rx Complete, kde zhasnu LEDku a povolím daný PCINT. Také jsem PCINT použit pro inverzi TX signálu UARTu. Abych nemusel generovat UART softwarově nebo pin externě negovat, udělal jsem PCINT od TXD pinu a při změně na TXD pinu se vyvolalo přerušení a tam jsem přečetl TXD pin, invertoval hodnotu a poslal na jiný pin, který tím pádem fungoval jako invertovaný TXD.

Tady si nejsem příliš jistý, co by mohlo způsobit to, že procesor se prakticky neuspává. Musel bych vidět program, ale osobně bych hádal, že v tom může mít prsty free-running mód AD převodníku - i když podle datasheetu by se s přechodem do POWER_SAVE nebo POWER_DOWN měly zastavit i hodiny AD převodníku - neplést si to s jeho deaktivací - převodník je sice bez hodin, ale zapnutý. Ale tady opravdu jenom hádám.

Co se odběru LED pásu týká, tak tam je jeho odběr ve zhasnutým stavu celkem logický. Když se podíváš do datasheetu SK6812, tak zjistíš, že jeho klidový odběr je 1 mA. Na pásu máš 60 LED, tak se nemůžeš divit, že zhasnutý pás má odběr 55 mA. Musel bys použít pás s LEDkama bez kontroléru, rozdělit si ho na skupiny a jejich jas řídit procesorem sám. To by ovšem znamenalo, že pokud bys svítil, musel bys generovat tolik PWM signálů pro LEDky, kolik bys měl skupin.

Na závěr ještě odbočím k tomu vypínání TV, PC atd. ze zásuvky. Samozřejmě je to každého věc a nikomu nic nenutím. V TV nebo v různých článcích na Internetu dokonce fundovaně spočítali, kolik ročně ušetříš, když budeš všechno vypínat/vytahovat ze zásuvek. Dělám to také - avšak pouze, když odjíždíme na dovolenou apod. Prostě když jsme minimálně na týden mimo domov. Pulzní zdroje totiž všeobecně nemají rády časté zapojování do sítě. Při zapojení do sítě dochází k velkému proudovému nárazu (obzvláště u výkonnějších zdrojů), které se nelíbí hlavně vstupním kondenzátorům. Některé lepší zdroje mají proto na vstupu NTC termistor, který omezí proudový náraz při připojení do sítě. Jenže to je opět minimálně jedna součástka navíc (rozuměj prodražuje se výroba). A to nemluvím o tom, že opravdu slušné zdroje mají u termistoru ještě překlenovací relátko, které po rozběhu NTC termistor zkratuje, aby zbytečně nesnižoval napájecí napětí a zbytečně se nehřál. Měl jsem tady 500W zdroj do PC (při maximálním zatížení by tedy měl brát maximálně cca 2,3A), který při připojení do sítě vyhazoval 16A jistič. Nemusím připomínat, že pokud jsou schopni výrobci vynechat ochranné odpory (proti proudovému nárazu při zapnutí) v LED žárovce (jak jinak, než kvůli ceně - na DPS místo na jejich osazení je), kdy za oba jako koncový zákazník zaplatíš maximálně pár desítek haléřů a který jako velkoodběratelé musí mít v ceně necelých haléřů, tak určitě nebudou osazovat NTC termistor, který je cenově mnohem dražší. Opakovaným zapínáním pulzního zdroje do sítě tedy velice zkracuješ životnost daných kondenzátorů, potažmo celého pulzního zdroje. A to platí nejenom u Tvého zdroje napájení LEDek, ale i TV, PC a ostatních moderních spotřebičů, které jsou napájené právě kvůli úspoře a ceně pulzními zdroji.