Řidící jednotka je modul, který má za úkol řídit všechny funkce PA. Lákalo mě mít jako součást PA diagnostiku, která by neustále zobrazovala informace o funkci PA a v případě podezřelých či nebezpečných stavů včas odstavila PA z provozu. V dnešní době kdy jsou snadno dostupné výkonné procesory s řadou analogových vstupů a rozsáhlým portfoliem periferií je takový úkol relativně snadný. Vzhledem k tomu, že se programování těchto procesorů teprve učím byl jsem opatrný a nejdůležitější ochranné prvky jse ponechal mimo řídící jednotku. V některých případech tato jednotka může dublovat funkčnosti externích ochranných prvků.
Všechny tyto funkce vykonává procesor Atmel AVR ATMEGA16 v SMD pouzdře TQFP . Ovládací program je napsán v jazyce Bascom. K procesoru je připojen displej 4x20 znaků který je dostatečně velký pro zobrazení potřebných údajů. Všechny porty procesoru jsou protí přepětí chráněné zenerovými diodami a proti pronikání VF blokovacími kondenzátory, tlumivkami a průchodkovými kondenzátory.
Napájecí napětí měříme na vstupu ADC0 přes odporový dělič R3+R23 a R2. Vstupní napětí 50V odpovídá hodnotě 1024 na výstupu převodníku. Přesná hodnota měřeného napětí se nastavuje trimrem R23. Přesnost převodu je zajištěna napěťovou referencí 2,5V LT1009. Přesné napětí lze dostavit trimrem R39. V mém případě ale výstupní napětí sedělo dostatečně přesně takže nebylo nutné R26, R27 a R39 osazovat.
Proud tranzistorem je měřen pomocí proudového snímače s hallovou sondou AS756 od firmy Allegro. Jeho použití je velmi výhodné protože galvanicky odděluje napěťovou úroveň 48V na které měříme proud od nízké napěťové úrovně kterou je napájena řídící jednotka. Další výhodou je velmi malý napěťový úbytek na tomto senzoru. Senzor měří proud v rozsahu +-50A. Na jeho výstupu je napětí jehož velikost odpovídá měřenému proudu. V našem případě je na výstupu napětí 2,5 při nulovém proudu až 5V při 50A.
Modul měření proudu je umístěn mimo procesorovou desku. Je umístěn na malé destičce která je umístěna poblíž vstupních svorek napájecího napětí 48V.
Modul je vyroben na jednostranné DPS. S vyjímkou vstupních přívodů je umístěm v plechové stínící ohrádce. Svorky napájení a výstupního napětí jsou realizované průchodkovými kondenzátory. Vstupní svorky modulu jsou posíleny měděným plechem který je k DPS z obou stran přinýtován a ze strany spojů taky připájen. Výstupní napětí z proudového čidla musíme převést na napěťový rozsah 0-2,5V potřebný pro vstup ADC1 procesoru. To je zajišťeno pomocí rail to rail OZ IC2. Tento OZ jsem použil abych nemusel pro jeho napájení používat symetrické napětí. Má to ale malou nevýhodu v tom, že jsem tak schopen měřit proud od přibližně 150mA. To v této konstrukci ale nepředstavuje žádný problém. OZ IC2A posouvá vstupní napětí o napětí reference 2,5 na výstupu sledovače IC2B. Malou napěťovou nepřesnost můžeme vykompenzovat pomocí R8 nebo R38 a trimrem R24. U mě ale toto nebylo potřeba a proto jsem R24 nahradil propojkou a odpory R8 a R38 ponechal neosazené.
Výkony jsou měřené na vstupech ADC2 až ADC4. Napětové úrovně z modulu měření výkonů jsou upraveny odporovými děliči R10 až R15. Komparátor IC4A zajišťuje rychlé vypnutí buzení PA při překročení odraženého výkonu přes úroveň nastavenou trimrem R25. Tato funkce zdvojuje stejnou funkci v analogových indikátorech PSV a výkonu. To ale není na závadu. Podle mého názoru pojistek není nikdy dost. Při konečné realizaci celého projektu jsem ale nakonec tuto funkčnost nevyužil.
Teploty měřím pomocí dvou teplotních čidel Dallas DS18B20 připojených na vstup PA6. Čidla jsou zasunuta do otvorů vyvrtaných v měděné podložce pod tranzistorem a někde v chladiči. Měření dvou teplot asi není úplně nutné ale zajímal mě teplotní spád v systému chlazení. Znalost teplotního spádu by také mmohla sloužit pro citlivější řízení otáček ventilátorů. Této možnosti jsem ale nakonec nevyužil protože to nebylo potřeba. Systém bez problémů a velmi citlivě řídí otáčky jen podle teploty v mědi. Použití dvou teplotních čidel přináší určitou komplikaci při oživování procesorové desky. Předělávat to ale už nebudu. Při prvním zapnutí musíme procesoru říci který teploměr je určen pro měření v mědi.
Před prvním zapnutím připojíme jen jedno čidlo DS18B20. Stiskneme tlačítko S1 (display) a držíme ho. Zapneme napájení MCU desky a program přejde do módu nastavení teploměru. Procesor si zjistí počet připojených čidel. Pokud není zapojeno žádné nebo více než jedno program zahlásí chybu a neudělá nic. Pokud je připojeno jen jedno čidlo přečte si jeho jednoznačný identifikátor a uloží si ho. Od této chvíle si procesor pamatuje připojené čidlo a ví že je to čidlo vložené do měděné podložky pod tranzistorem. Na základě údajů tohoto čidla bude ragulovat ventilátory. Potom už můžeme připojit i druhé čidlo DS18B20 a procesorová deska už bude pracovat normálně. Tento postup můžeme kdykoliv zopakovat pokud bychom z nějakého důvodu potřebovali čidlo vyměnit.
Pokud program v procesoru vyhodnotí jakýkoliv chybový stav, musí co nejrychleji odstavit PA z činnosti. To se dělá tak, že je výstup Porucha OUT sepnut na zem tranzistorem T9. Tím je zkratován vstup poruchy v modulu ochran. Ta pak velmi rychle přepne buzení PA do odporu. Po odstranění závady musíme aktivovanou ochranu vynulovat tlačítkem S3 (RESET). Stisknutím tohoto tlačítka se uvede do aktivního stavu program procesoru který zkratováním výstupu Reset OUT vynuluje sepnutý tyristor v desce ochran a tím se PA vrátí do aktivního stavu.
Vyhodnocení chybového stavu je rovněž signalizováno akusticky pípáním bzučáku SP1.
Na výkonovém tranzistoru PA se při plném výkonu a ideálních podmínkách ztrácí přibližně 350W výkonu. Proto musí být PA osazen masivním chladičem který je ofukován třemi běžnými 12V ventilátory určenými původně pro PC. Aby byly tyto ventilátory co nejméně hlučné koupil jsem kvalitní typy se sníženou hlučností a fluidními ložisky. Další malý ventilátor pak vhání vzduch dvnitř skříně a chladí součástky výkonového modulu. Původní záměr byl zapojit velké ventilátory do série a ovládat PWM signálem. Ukázalo se ale že se sériově zapojené ventilátory vůbec neroztočí. Proto jsem všechny ventilátory zapojil paralelně. Napájeny jsou čínským měničem v provedení HV takže je možno jej použít až do 50V.
Ventilátory řídí procesor prostřednictím PWM regulace na výstupu OC0. Napájeny jsou napětím +12V a spínány k zemi tranzistorem T3. Ten je buzen z výstupu OC0 procesoru PWM signálem. Střídu tohoto signálu vypočítává procesor na základě teploty tranzistoru a stavu RX/TX. Při TX jsou pochopitelně otáčky ventilátoru vyšší.
V předchozím odstavci jsem popsal původní záměr. Bohužel se ukázalo, že dnešní PC ventilátory není možné napájet PWM signálem. Při vyšších frekvencích se vůbec neroztočí a při nižších je lze obtížně regulovat a pískají podle použitého kmitočtu. Fungovaly až při frekvencích řádově okolo 10Hz a i tehdy nepříjemně "tikaly". Proto jsem nakonec PWM signál externí deskou převedl na proměnné stejnosměrné napětí kterým ventilátory napájím. To sice přináší určité ztráty při regulaci ale při instalovaném výkonu PA si s těmi cca 2ma watty starosti dělat nemusíme. Při realizaci je tedy možné buď použít starší ventilátory bez elektroniky nebo použít zmíněnou převodní desku. Pokud použijete k napájení ventilátorů PWM důrazně doporučuji použít pro ně samostatný měnič ze 48V a nenapájet ventilátory ze společného napětí 12V. Rovněž neveďte vodiče k ventilátoru ve svazku s ostatními vodiči. Ostré hrany PWM signálu by pronikaly do okolních vodičů a docházelo by k rušení jimi vedených signálů. Po se pak projeví nestabilitou měřených signálů a pod. Docela mě potrápilo než jsem se těchto problémů zbavil. I problémy s popisovaným rušením nakonec zcela odstranila převodní deska PWM -> Napětí.
Na obrázcích vidíme schéma a DPS převodníku PWM - stejnosměrné napětí. Napájecí napětí převodníku musí být nastaveno tak, aby pokrylo úbytky napětí na T2 a IO1 který není Rail to Rail. Tato napětí dohromady činí činí cca 2 až 3V. Takže bychom měli modul napájet napětím přibližně 15V. Napětí snadno nastavíme měničem který ventilátory napájí. Tranzistor T1 je přišroubován někam kde je zajištěno odvedení 1 až 2W ztráty které na něm vzniká. Ideální umístit ho na na hlavní chladič. Pro mě by to ale znamenalo kompletně sestavený PA znovu rozebrat a proto jsem ho umístil na bočnici do blízkosti měniče který ho napájí.
Do stavu TX se PA přepíná signálem PTTin. Sepnutím tohoto vstupu na úroveň 0V převedeme procesor do stavu TX. Rozepnutím se procesor vrátí zpět na příjem. Procesor pak na výstupu PTTout spíná na TX ochrannou desku. Rovněž spíná obě relé tranzistory T7 a T8 a spíná i napětí +12V pro napájení předzesilovače. Zásada je taková, že se nikdy nesmí pustit výkon dokud není předzesilovač bezpečně vypnutý a výkonové relé není bezpečně přepnuté. Relé nesmi NIKDY sepnout či rozepnout pod výkonem. To by znamenalo jeho velmi rychlý konec.
Při přepnutí na TX nejprve přepne vstupní relé a přivede vstupní výkon do odporu v ochranné desce. Současně vypne napětí pro předzesilovač a přepne i výkonové relé. Po nastavené době která zajistí bespečné vypnutí předzesilovače a přepnutí výkonového relé procesor vygeneruje signál PTTout. Ten přepne ochrannou desku do stavu TX a budící signál je přepnut z odporu do modulu PA.
Při přepnutí na RX nejprve procesor vypne signál PTTout a tak přepne budící signál do odporu v ochranné desce. Po nastaveném čase který zajistí že již na výstupu PA bezpečně není VF výkon přepnou obě relé a teprve po jejich bezpečném přepnutí zapneme napětí pro předzesilovač.
Tak je zajištěno, abychom si nikdy nemohli zavysílat do předzesilovače a výkonové relé není nikdy sepnuto pod výkonem.
Obě VF relé mají napájecí napětí 28V. Nejprve jsem uvažoval o měniči 48/28V ale nakonec jsem se rozhodl použít srážecí odpory. Na odporu napájejícím výkonové relé je ztráta přibližně 6W. To je hodně ale při příkonu plně vybuzeného PA je to vlastně zanedbatelné. Použil jsem výkonové odpory v chladícím hliníkovém pouzdře. Odpory jsou v blízkosti relé přišroubovány k chladiči PA. Je to lepší řešení než použít běžné výkonové odpory které by plandaly na drátech někde ve vzduchu a v uzavřeném prostoru by nemusely být dostatečně chlazeny.
Abych mohl přehledně zobrazit všechny potřebné údaje použil jsem displej 4x20 znaků ATM2004D koupený v GM Electronic. Displej je k procesoru připojen klasickým čtyřdrátovým zapojením. Kontrast displeje se řídí trimrem R45. Podsvícení displeje se zapíná jumperem JP3.
Po zapnutí PA je displej ve standardním provozním módu. Ten velmi přehledně zobrazuje nejdůležitější provozní parametry. Na prvním řádku je zobrazen výstupní výkon, na druhém PSV, třetí řádek zobrazuje stav RX/TX. Na posledním řádku je pak zobrazena teplota v měděné podložce tranzistoru, napájecí napětí a proud do výkonového tranzistoru.
Tlačítkem S1 (Display) můžeme zobrazení přepnout do diagnostického módu. V něm display zobrazuje všechny naměřené údaje i ty které jsou z naměřených hodnot vypočteny. Tak získáme kompletní přehled o stavu PA ale za cenu špatné přehlednosti a srozumitelnosti zobrazovaných hodnot.
Na obrázku vidíme diagnostické zobrazení displeje:
První řádek zobrazuje Výstupní výkon PA, stejnosměrný proud do modulu PA a napájecí napětí.
Druhý řádek zobrazuje PSV a Stejnosměrný příkon.
Třetí řádek zobrazuje budící výkon, účinnost a zisk PA
Na čtvrtém řádku jsou zobrazeny teplota v Cu podložce pod tranzistorem a teplota v Al chladiči.
Oba zobrazovací módy mezi sebou přepínáme tlačítkem S1 (Display)
Program procesoru se ovládá třemi tlačítky. Tlačítko S3 (RESET) vynuluje poruchový stav. Plačítko S2 je v současné verzi firmware nevyužité a tlačítkem S1 se ovládá mód zobrazení displeje. Tlačítko S4 je reset procesoru. Ten se mi hodil při oživování ale není vyveden na čelní panel. V běžném provozu není toto tlačítko potřeba a proto ho ani nemusíte osazovat.
Paralelně k tlačítkům je připojen ISP konektor pro programování procesoru. Proto během programování procesoru nesmí být žádné tlačítko stisknuté.
Ve schématu mám namalován krystal Q1 ale ve skutečnosti jsem použil interní oscilátor v procesoru. Krystal jsem do schématu namaloval jako rezervu, kdybych potřeboval použít jiný kmitočet. Krystal ani kondenzátory C1 a C2 proto neosazujte.
Piny PD0, PD1 a PC7 jsou vyvedeny na jumpery a ponechány jako rezerva. Jumper JP1 by časem mohlo být použito pro komunikaci s PC sériovým portem. To by se mohlo hodit třeba při vzdáleném ovládání PA. V současné verzi firmware 1.0 ale tyto jumpery nejsou využité.
Piny PD6 a PD7 jsou vyvedeny ven mimo desku a jsou použity jako rezerva pro libovolné budoucí použití. Pin PD6 je výstupní a PD7 vstupní.
Procesorová deska je vyrobena na oboustranné desce plošných spojů. Strana součástek je ponechána vcelku a je využita jako stínění. Většína součástek je v SMD provedení. Deska je na první pohled dost veliká, ale její velikost je dána velikostí dipleje který je k ní přišroubován. Celá deska včetně displeje je zaletována do stínící ohrádky z pocínovaného plechu.
Displej je k DPS přišrobován přes distanční sloupky ze strany součástek. Do desky je připojen plochým vodičem přes konektor JP3. Aby bylo možné protáhnout plochý vodič na druhou stranu desky ke konektoru je v desce pod displejem vyfrézován otvor, kterým plochý vodič prochází. Musí být dostatečně velký aby prošel i konektor. Celý modul je přišroubován k čelnímu panelu, ve kterém je vyfrézován otvor pro displej a vyvrtány otvory pro hmatníky tlačítek.
Nejprve osadíme součástky v napájení a stabilizátor IC3. Změříme napájecí napětí 5V. Pokud je v pořádku pokračujeme ve stavbě osazením všech dalších součástak. Po zapnutí napětí do osazené desky změříme napětí na referenci. Mělo by být co nejpřesněji 2,5V. Na připojeném displeji by měly být vidět řádky kostiček. Pokud je displej prázdný nebo naopak celý černý bývá to způsobeno nesprávně nastaveným kontrastem. Ten nastavíme otáčením trimru R45 tak aby zobrazené kostičky byly co nejkontrastnější. Pokud je vše v pořádku, můžeme přistoupit k nahrání firmware do procesoru. Já poskytuji firmware ve formátech *.bin a *.hex. To by mělo postačovat pro jakýkoliv běžný programátor. Programátor připojíme do konektoru ICSP a nahrajeme program do procesoru. Zároveň nahrajte i "pojistky" podle následujícího obrázku. Především nezapomeňte vypnout JTAG jinak by nefungoval display.
Po nahrání firmware by se měla objevit hláška o verzi programu a pak přepnout do základního zobrazení displeje. Vypneme procesorovou desku a provedeme proceduru konfigurace teplotních čidel která je popsána v sekci o měření teploty. Tím by mělo být oživení DPS hotové. Vypneme nebo resetujeme desku a po novém najetí programu už by se měly zobrazovat teploty a fungovat všechna měření. To můžeme otestovat přivedením napětí na jednotlivé měřící vstupy.
15.1.2020 Přidal jsem firmware verze 3.0. Tato verze je určena pouze pro novou jednotku měření výkonu která je osazena 3x AD8307. Kromě jiných výpočtů pro uvedenou jednotku jsem zcela přepracoval načítání dat z A/D převodníků. To vedlo k výraznému zklidnění měřených hodnot a odstranění problémů s vypadáváním PSV ochrany. Vřele doporučuji použití nové jednotky měření výkonů a tento firmware.