Magnetické čidlo pro snímání úhlu otočení 0-359° Autor: Datum: Verze:
Ing.Tomáš Pavera, OK2TPQ 28/11/2010 1.4
Předem bych chtěl poděkovat Pavlovi (OK2IFS) za pomoc s mechanickou konstrukcí čidla a její výrobou. Pavlova dokumentace bude rovněž ke stažení na mých stránkách.
Úvod Jedna z prvních konstrukcí ihned poté, co jsem se naučil programovat jednočipy byla konstrukce jednotky pro řízení rotátoru. Uplynula řada let a za tu dobu jsem se snažil párkrát vytvořit něco použitelného. Zkoušel jsem převážně odporová čidla a inkrementační čidla. Nikdy jsem však nebyl spokojen s výslednou kvalitou snímání. Problémy vznikaly mechanickým opotřebováním, nelinearitou, překmity či nestálostí parametrů v různých pracovních podmínkách. V srpnu roku 2005 vyšel na jednom internetovém portálu článek o čipech firmy Austriamicrosystems. Tehdy jsem si řekl, to by mohlo být to pravé ořechové. Nicméně objednané vzorky nedorazily a má radioamatérská činnost i dosti v té době polevila. Nyní se již věci mají trošku jinak a rozhodl jsem se proto k původní myšlence vrátit.
Popis funkce čidla Čipy od Austriamicrosystems odstraňují všechny nedostatky, se kterými jsem se do té doby převážně setkával. Vybral jsem typ AS5043, který mi připadal pro naše podmínky optimální. Jedná se o 10-ti bitový magnetický snímač polohy. Kromě 4 halových sond čip obsahuje převodníky vzorkující výstupní hodnoty sond a vyhodnocovací elektroniku s digitálním rozhraním SPI. Jedná věc je mít tento čip umístěn u stožáru, druhá věc je dostat z něj informace spolehlivě do „hamovny“ a nějak šikovně je zpracovat. K tomu slouží mnou navržená konstrukce. Na obrázku 1 je znázorněna hotová konstrukce čidla obsahující plošný spoj elektroniky, který je popsán dále.
Obrázek 1 – Hotové čidlo
Na obrázku 2 je vidět plošný spoj z obou stran. Vlevo je vidět strana součástek, vpravo pak je vidět strana spojů. Orientaci uvádím možná neobvykle, ale spoj tak byl navržen. Magnet se umisťuje asi 1mm nad úroveň ostatních součástek. Při testech se osvědčilo použít magnet průměru 10mm, kdy je magnetické pole nad čipem definováno lépe a čidlo je tedy méně náchylné na mechanické nepřesnosti, než je tomu u magnetu s menším průměrem. Zde je nutné uvést, že není možné použit obyčejný magnet, ale diametrálně zmagnetizovaný magnet, který lze pořídit např. na www.supermagnete.de. Některé firmy rovněž dodávají odpovídající magnety spolu s čipem.
Obrázek 2 - Plošný spoj s elektronikou Výstup z čidla je proveden pomocí 4-pinového konektoru. Dva piny slouží pro napájení čidla, zbývající piny slouží pro obousměrnou komunikaci sběrnice RS485. Samotný plošný spoj obsahuje stabilizátor napětí 5V, snímací obvod AS5043, mikrokontrolér ATMega8-16AU (popř.ATMega8-8AU) a převodník SN75176 z TTL na RS485. Data jsou tedy čtena z čidla prostřednictvím této sběrnice. Na druhém konci sběrnice RS485 se připojuje řídicí jednotka rotátoru, která má za úkol komunikaci s čidlem, zobrazování, ovládání silových relé točících motorů, jednoduché prvky ovládání a komunikaci s počítačem pro automatické natáčení antén. Prostřednictví počítače se rovněž definuje mechanické chování anténního systému a operace spojené s obsluhou čidel polohy včetně aktualizace firmware. Popis této řídicí jednotky bude v nejbližší době zveřejněn na mých stránkách. Kdyby někdo chtěl toto čidlo použit pro svou vlastní jednotku, mohu poskytnout můj komunikační protokol použitý na sběrnici RS485. Samotné čidlo lze programově nulovat a reverzovat. Tudíž nám odpadnou některé problémy s mechanickou částí a problémy s kalibrací, kterou je tedy možné provést kdykoliv z pohodlí místnosti. Na jednu sběrnici RS485 lze připojit hned několik čidel. Adresovací prostor umožňuje teoreticky adresovat až 253 čidel. V praxi se budeme nejvíce setkávat s jedním až dvěma čidly (azimut + elevace). Více čidel ani při komunikační rychlosti 19200Bd nedoporučuji, neboť při maximální rychlost odečtu je zhruba 30 hodnot za sekundu. To se může zdát hodně, ale při použití dvou čidel je to již 15 hodnot/čidlo za sekundu, což je tak akorát pro dosažení vyšší přesnosti automatiky průměrně rychlého rotátoru.
Schéma zapojení
Obrázek 3 – Schéma zapojení Jedná se o poměrně jednoduché zapojení, které neskrývá žádné záludnosti. Co se týče napájení, doporučuji volit napětí v rozmezí 9-12V v závislosti na délce kabelu. Nedoporučuji volit napětí vyšší, neboť tepelná ztráta na stabilizátoru už by nebyla taková, jakou bych si jako konstruktér v tomhle případě přál. Téměř jako podmínku spolehlivosti doporučuji použít stíněný kabel. Ideální je např. kabel FTP, který se používá v počítačových sítích a má definovanou impedanci. Pro vodiče A a B sběrnice RS485 přitom použít jeden samostatný pár. Ostatní se můžou pro napájení spojit, aby se zmenšily úbytky na vodičích. Odběr samotného čidla se pohybuje průměrně od 60-100mA v závislosti na zatížení sběrnice RS485.
Programové vybavení Funkce a možnosti čidla jsou z největší části definované programem v jednočipu. Během sbírání mých zkušeností s programováním se mi osvědčilo použití bootloaderu pro aktualizaci firmwaru. Pro laiky pouze uvádím, že bootloader je program, který zajistí nahrání aplikačního programu prostřednictvím použitých periférií zařízení. Aplikační program se pak stará o hlavní činnost zařízení. V tomto případě je tedy možné kdykoliv prostřednictvím sběrnice RS485 (ať už je čidlo třeba na stožáru) aktualizovat firmware podle potřeb. Například bude-li třeba doplnit další funkci nebo odstranit chybu. Navíc vzhledem k minimalizaci rozměrů desky plošných spojů je programování tohoto jednočipu jiným způsobem dosti komplikované, neboť na desce jsou pouze pájecí plošky rozhraní SPI. Prostřednictvím těchto plošek se tedy bootloader poprvé nahraje, poté se plošný spoj upraví do finální podoby a zakonzervuje chemickými prostředky. Všechno ostatní, co se týče programování, se pak už děje jen prostřednictvím RS485.
Postup programování Program dávám k dispozici veřejnosti, nesmí být však využíván ke komerčním účelům. Na mých webových stránkách v sekci „Ke stažení – Firmware“ lze stáhnout kód bootloaderu. Programátor připojíme na pájecí plochy DPS odpovídajících pinů mikrokontroléru. Důležité je správně nastavit pojistky mikrokontroléru. Hlavně zvolíme, ať mikrokontrolér využívá externí krystalový oscilátor, dále povolíme funkci watchdogu, bit BOOTRST pro spuštění bootloaderu a velikost bootloaderu 128 slov (tedy adresu vektoru bootloaderu 0x0f80). Na obrázku uvádím přiklad nastavení pojistek v AVR Studiu.
Obrázek 4 – Nastavení pojistek Po úspěšném naprogramování začne v krátkém intervalu blikat LED osazená přímo na plošném spoji. To znamená, že se zařízení nachází v režimu bootloader. Pokud ten nalezne platný aplikační program, dojde k jeho spuštění. LED v aplikačním režim má již jiný význam. Nahrání aplikačního programu je pak nutné provést buď prostřednictvím převodníku RS485 nebo pomocí řídicí jednotky v režimu BYPASS (viz.konstrukce řídicí jednotky). V obou případech se programování provádí stejně. Je k němu třeba utilita „rs-flash.exe“, kterou jsem vytvořil k tomuto účelu a je rovněž ke stažení na stejném místě jako kód bootloaderu. Po spuštění utility zvolíme komunikační port. Dále zapíšeme ID zařízení, se kterým se bude komunikovat. Výchozí ID čidla po nahrání bootloaderu je 254 (ID lze změnit podle dalších potřeb v rozsahu 2-254). Stisknutím tlačítka „Connect“ dojde k připojení k čidlu. Pokud je úspěšné, program rozezná o jaký hardware se jedná a je možné stáhnout prostřednictvím internetu aktuální verzi firmware. To se provede stiskem tlačítka „Download from Internet“. Po stažení je již možné zapsat firmware tlačítkem „Flash device“. Jakmile je zápis úspěšně ukončen, tlačítkem „Disconnect“ se ukončí komunikace s bootloaderem a proběhlo-li doposud vše v pořádku, po pár sekundách dojde k spuštění aplikačního firmware. V samotné aplikaci signalizační LED slouží k indikaci magnetického pole magnetu. Je-li magnetické pole v pořádku, LED nesvítí.
Osazovací plán DPS
Obrázek 5 – Osazovací plány
Seznam součástek C1,C2 C3,C4 C5,C6,C7 C8 D1,D2 D3 IC1 IC2 IC3 IC4 LED1 Q1 R1 R2 R3,R4 SV1
27pF SMD 1206 10uF/16V SMD B 100nF SMD C1206 10uF/25V SMD ZD 5V6 SMD 1N4148 SMD ATMega8-16AU 75176 SMD AS5043 7805 DPAK LED3MM RED 7,3728 MHz nízké pouzdro 10k SMD 1206 470R SMD 1206 10R SMD 1206 PSH02-04WG
Závěrem Zde popsaná konstrukce popisuje pouze samostatné čidlo. Pro jeho plné využití je potřeba čidlo provozovat s řídicí jednotkou nebo s převodníkem RS485/RS232 připojeným k počítači. Může sloužit i jako prostředek pro implementaci do jiných systémů s RS485. Věřím, že popisované čidlo přinese užitek řadě radioamatérů, kteří touží po přesné a stabilní indikaci svého domácího rotátoru. Použití je vhodné i v kombinaci s profesionálními rotátory za účelem propojení s počítačem.