sobota 22. listopadu 2008

Filtry v Ansoft Designeru

Při vývoji našeho krátkovlnného rádia Alva jsem se rozhodl pro lokální oscilátor realizovaný formou DDS. Na výstup těchto obvodů je třeba navrhnout dolní propust, tzv. rekonstrukční filtr, který potlačí všechny složky nad požadovaným maximálním kmitočtem - především různé směšovací produkty mezi generovaným kmitočtem a kmitočtem hodin.

Po problémech se všemi možnými softwary jsem se nakonec uchýlil k systému Ansoft Designer SV, který jsme na fakultě používali pro VF obvody. Stručný postup: Project - Insert Filter Design, Lowpass, Ideal Lumped, dále např. Elliptic a vybrat parametry. Ansoft vygeneruje obvod, zpravidla verzi s více cívkami, takže zvolíme Filter - Circuit - Dual. Následně nezbývá než prohlédnout, zda jsou hodnoty reálné (známé "inženýrské oko", které dnes potřebují už i zatím ještě nedostudovaní inženýři ;-) ) a provést převedení do schématu pomocí Filter - Export - Electrical circuit. Ve schématu hodnoty upravíme na běžně dostupné součástky, provedeme analýzu pomocí Circuit - Analyze a Circuit - Create Report - Standard - S21. Dál nezbývá než měnit hodnoty součástek a vylepšovat k dokonalosti.

Výsledek setkání teorie s praxí je vidět na obrázcích dole. Simulace v Ansoftu odpovídá téměř perfektně, což je samozřejmě spíš náhoda. Použité jsou nejběžnější tlumivky 220nH z GME (á 6Kč) a SMD kondenzátory, celý obvod je na malé bastldestičce. Dolní a horní propusti jsou - narozdíl od pásmových propustí - celkem necitlivé na nepřesnosti, takže ke slušným výsledkům opravdu postačují tlumivky s nic-moc jakostí a vysokou tolerancí. Sweep do 1GHz mám také, ale protože už zdaleka nevypadá tak hezky, radši ho ukazovat nebudu :-) - to je samozřejmě způsobené především dlouhými přívody k tlumivkám (musím je ještě recyklovat...) a chybějícím stínicím krytem. Orientačně měl filtr -50dB @ 300MHz a -35dB @ 600MHz.

neděle 19. října 2008

Radioamatérské UTC hodiny řízené GPS

Na jaře proběhla u nás na ústavu soutěž Freescale Technology Application (zkráceně FTA), zaměřená na využití součástek firmy Freescale. Protože se šéfovi ve skříni válel multiplexní displej pro hodiny s nedodělaným řízením, který zbyl po jakési ne právě dokonalé bakalářce, a času bylo málo, padla volba na realizaci řídicího systému na bázi procesoru MC9S08AW16CFG (Freescale si opravdu libuje v nezapamatovatelných značeních součástek).

Hodiny byly navrženy tak, aby zobrazovaly UTC čas, s výhodou bylo využito staršího GPS modulu od Leadteku, který i při slabém signálu nepostačujícím pro navigaci vracel spolehlivě údaj o přesném čase. Navíc přímo ve formátu UTC. Zkrátka ideální konstrukce do KV vysílacího koutku na radioklubu OK2KOJ.

Některé z prací byly / budou publikovány na serveru hw.cz, dostal se mezi ně i můj článeček. Kromě toho touto cestou => dávám článek na svůj web <= (pro blog už mi přijde moc rozsáhlý). Kromě procesorů už jsem měl možnost od Freescale okusit také tlaková čidla řady MPXV5004, ale o tom někdy příště.

Jinak letos se kromě soutěže FTA chystá také FRC aneb Freescale Race Challenge. Každý soutěžící totiž dostane své malé autíčko, na školách budou autodráhy a úkolem je vytvořit software, který se pomocí akcelerometrů a dalších snímačů naučí neznámou autodráhu a pak ji projede maximální rychlostí bez toho, aby autíčko vypadlo z koleje. No není to krásná myšlenka? :-)

sobota 18. října 2008

FM přijímač pro pásmo VHF

Po dlouhé době jsem se vrátil k mrtvolce přijímače, původně pro pásmo 144 až 146 MHz podle OK2UGS. Jedná se o superhet s dvojím směšováním, osazený dnes již těžko sehnatelným obvodem MC3362. Naladění cílového kmitočtu je řešeno PLL syntézou s taktéž postarším obvodem SAA1057. Když říkám, že jsem se k této konstrukci vrátil po dlouhé době, tak to myslím vážně - pustil jsem se do ni někdy kolem roku 2002, plus mínus rok. Návod na konstrukci vyšel v příloze Electus v roce 1999, online na internetu lze nalézt stejnou konstrukci rozšířenou o popis možností příjmu meteosatelitů.

Původní účel přijímače už dávno nahradila profi ručka Kenwood TH-F7E, ale když jsem nedávno ve sklepě torzo tohoto rádia našel, rozhodl jsem se ho oživit. Aktuálním cílem se stalo využití jako jednoúčelový přijímač NFM jedné zajímavé místní služby v okolí kmitočtu 166 MHz. Před lety jsem pohořel na nedostatku znalostí a zkušeností z oblasti VF techniky a hlavně na naprosto nedostačujícím měřicím vybavení pro VF. Nicméně znalosti se zlepšily, na zkušenostech se pracuje a přístrojů je na fakultě dost, takže tentokrát jsem uspěl.

Prvním problémem bylo rozkmitat první lokální oscilátor na kmitočtu přesahujícím 150 MHz, nechtělo se mu. Nakonec jsem přidal další odpor k zvýšení proudu do LC tanku na pinu 21, cívka L5 je realizována jako vzduchová se čtyřmi závity, paralelně k C33 jsem přidal dalších 10p. Změnou napětí na varikapu šel oscilátor přelaďovat v širokém rozmezí až do cca 170 MHz. Druhým úkolem bylo rozjet PLL syntézu. Starý AT89C2051 se mi samozřejmě nechtělo programovat, takže jsem sáhl po ATtiny2313 a obslužný program pro nasypání obsahu registrů do SAA1057 jsem napsal v céčku. Kompletní zdroják je ke stažení zde. S tím souvisela úprava resetu, ATtiny má power-on reset integrovaný, takže jsem pouze osadil pull-up.

Dále bylo nutné naladit vstupní pásmovou propust na požadované pásmo. Cívky jsem žádné vhodné nevyhrabal, takže jsem použil opět vzduchové konstrukce, které jsem pomocí spektrálního analyzátoru s tracking generátorem dotáhnul na potřebné kmitočtové rozsahy. Tím se rádio dostalo do použitelné fáze, po postupném oživení se ozvalo první zašumění. Pravda, jakost vzduchových cívek je asi pěkně mizerná a sladění se mi nepodařilo zrovna ideální, takže jsem dosáhl citlivosti pro 12dB SINAD pouze cca 3 uV místo v návodu prezentovaných 0,6 uV. Navíc od určitých vyšších hodnot dochází k zahlcení vstupu a přijímač přestává fungovat. Naštěstí to nevadí pro požadovanou cílovou aplikaci, kdy je místní převaděč silný "tak akorát".

Další dvě drobnosti se projevily až sekundárně. Prvním problémem byla přítomnost tónu cca 1 kHz v demodulovaném signálu. Po delším experimentování jsem došel k závěru, že signál proniká přes vývod ladění varikapu (23). Jeho zablokování na několika místech kondenzátory 1 až 10 nF pomohlo, po přidání dalšího se pískot vrátil, takže jsem asi příčinu úplně nenašel, ale co, po odebrání tohoto jednoho nadbytečného kondíku je po pískotu :-) . Druhou drobností bylo nesnesitelné lupání v reproduktoru při otevírání a zavírání squelche. Původní konstrukce je řešená - stručně řečeno blbě, poměrně netypickým shutdownem zesilovače LM386. Takže dochází ke zmíněnému lupání a navíc k permanentnímu mírnému šumu z reproduktoru a také ke kmitání (resp. zesilování rušení) při plné hlasitosti.

Problémy jsem vyřešil tak, že jsem místo T5 osadil MOSFET (šuplíkové zásoby daly BS170), který při napětí na gate (tj. při uzavřeném squelchi) uzemňuje signálovou audio cestu - jeho source je připojený na zem, drain na běžec potenciometru hlasitosti. Tato metoda funguje výborně, mezi gate a source jsem navíc dal 100 nF kondík, aby se lupance ještě víc omezily. No a vůbec jsem na plošňák přidal ještě nějakou bižuterii, ale ta už by neměla být tak podstatná.

Takže tohle rádio hraje. Omlouvám se za nic moc fotky a hluboce se stydím za ten zoxidovaný plošňák, před lety jsem je ještě nelakoval a tohle už se fakt zachránít nedalo. Dneska už mé výsledky vypadají o pár řádů líp :-)

Jinak já poslední dobou nestíhám nic, několik projektů pracovně-školních, no a samozřejmě práce na krátkovlnném radioamatérském all-band transceiveru Alva, který bude společným dílem mě a Vaška OK2VAS. Když vše půjde dobře, tak během následujícího týdne až dvou budeme poprvé testovat příjem.

neděle 13. července 2008

Napájení USB portu u Ferdy

Před časem jsem si pořídil přehrávač Ferguson D-880HX a hned se vrhl na "opravu" jeho USB portu, aby bezproblémově fungoval externí USB harddisk. Propojka místo diody pomohla, nicméně disk se po vypnutí přehrávače nezastavil, port byl napájený neustále.

Původně jsem chtěl použít elegantní řešení s P-MOSFETem, nicméně se ukázalo, že i na moderních typech s malým Rdson vzniká příliš velký úbytek a disk se odmítal rozběhnout. Proto jsem sáhnul k řešení zastaralému, ale zato 100% funkčnímu - do přehrávače jsem přilepil relátko. Detaily zapojení jsou zřejmé z fotografií. Relé je spínáno tranzistorem BC546 (univerzální NPN), jeho emitor jde na zem, báze před odpor 10k na signál ON, kolektor na cívku relé a ta pak na systémových +5V. To jsou na anodě vyjmuté diody, kontakty relé spínají anodu a katodu této bývalé diody. Relé je ke krytu přilepené tavicí pistolkou. Signál ON se nalézá např. na dolním (směrem k zadnímu panelu přehrávače) kontaktu neosazeného odporu, viz obrázek. Jedná se o stejný signál, ze kterého se napájí červená LED na předním panelu.


pátek 20. června 2008

MapGen v2.2 - aktualizace

Díky připomínkám několika lidí jsem si konečně našel čas a opravil poměrně zásadní chybu v MapGenu - při stahování okrajových částí map se nevyrovnal s chybějícími daty (PNG obrázek "Pro toto přiblížení nemáme podklad k dispozici...") a při spojování souborů s nulovou délkou spadnul. Řešení je nakonec relativně snadné, všechny prázdné soubory nahradit bílým pozadím. Realizace už tak snadno nevypadá a zabrala hodně googlení, abych se vyhnul dalším programům a mohl použít jenom příkazový interpreter z Windows XP. Jen tak pro zajímavost, nahrazení nulových souborů je provedeno pomocí příkazu:

for /f %%A in ("img_baseimage.pnm") do if %%~zA equ 0 (pbmmake.exe -white 256 256 > img_baseimage.pnm)

No není to krása? ;-) Kromě odstranění této chyby jsem integroval do nové verze MapGenu kompletní funkci programu MapCoord. V INI souboru přibyly položky LinkBottomLeft a LinkTopRight, které mohou obsahovat link na levý dolní a pravý horní roh, zkopírovaný přes funkci Odkaz na tuto mapu ze serveru mapy.cz. Linky se MapGen pokusí rozparsovat a použít, bude-li libovolná ze specifikovaných souřadnic nulová. Kromě toho může být nulová hodnota také úrovně detailu (MapLevel), pak se použije detail specifikovaný v linku. Jinak má přednost prametr MapLevel z INI souboru. Program MapGen v2.2 je opět volně ke stažení zde.

úterý 17. června 2008

Vinculum: ovládání USB zařízení

V rámci jednoho z fakultních projektů jsem byl postaven před řešení problému, jak ovládat signálový generátor Rohde&Schwarz SM300. Požadavkem bylo řízení z autonomního systému (tedy bez PC jako prostředníka). Jako USB Host byl vybrán poměrně rozšířený a známý obvod Vinculum VNC1L firmy FTDI. Zapojení tohoto obvodu a zprovoznění není nijak extra záludné, pěkná série článků vyšla i v češtině na Pandatronu. Problémy se začnou objevovat ve chvíli, kdy chceme připojit zařízení, které není standardně podporováno, tj. nespadá mezi různé flashdisky, HID, tiskárny apod. Takovým zařízením je samozřejmě i zmíněný vektorový generátor.

Dalším problémem pak může být nezveřejněný/utajený komunikační protokol mezi USB periferií a počítačem. V tomto příspěvku bych rád nastínil vhodný software a postupy pro odhalení komunikačního protokolu neznámého zařízení a jeho implementaci do mikroprocesoru řídicího Vinculum. Nepředpokládám, že by někdo řešil komunikace konkrétně se SM300, stejně tak se rozhodně nesnažím o podrobný návod - spíš se jedná o náznaky, jaké postupy při tvorbě ovladačů realizujících komunikaci přes Vinculum použít.

Co bude potřeba: vhodný počítač, ke kterému lze požadované USB zařízení připojit, s nainstalovanými ovladači a aplikací k řízení tohoto zařízení, dále s programem UsbSnoop; bastldesku s Vinculem, připojeným přes RS232 k počítači; samotné USB zařízení a nějakou tu kabeláž. Z dokumentace pak rozhodně datasheet k VNC1L a k firmwaru VDAP, dále specifikaci USB 2.0 (ano, je to bible, ale občas se to toho člověk musí nakouknout) a samozřejmě Google. Mně zpočátku třeba velice pomohl dokument Reverse engineering Windows USB device drivers for the purpose of creating compatible device drivers for Linux.

Vinculum definuje ve firmwaru VDAP pro práci s obecným USB zařízením sadu příkazů, z nichž o komunikaci se starají Send/Read Data (DSD, DRD) a Send Setup Data (SSU). V první fázi je tedy nutné zjistit, jakým způsobem zařízení komunikuje. To lze vyčíst z logu programu UsbSnoop, ten je však extrémně rozsáhlý a nepřehledný. Pro první nástřel je lepší využít omezené demo některé z komerčních aplikací, např. SysNucleus USBTrace. Po vyfiltrování mnoha nepodstatných paketů se dostaneme k paketům, které odpovídají příkazům zadávaným z počítače. Pro zmíněný generátor SM300 jsou to pakety typu URB_FUNCTION_VENDOR_DEVICE, což představuje Setup pakety (SSU) s Request identifikátorem, který není definovaný standardem, viz USB 2.0 specifikace kap. 9.3 a Vinculum firmware manuál kap. 6.6.6. Ostatní pakety nejsou pro přenos podstatné, což se ovšem liší přístroj od přístroje - např. v ukázce komunikace s klávesnicí na Pandatronu se využívá klasického datového přenosu (DRD). Setup pakety představují vlastně "příkaz" (identifikátor Value), který může obsahovat další data, resp. o ně žádat.

Komunikaci pro jednotlivé příkazy lze zachytit programem UsbSnoop. Pro SM300 pak dojdeme např. při nastavení frekvence 300MHz k záznamu:

[1920707 ms]  >>>  URB 1618 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
TransferFlags = 00000002 (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000008
TransferBuffer = 00000000
TransferBufferMDL = 85c951f0
00000000: 00 00 00 00 a3 e1 b1 41
UrbLink = 00000000
RequestTypeReservedBits = 00000000
Request = 00000035
Value = 00002010
Index = 00000000

[1920711 ms] <<< URB 1618 coming back <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
PipeHandle = 85e64748
TransferFlags = 0000000a (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000008
TransferBuffer = 00000000
TransferBufferMDL = 85c951f0
UrbLink = 00000000
SetupPacket =
00000000: 40 35 10 20 00 00 08 00

Z paketu je patrné, že nastavení frekvence je identifikováno pomocí vendor request 0x0035, value 0x2010, následované daty 00 00 00 00 a3 e1 b1 41, což je double reprezentace hodnoty 300 ve tvaru LSB first. Položka SetupPacket pak obsahuje celý zaslaný paket bez dat, odpovídající požadavek k nastavení frekvence, posílaný po USB, tedy bude: 40 35 10 20 00 00 08 00 00 00 00 00 a3 e1 b1 41. Tohle je jen jeden příklad z mnoha, pro SM300 dále musí následovat příkaz pro provedení nastavení (value 0x37ff).

Poslední částí realizace je pak komunikace pomocí samotného Vincula. Po připojení VNC1L k počítači, napájení a USB zařízení ve vhodném terminálu zkontrolujeme uvítací hlášku Vincula (Ver něco On-Line) a pomocí příkazů IPH a SCS nastavíme binární zkrácený režim příkazů (viz kap. 6.6 manuálu k firmware Vincula). Dále přes 2c 0d (QP2 / Query Port 2) ověříme připojení "neznámého zařízení" na portu 2 a provedeme listing připojených zařízení přes 85 20 nn 0d (QD / Query Device), kde nn je index od 0 do 15. Vinculum vrací stavovou strukturu, obsahující VID a PID daného zařízení, při nalezení správného zařízení jej vybereme ke komunikaci pomocí 86 20 nn 0d (SC / Set Device). Vyhledání dle VID/PID je důležité zejména u komplexních zařízení, jako je zmíněný generátor SM300, které na USB sběrnici obsahují hub a více zařízení rozlišených podle PID.

Nyní již je možné komunikovat se samotným zařízením pomocí příkazů SSU, pro příklad zmíněný výše (nastavení frekvence) bude tedy příkaz vypadat: 9a 20 40 35 10 20 00 00 08 00 0d 00 00 00 00 a3 e1 b1 41. Červeně je značený příkaz Vinculu (SSU + CR), modře setup paket, zeleně zasílaná data. Při úspěšném provedení odpoví Vinculum promptem ('>' + CR), podobným tvarem lze také používat setup pakety na čtení z USB zařízení, potom před promptem vrátí Vinculum data přečtená z USB zařízení.

Jak bylo už řečeno na začátku, nejedná se o žádný návod ani konkrétní postup, vše je to o "hraní si" se zkoumaným zařízením, o jeho hackování v původním významu tohoto slova. Takže pokud budete tvořit vlastní ovladače do jednočipu, který přes Vinculum bude spolupracovat s USB zařízením, přeji hodně úspěchů!

neděle 1. června 2008

Externí HDD a Ferguson D-880HX

Konečně máme po zkouškách, tak jsem se rozhodl, že si udělám radost a svůj postarší DVD/DivX přehrávač Yamada DVX-6700 vyměním za novější kousek železa. Volba padla na Ferguson D-880HX, zejména pro jeho podporu USB2.0, vynikající možnosti nastavení titulků a příznivou cenu. Recenzi tohoto přístroje si můžete přečíst třeba na serveru DIGIlidi, je to opravdu pěkná mašinka. Přehrávání z USB flashdisku fungovalo krásně, nicméně při připojení 2,5" 80GB HDD Hitachi v USB šuplíku, samozřejmě bez externího napájení, se ozvalo jen charakteristické cvakání. Inu nelenil jsem, rozloučil se se zárukou a pustil se do kuchání Ferdových vnitřností.

Cvakání disku je způsobeno poklesem napění na USB portu při vyšším proudovém odběru, vznikajícím při roztáčení disku. Pohledem na základní desku je patrné, že mezi +5V systému a USB jsou zařazeny dva prvky - dioda v propustném směru (D6) a vratná pojistka (F1). Na diodě vzniká právě onen vražedný úbytek napětí - neměřil jsem ji, ale předpokádám, že to bude obyčejná křemíková dioda, tj. s úbytkem 0,6-0,7V, což už je pro HDD moc. Tato dioda ovšem není nezbytná. Má zřejmě zabránit napájení elektroniky přehrávače z vnějšího zařízení, ovšem z principu se na tomto USB portu nikdy externí napájení neocitne, připojovaná zařízení (flash, čtečka, HDD) jsou pasivní. Proto není nic jednoduššího, než diodu D6 přemostit drátovou propojkou. A ejhle, disk bez problémů a odmlouvání najede.

Další drobností, která se mi nelíbí, je fakt, že USB port je napájen i při vypnutí přehrávače, tj. pokud je ve stand-by režimu. Tohle vyřeším hned, jak se mi pod ruku dostane nějaky P-MOSFET, kterým bude možné napájení spínat. Domácí zásoby zklamaly.

středa 16. dubna 2008

SDR rádio na prkně

Z hromady plošňáků na mém stole v různém stádiu osázenosti jsem vybral ty, které vypadaly nejvíce životaschopné, a přišrouboval na sololitovou desku. A ejhle, vznikl přijímač, skládající se z DDS generátoru umístěného na modulu Synterface, SDR rádia DR2-2 (oboje už jsem tu popisoval) a preselektoru pro pásma 160m, 80m, 40m a 20m.

Preselektor (vlevo) je zbastlený z kupovaných tlumivek (kdo se s tím má motat) a krásného vzduchového ladícího kondenzátoru z Hadexu (J904, v rozumném množství za 11 Kč bez DPH). Měřil jsem ho na spektráku a vlastnosti nejsou vůbec špatné, přestože vypadá krajně podezřele.

pondělí 7. dubna 2008

Konečně OK2ALP

Tak jsem se dočkal a o víkendu na poště vyzvedl obálku s modrým pruhem, která obsahovala toužebně očekávaný průkaz HAREC a samotnou radioamatérskou licenci se značkou OK2ALP. Teď už zbývá jen dostavět naše rádio, které jako diplomku tvoříme s kolegou (nyní už) OK2VAS, a vzhůru na KV! Nebo, pokud se budu držet při zemi, se konečně doučit pořádně tu Morseovku a dodělat vysílání do mé Jumy RX1. A ještě do té doby budeme samozřejmě dál páchat ostudu pod značkou našeho radioklubu OK2KOJ.

pátek 28. března 2008

MapGen v2 - konečně univerzál

Po delší době jsem měl kreativní náladu a rozhodl jsem se konečně zkusit vytvořit univerzální stahovadlo map. A softwárek MapGen v2 je na světě a jako vždy volně ke stažení zde. Jedná se obět o konzolovou aplikaci, která převážně generuje tuny příkazových skriptů. Pro veškeré operace s grafikou se využívá balík NetPbm, který je nutné nainstalovat. Pro závěrečný převod je využitý klasický prohlížeč IrfanView, který si lépe poradí s kompresí u některých formátů.

Konfigurace programu MapGen_v2.exe tentokrát neprobíhá z příkazové řádky, ale zápisem jednotlivých údajů do INI souboru mapgen.ini. Nejdůležitější je sekce [Main]. Uroveň mapy (MapLevel) je jasná, souřadnice (StartX, StopX, StartY, StopY) lze určit programem MapCoord (StartX/Y je levý dolní roh, StopX/Y je pravý horní). Upozorňuji, že souřadnice musí být správně zaokrouhleny, proto je nutné v MapCoordu nastavit stejnou úroveň detailu mapy, jaká bude použita v MapGenu.

Dále se vybírají aktivní mapy (ActiveMaps). Jedná se o indexy v souboru dále definovaných vrstev, oddělené čárkou. První mapa je vždy podkladová, případné následující (nepovinné) jsou overlay vrstvy, tj. překryvné. Overlay vrstvy musí být "průhledné", je tedy možné použít jen turistické značky, cyklotrasy a popisy, ne skládat např. fotomapy s historickými, ale to je snad jasné. Následuje název výsledné mapy (bez přípon), případné parametry konverze pro IrfanView a výstupní grafický formát map. Pro turistické a základní mapy doporučuji formát png, položku IrfanViewParams je vhodné ponechat, aby se snížila barevná hloubka. Pro ortofotomapy a historické je vhodnější formát jpeg, položka IrfanViewParams se zakomentuje středníkem na začátku řádku, příp. zcela smaže.

V sekci [Config] se nastavuje server, ze kterého se mapy stahují, a dále cesty do adresáře NetPbm (musí končit lomítkem) a IrfanView (přímo na aplikaci). Následují sekce popisující jednotlivé vrstvy map, název a formát záleží na formátu dat, uložených na serverech Seznamu.

Program MapGen vygeneruje čtyři příkazové skripty a MAP soubor pro OziExplorer. Skripty se spouštějí v pořadí podle jejich čísel. Vše je možné ještě více automatizovat spuštěním skriptu mapgen_start.cmd, který zavolá MapGen a následně jednotlivé skripty.

Tato nová verze by měla v plné míře nahradit všechen můj stávající software s výjimkou MapCoordu. Nadále platí, že posledním krokem by mělo být otevření vzniklého dílka v OziExploreru a znovuuložení MAP souboru - tím se dopočítají chybějící parametry (Moving Map) nezbytné mj. pro správné zobrazování oblasti mapy v náhledovém okně. Z mnoha souborů, které jsou po dokončení v adresáři programu, je důležitá výsledná mapa (přípona png nebo jpeg) a soubor kalibrace OziExploreru (přípona map).



Edit 1.4.2008: Byl jsem upozorněn na chybnou kalibraci v OziExploreru, správně fungovala jen úroveň 13. Chyba je opravená, v balíku je nyní MapGen v2.1. Dále jsem do INI souboru přidal definici reliéfu (stínování), která mi minule nějak unikla. A nakonec ještě upozornění, při tvorbě fotomap do formátu JPEG se v INI souboru v položce ResultFormat musí zadat jpg, nikoliv jpeg. Přinejmenším má verze Oziho to nepřekousla.

neděle 23. března 2008

MapCoord - výpočet souřadnic

Určování hexadecimálních souřadnic, které jsou potřeba jako vstup do prográmků pro stahování ortofotomap a turistických map, je dost špatně pochopitelné. Proto jsem vytvořil jednoduchý prográmek, který je dokáže vypočítat. Na mapy.cz se rozklikne položka Další funkce a vybere se Odkaz na tuto mapu. Link se zkopíruje do políčka v programu MapCoord (spustitelný soubor, zdrojový kód) a zvolí se požadovaná úroveň mapy. V jednom sloupečku se ukazuje hexadecimální reprezentace souřadnic, v druhém je číslo zaokrouhlené podle vybrané úrovně mapy.

V textovém poli jsou vypsané souřadnice, které slouží jako vstup pro programy MapGen/MapCat. Pro stažení konkrétní mapy se tedy na serveru mapy.cz vybere jeden roh, z programu MapCoord se získají souřadnice StartX a StartY. Potom se vybere druhý roh a StopX a StopY je na světě.

úterý 18. března 2008

Pokusy s AD9951 a AD831

Práce na projektu KV transceiveru pomalinku pokračují, pokud vše půjde dobře, vznikne z něj diplomka. Z toho vyplývá, že za rok a kousek by mělo být hotovo, pokud se chci dočkat titulu :-) . V uplynulých týdnech jsem navrhl, oživil a provedl některá měření na dvou blocích budoucí radiostanice, kmitočtové syntéze a směšovači.

Lokální oscilátor bude zřejmě řešen pomocí přímé číslicové syntézy s obvodem Analog Devices AD9951. Jedná se o 14-bitovou DDS s maximálním taktem 400MHz, oproti svým předchůdcům (mnou v něčem použité např. AD9851, AD9833 a AD9835) se může chlubit zejména větší čistotou spektra výstupního signálu. Na obrázku je vidět na DPS s rekonstrukční dolní propustí na 40MHz, taktovaná krystalem 24MHz, jehož kmitočet je na vnitřní PLL násoben na 120MHz. Výsledné spektrum je velmi čisté, patrná je zejména druhá harmonická, která je potlačena průměrně jen o 45dB. Úroveň za LPF bez dalšího zesilování se pohybuje mezi -5 až -3dBm (na 50 ohmech), od 40MHz prudce klesá. DDS je řízena jednoduchým přípravkem s nějakým AVR a pár tlačítky. Nejdůležitější měření, které je zatím přede mnou, je zjištění fázového šumu výsledného signálu a jeho závislost na zdroji hodin DDSky - pravděpodobně bude nutné místo krystalu a vnitřní PLL násobičky použít externí krystalový oscilátor.

Směšovačů je v dnešní době používaná celá řada, vzhledem k požadavku na vysokou odolnost přicházejí v úvahu zejména vyvážené diodové směšovače (většinou od Mini-Circuits) a spínané směšovače. V současné době experimentujeme se směšovačem AD831, který je oblíbený zejména amatérem S54S. Zatím mohu říct asi tak to, že funguje, důkladné testy a měření ho teprve čekají.

Jinak jsme dnes s kolegy byli v Praze na ČTÚ a konečně máme udělané oprávnění HAREC. Takže značky a koncese už jsou skoro v poště :-)


Historické mapy a ortofotomapy - aktualizace

Po dlouhé době jsem byl šetrným způsobem donucen k aktualizaci původního softwaru MapGen/MapCat. Požadavkem byla podpora historických map ze serveru mapy.cz. No a když už jsem se do toho pustil, rozhodl jsem se to udělat trošinku pořádněji, takže vznikl software, který je univerzálně použitelný pro všechny zdroje, které jsou ve formátu JPEG, tj. momentálně aktuální a staré ortofotomapy a historické mapy z let 1836-52. Program je dostupný ke stažení v balíku z mého webu.

Výběr mezi mapami se provádí volbou v INI souboru gencat.ini. Dále je možné zvolit úroveň map ke stažení. Postup využití programů je stále stejný jako u původní verze - nejdříve se spustí mapgen.exe, zadají se souřadnice. Dále dávka wget_run.cmd, která volá wget.exe pro stažení mapových dat se serverů Seznamu. Následuje spuštění mapcat.exe se zadanými souřadnicemi a požadovaným jménem mapy. Ten vygeneruje bitmapu, kterou je nutné zkonvertovat do formátu JPEG (např. pomocí programu IrfanView). Posledním krokem je otevření vzniklého dílka v OziExploreru a znovuuložení MAP souboru - tím se dopočítají chybějící parametry (Moving Map) nezbytné mj. pro správné zobrazování oblasti mapy v náhledovém okně.

sobota 26. ledna 2008

Bývalý NMT Nokia 720 (TMF-4)

Zkouškové sice úspěšně skončilo, ale jsem zcela zavalený prací na komerčních projektech, takže na bastlení nezbývá mnoho času. Během letmého úklidu jsem v nižších vrstvách svého nepořádku našel rozbastlenou verzi bývalého NMT "mobilního" telefonu Nokia 720, typové označení TMF-4. Koncem minulého léta, když jsem ještě měl trochu času, jsem jej začal přebudovávat na rádiový experimentík, který by měl pracovat v radioamatérském pásmu 70cm + PMR + sdílenky na 448MHz.

Telefon TMF-4 jsem objevil levně na Aukru. Odstranit duplexer bylo dílem okamžiku, nalezení dokumentace se také po delším hledání zdařilo. Protože úprava procesorové desky je nereálná, rozhodl jsem se k vyvedení všech potřebných signálů na kousek kuprextitu. Procesorovou část čtyřvrstvé základní desky jsem odříznul a pomocí brusky se dostal k vnitřní vrstvě (druhá shora), která obsahovala vyvedené signály od jednotlivých částí telefonu (syntézy RX a TX, přijímací část, PA, měření SWR). Výsledek jsem zapatlal čínskou pistolkou.

Syntéza je řešena s využitím hybridních oscilátorů od muRaty, ke kterým se mi nepodařilo sehnat dokumentaci. Experimentováním jsem došel k nejnižší možné použitelné frekvenci cca 431,5MHz. Pro PMR a sdílenky s rezervou dostatečné, pro převáděčový provoz na 70cm ne. Další hraní si s tímto torzem telefonu se odkládá na období, kdy budu mít víc času. Už aby to bylo. Kromě zvládnutí programování PLL (to by neměl být problém) je nutné především doplnit vstupní filtr a přepínač RX/TX - po zkušenostech z vývoje radiomodemu na fakultě se rozhodně nepohrnu do PIN přepínače, láká mě spíš zaexperimentovat s levnými mikrovlnnými přepínači Hittite.

Na Aukru se mi teď podařilo zakoupit podobný kousek, BNH-1C. Kromě procesorové části vypadá zapojení ostatních bloků úplně stejné jako u TMF-4, takže až zničím první, mám si s čím hrát dál. Navíc je BNH-1C krásně zachovalá, vypadá jako nová. To TMF-4 byla evidentně někde na deštíčku, je pěkně zkorodovaná - ale funkční, pokud šlo posoudit.