Jste zde

Programově řízený zdroj

Regulovaný zdroj patří k nezbytné výbavě každého amatéra i řízený zdroj napětí s proudovým

omezením. Když se však vyskytne potřeba provádět stejné nastavovací manévry v čase, nastupují programově řízené

zdroje.

Potřeba programově řízeného zdroje vyplývá z mnoha aplikací, se kterými se v běžné amatérské praxi setkáváme. U mne si tuto potřebu vyžádala investice do olověného akumulátoru. Jak jsem se dočetl v přiloženém buletinu je životnost akumulátoru závislá na volbě a dodržení parametrů nabíjecího procesu. Prvních několik nabíjení jsem točil knoflíky svého zdroje podle doporučení výrobce a přemýšlel, jak časově náročnou proceduru přenést na bedra malého procesoru. Mohl jsem si vybrat nějakou integrovanou verzi zdrojů s obvodovým nastavením nabíjecích procesů, ale procesor je procesor. A tak nakonec malý controler zvítězil.

 

 

 

Nabíjecí procedura pro Pb akumulátory

Řízený zdroj musí ve svém programu zvládnout především to co bylo naším záměrem, tedy metodiku nabíjení. Tím se samozřejmě rozumí, že program zvládne i jiné úlohy podle naší vůle v požadované aplikaci.

Můj olověný akumulátor je nejmenší z řady hermeticky uzavřených na napětí 6V s kapacitou 1,3Ah. Z tohoto již vyplývají některá omezení. Nový zdroj musí mít maximální napětí do 10V a musí být schopen dodávat proud 200mA. Konkrétně je nejvyšší hodnota napětí stanovena pro tento typ nabíjení na hodnotu 7,45V a nabíjecí proud na 130mA.

Nabíjecí cyklus sestává ze čtyř navazujících kroků rozlišených úrovní výstupního napětí akumulátoru. Podívejme se na jednotlivé úrovně.

  • Pokud má akumulátor na začátku nabíjení hodnotu pod 3V, pak je určen k jinému upotřebení než jako zdroj napětí. Akumulátor je vadný a nabíjení mu život již nevrátí.
  • Napětí akumulátoru má úroveň mezi 3 – 6V. Je úrovní totálního vybití a musíme postupovat s nabíjením velmi opatrně. Zejména je nutno mít na paměti, že se tímto výrazně snižuje životnost a takto provozovat akumulátor se nedoporučuje. U tohoto režimu se nabíjení provádí konstantním proudem 30mA.
  • Napětí je větší než 6V, do 7,45V. Toto je běžný, zdravý provoz akumulátoru. Nabíjení se provádí proudem 130mA (počítá se 10% z kapacity baterie vyjádřeno v proudových jednotkách)
  • Akumulátor při nabíjení dosáhl úrovně 7,45V a tato úroveň napětí se stabilizuje jako konstantní napětí. Nabíjením se postupně snižuje proud až po úroveň 40mA. Tady se nabíjení ukončí a akumulátor je určen pro běžný provoz.

Přeložme si požadavky na jednoduchý algoritmus nastavení.Ten je tedy závislý na konkrétní úrovni výstupního napětí akumulátoru a podle jeho úrovně rozhoduje o funkci nabíjení. Začínáme vždy zdrojem proudu a to úrovní 30mA nebo 130mA. Při dosažení napětí 7,45V přecházíme na regulaci konstantního napětí a nabíjení končíme, když nabíjecí proud poklesne pod 40mA. Jak složité pro ruční sledování v čase nabíjení a jak jednoduché pro nastavení programové sekvence v procesoru.

Obvodové řešení

Návrh obvodu je jednoduchý a vychází ze všeobecně známých zapojení jednotlivých součástek. Jako základ jsem zvolil ATTINY 15. Myslím, že není nutno zvláště představovat tuto drobnost od ATMELu. Výběr byl podřízen potřebě mít alespoň dva A/D převodníky a PWM výstup. Omezenost výstupů definuje zobrazovací schopnosti na dvě LED. Obsazení jednotlivých portů je v následující tabulce
 

Vstup
Nastavení vstupu
Užití
PB0
OUT
Levá LED
PB1
OUT
PWM spínání
PB2
IN
Napětí 2
PB3
OUT
Pravá LED
PB4
IN
Napětí 1
PB5
IN
RESET

 

Zapojení spínače je rovněž notoricky známo, hlavním kritériem pro mne byla dostupnost v domácích zásobách. Proto výkonový spínač, usměrňovač i filtr jsou až zbytečně předimenzovány.Zdroj nepovažuji za účelné blíže specifikovat. Je možno použít dostupný síťový zdroj nebo jednoduché trafo s výstupním usměrňovačem a kapacitním filtrem.


Schéma zapojení. Kliknutím na obrázek získáte náhled ve vyšší kvalitě.
 

Uspořádání součástek na desce plošných spojů není kritické a bylo voleno se záměrem uložení do poloviny krabičky. Druhou polovinu krabičky jsem ponechal pro zdroj. Všechny součástky jsou montovány přímo na desku bez chladičů, výkonově nejsou v naší aplikaci přetíženy. Rozložení součástek, deska plošných spojů a seznam použitých součástek je v následujícím. Celé uspořádání jsem uzavřel do cenově přístupné plastové krabičky U-PK. Výstupní nabíjecí kabely jsou osazeny konektory FASTON 4,8.




Plošný spoj a osazení

Označení Hodnota
IC1 ATTINY15L
IC2 78L05
T1 BD243
T2 BC846
D1,D2 BZX83V4.7
D3,D4 1N4007
C1,C4 470M/25V
C2 1000M/10V
C3 100k SMD
R1 5K6 SMD
R2 10k
R3 1k0,5W
R4 10
R5,R6,R9,R10 1k
R7,R8 2k7
L1 1mH

 

 

Celkové uspořádání součástek v přístroji s použitím malého síťového zdroje ukazuje následující obrázek.

Download schématu a plošného spoje ve formátu Eagle

Popis struktury programu

Program realizuje regulaci napětí a proudu v impulsním režimu. Regulovaná napětí jsou snímána porty ADC1 a ADC2, z nich se počítá proud jako úbytek napětí na odporu. Signalizace na portu PB0 a PB3, výstup na portu PB1 spínán v PVM modulaci. Posloupnost stanovena na doporučení výrobce Pb akumulátorů podle úrovně výstupního napětí akumulátoru.

  • Nenabíjí do 3V.
  • Od 3V do 6V nabíjí proudem 30mA
  • Od 6V do 7,4V nabíjí proudem 130mA
  • Od 7,4V nabíjí napětím 7,45V do proud 40mA

Program začíná na adrese 0x0000 přerušovacím polem. Základní reset předává řízení na adresu Start na konci přerušovacího pole. Přerušení program používá z přetečení časovače 0 a po realizaci AD převodů. Obě přerušení jsou jednorázově spínána a jejich řešení by mohlo být provedeno v sekvenci programu.

Přerušení od časovače volá ošetření na adrese Cas0. Jediným povelem je ošetření registru r18 pro rozhodovací instrukci o délce trvání časové smyčky. Časovou smyčku určuje podprogram Casovac, který je nastaven na základní zpoždění cca 160ms, násobnost zpoždění určuje hodnota v registru r18. Nastavení časovače se provádí v programu Start nastavením registrů TIMSK a TCCR0.

Přerušení od ukončení převodu volá ošetření na adrese Prev. Jediným povelem je ošetření registru r17 pro rozhodovací instrukci o adrese převodu. Převod určuje podprogram Mereni, který zajišťuje provedení převodu z portů PB2 a PB4 a uložení výsledků do registrů r30,r31 a r28,r29. Nastavení typu převodu a rychlosti je provedeno v programu Start nastavením registrů ADMUX a ADCSR.

Nastavení portů se provádí v programu Start nastavením registrů DDRB a výstup pro PWM podle TCCR1. Výstupy portu se přepisují do 1 a nejnižší úroveň výstupního napětí se nastaví vynulováním OCR1A. Hodnota v tomto registru je přímo úměrná velikosti výstupního napětí. Porovnáním s hodnotou měřenou se provádí korekce napěťová nebo proudová v podprogramu KorekN popřípadě KorekP.

V závěrečné části podprogramu Start jsou konstanty nastavení sekvencí určující charakter a velikost výstupního napětí nebo proudu. Pro uklidnění výstupního napětí před vlastním programem je nastavena časová prodleva asi 1,5s.

Pro zobrazení na dvou LED je určen podprogram Zobr. Tento zajišťuje zobrazení stavu nabíjení v rozhodovací úrovni 8-bit. Na stavu zobrazení je závislá i sekvence hlavního programu. Podprogram zajišťuje převod 10bit čísla na 8bit a sepnutím LED. Zobrazovací algoritmus je následující:

 

Levá LED
Pravá LED
PB3
PB0
Funkce
Vypnuto
Vypnuto
1
1
Napětí baterie je pod 3V
Vypnuto
Zapnuto
1
0
Napětí baterie je mezi 3V až 6V
Zapnuto
Vypnuto
0
1
Napětí baterie je mezi 6V až 7,4V
Zapnuto
Zapnuto
0
0
Napětí baterie je 7,45V

 

Po znalostech všech obslužných podprogramů zůstává v popisu hlavní program. První segvence je smyčka pro napětí pod 3V. Realizuje přepsání zobrazení LED na střídavé spínání obou LED v čase zpoždění asi 300ms. Druhá smyčka začíná na adrese Pr1 a nastavuje se pro úroveň 3V až 6V. Volá podprogram proudového nastavení na hodnotu 30mA. Totéž platí pro program začínající na adrese Pr2 a zajišťuje nastavení výstupu proudu 130mA. Nastavení nabíjení konstantním napětím realizuje podprogram začínající na adrese Pr3 a v této smyčce podprogram zůstává pokud prou nepoklesne pod 40mA. Poslední část zajišťuje signalizaci, že je nabíjení ukončeno odpojením výstupního napětí. Signalizace na LED je současným spínáním obou LED zase v periodě asi 300ms.

Na závěr programové stati jenom několik poznámek. Proud se počítá ze dvou známých napětí v 16bitové matematice. Také rozhodovací úrovně se nastavují v 16bitech. Nastavení parametrů pro výpočet a rozhodovací úrovně je dán konkrétní hodnotou děličů a snímacího odporu. Hodnoty jsem korigoval podle konkrétních výsledků měření. K tomuto ještě poznámku o hodnotách děliče. Referenční úroveň napětí AD převodníků byla zvolena vnitřní 2,5V. To znamená pro dostatečné rozlišení jsem zvolil vstupní úroveň napětí vycházejícího z napětí na snímači proudu na 1,2V. Rozdíl napětí na snímacím odporu může pak dosáhnout hodnoty až 1V.

Download programu

Závěr

Nabíječka jako řízený zdroj má za sebou první pokusy samozřejmě se zvýšenou kontrolou zajištění parametrů. Funguje spolehlivě a k mé spokojenosti. Jistě se najde řada nových aplikačních možností nebo vylepšení. Program je možné optimalizovat a hlavně doplnit některými kontrolními a zajišťovacími funkcemi. Využití pamětí programu je teď někde na necelých 50%. Prostor pro vynalézavé tady určitě je.
 

Ing. Miroslav Závidčák
zavi@ atlas.cz

DOWNLOAD & Odkazy

Hodnocení článku: