Nabíječka autobaterek z PE5/2015
Moderátor: Moderátoři
Masar, jak už jsem tu psal několikrát, pokud je nepřipojená baterka a nesepnutý FET, tak na výstupech všech čtyř komparátorů je +5V. Autor píše, že tam má být nula, což je zjevnej nesmysl. Pokud některý vstup komparátoru přeleze +2,5V tak se komparátor překlopí na nulu a to překlopení na nulu se testuje ve FW. Reference je na neinvertujícím vstupu, napětí baterky na invertujícím. A samozřejmě jsem ji měřil i oscilem, jestli nešumí nebo nekmitá.
Podle mě pokud se ta kontrola připojení baterky bude dělat při vypnutým FETu, tak nic kmitat nemůže. Další možnost je, že je blbě navrženej plošák a od těch proudových špiček někde něco napěťově houpe nebo bručí na blbý zemi. Proto na nižším napětí baterky, kdy do ní teče mnohem větší proud to cyklování zůstalo a při velkým napětí baterky a menším nabíjecím proudu to přestalo.
Proč mi nemůže všechno chodit hned ?!!
Program vykazuje některé funkční nedostatky. Kromě toho, že je oproti popisu opačné pořadí rozsvícení LD1 až LD4 (nutno zohlednit při konstrukci čelního panelu), je jedním z nich např. spínání/rozpínání relé v každém nabíjecím cyklu. I když tyto impulzy mají jen cca 0.5ms, a relé nestihne reagovat, spínací tranzistor T5 o nich však "moc dobře ví".
Zvláštním způsobem je řešeno vypínání MOS-Fetu v 1. a 3. fázi nabíjení. Zatím co jeho sepnutí následuje ihned po přijetí vzestupné "hrany" půlvlny, jeho vypnutí se určuje následnou zpožďovací smyčkou, která je plněna výpočtem z naměřené hodnoty časovačem T0 tak, aby MOS-Fet vypnul před uplynutím půlvlny. S danými parametry však tranzistor vypíná příliš brzy a zkracuje tak částečně dobu nabíjecího impulzu, což je z hlediska SOA a možného vzniku rušení nevhodné. Proč pro vypnutí není pužita sestupná hrana, nevím. Hned po té probíhá test na odpojení akumulátoru, ačkoliv vhodnější by bylo testovat až před sepnutím MOS-Fetu...
Testování na odpojení akumulátoru od nabíječky je různé podle fáze nabíjení. Ve 2., 4. a 5. fázi je četnost testu zbytečně vysoká (20x během půlvlny), což zvyšuje pravděpodobnost reakce na rušivé impulzy, která způsobí restart cyklu. V programu zcela chybí ošetření případně nesprávně přečtených hodnot vstupního portu (debouncing).
Vyzkoušením v simulátoru bylo také zjištěno, doby nabíjecích a měřících cyklů jsou podstatně kratší oproti popisu v článku (např. cyklus2.fáze jen 35 sekund). Možná byl původní program navržen s krystalem 6MHz...
K "architektuře" programu jen tohle: celý program se skládá ze zpožďovacích a vyhodnocovacích smyček, jejichž obsah se opakuje. Přesto neobsahuje ani jediný podprogram, který by tomu dal nějakou "štábní" strukturu. K vyhodnocení "průchodu nulou" je použit čekací cyklus a nikoliv obsluha přerušení, které se tu nabízí. Ale podstatné je, že program funguje a plní požadovanou úlohu.
K již zmíněným opravám ve schématu bych přidal ještě úpravu obvodu R2/R3/D3 tak, aby R2/R3 netvořil dělič, tzn. zapojit R3 "před" R2. Zvýší se tak strmost hran a zpřesní oblast průchodu. A vzhledem ke zkušenostem s rušením ještě blokovací kapacitu na vstup komparátoru 1.fáze a možná i jinam. Přínos kondenzátoru C9 nevidím, odpojil bych ho.
Podle mě je v 1. a 3. fázi zcela zbytečný používat časovač na "výpočet" PWM. Mám tady rozepsanou verzi, kde (za cenu prohozu dvou noh na 89C2051) se přes INT0 vyhodnocuje průchod nulou sítě. PWM se generuje tak, že při požadavku 1/10 Imax se prostě na jednu půlvlnu FET zapne a 9 půlvln je vypnutý. Podobně při 1/7 nebo 1/4. Ten průchod nulou se krom synchronizace spínání FETu používá v intervenci na časovou základnu 0,1 a 1 sekunda prostým přičítáním registrů a od toho se odvíjí doby nabíjecích a měřících dob.
Možná by to šlo i bez přehazování noh bez INT0, jen prostý ohledávání změny stavu ale to už je takový drbání pravou za levým uchem.
Takže po zapnutí nabíječky se vypne FET, vyřeší polarita baterie, vypnou LEDky, nastaví počítací registry a po pauze 0,5 sek se otestují komparátory, pokud není připojená baterka, tak se program vrátí na začátek. Pokud bateka připojená je, podle stavu napěťových komparátorů se zvolí příslušná fáze nabíjení. V ní se otestuje stav přepínače velký/malý proud a podle toho nastaví PWM. Povolí se spínání FETu a přerušení INT0. Nabíjení se rozběhne a kontroluje se časová základna. Po cca 5 sekundách se zakáže spínání FETu, počká 0,1s a zkontroluje připojení baterky. Při odpojení jde program na začátek. Pokud není odpojená, znova se povolí spínání FETu a 250 sekundách (doba nabíjecího cyklu) se zase program spustí od začátku, tedy test komparátorů, rozhodnutí o fázi nabíjení atd.
Pak budou všechny nabíjecí fáze v podstatě jedna smyčka, jen se podle stavu komparátorů změní pár parametrů potřebných pro danou fázi.
Myslím, že to je v kostce asi tak vše, co by to mělo dělat.
Jestli se Ti v tom popisu něco nelíbí, dej prosím vědět. Já se tomu nyní nemůžu věnovat, moc jiný práce na baráku a zahradě. FET je na cestě.
Jo a co jsu myslel tím "aby R2/R3 netvořil dělič, tzn. zapojit R3 "před" R2. " ?
Proč mi nemůže všechno chodit hned ?!!
Proč mi nemůže všechno chodit hned ?!!
Původní zapojení není taky úplně pochopitelné, snad že R3 trochu sníží ztrátový výkon na D3?
I kdyby se z tebe jednou stal král, neodsuzuj lidi, kteří ti nebudou provolávat slávu- raději se zeptej sám sebe, proč tomu tak není...
Dále R3 zajistí, aby v případě, kdy průběh sinus = nule, byla přes R2 a R3 na vstupu IO P30 opravdu nula. Aspoň tak to chápu já.
V původním zapojení má R3 stejný význam - při sinus = nule zajistí konkrétní nulu na vstupu IO.
Průběh na D3 je ukázán zelenou křivkou na screenech z osciloskopu - pokud se nepletu.
Potom je to už pochopitelné.
Dívla jsme se na to jen z pohledu výkonových ztrát...
I kdyby se z tebe jednou stal král, neodsuzuj lidi, kteří ti nebudou provolávat slávu- raději se zeptej sám sebe, proč tomu tak není...