Jedna vtipná diskuze mě inspirovala k tomu udělat několik následujících zajímavých pozorování. Vzal jsem samostatné MCU (Atmega16, páč megu328 jsem v šuplíku zrovna nenašel). A zapojil jsem ji do nepájivého pole na půlmetrovej kábl ("jakože adaptér") kompletně bez filtračních kondíků na napájecích pinech (což je blbost, ale stojí za to vidět proč). Megu napájenou 5V jsem pustil na interních 8MHz a nechal jsem ji zapisovat na PORTD střídavě jedničky a nuly vcelku rychle za sebou (s prodlevou 5 "nopů"). Dvy piny portu jsem zatížil proti +5V rezistory 180Ohm abych simuloval dohromady cca 50mA zátěž, samotné MCU bralo dalších cca 20mA. Jednou osciloskopickou sondou jsem sledoval spínání zátěže a druhou jsem sledoval co se děje s napájecím napětím. Takhle to vypadalo na stole:
Kromě giganticých spajků (skoro 1V) v okamžiku spínání a rozpínání zátěže je navíc i vidět hromada menších spajků způsobených přepínáním vnitřní logiky mikroprocesoru. Předpokládám, že dopad na přesnost a šum AD převodníku bude drastický.
Jak vidno, nejhorší spajky to zahladilo, ale napájecí napětí vlivem spínané zátěže dál "houpe" minimálně o dvě desetiny voltu, tedy pořád situace která může spolehlivě kompromitovat AD převodník.
A výsledek se konečně trochu umravnil. Ty zbylé malé spajky v okamžicích sepnutí zátěže jsou relikt po měření osciloskopicou sondou s "dlouhým" zemnícím káblíkem, viz poznámka o sondách. Ostatní nečistoty, jsem nezkoumal, ale svůj vliv budou mít i úbytky na kontaktech v napájivém poli atd.
Vysvětlení těchto problémů tkví v napájecím kabelu. Ten má totiž svou indukčnost (v mém případě odhaduji 1uH). Ta blokuje prudké změny odběru, takže když překlápí vnitřní logika v čipu, nebo se skokově spíná nějaká zátěž, vzniká na indukčnosti přívodního kabelu úbytek napětí. Tím větší čím větší je změna proudu a čím je rychlejší. Filtrační kondenzátory pak mají za úkol tenhle jev anulovat a fungovat jako lokální zdroj energie, který pokrývá tyto prudké špičky.
Když už jsem byl tak rozjetý tak jsem vyzkoušel další "prasárničku" a to připojit napájení k čipu jen na jeden pár napájecích pinů. Připojil jsem tedy jen VCC a GND. Druhé GND a AVCC pin jsem nechal nezapojené. Filtrační kondenzátory jsem také nepřipojil a napájecí kabel jsem dal rovnou metrový. A v tomhle stavu jsem zkusil po ISP do čipu zapsat a vyčíst program... a šlo to. Nechci tím nikoho nabádat aby to dělal, je to hloupost, nemusí to vyjít a ještě hrozí že si na taková řešení zvyknete. Ale jde to :D
Home
| V1.10 25.2.2023 /
| By Michal Dudka (m.dudka@seznam.cz) /