Představeny byly oficiální Raspberry Pi microSD karty třídy A2 a silikonový kryt na Raspberry Pi 5.
OpenRazer byl vydán ve verzi 3.9.0. Jedná se o svobodný software, ovladač a démon, umožňující nastavovat klávesnice, notebooky, myši, podložky pod myš, keypady, sluchátka a další zařízení od společnosti Razer na GNU/Linuxu.
Byla vydána verze 3.6 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.
Byla vydána nová verze 8.8 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled oprav, vylepšení a novinek v oficiálním oznámení.
Byla vydána nová major verze 11.0.0 nástroje mitmproxy určeného pro vytváření interaktivních MITM proxy pro HTTP a HTTPS komunikaci. Přehled novinek v příspěvku na blogu. Vypíchnuta je plná podpora HTTP/3 a vylepšená podpora DNS.
Richard Hughes na svém blogu představil nejnovější major verzi 2.0.0 nástroje fwupd umožňujícího aktualizovat firmware zařízení na počítačích s Linuxem. Podrobný přehled novinek v poznámkách k vydání. Přehled podporovaných zařízení, nejnovějších firmwarů a zapojených výrobců na stránkách LVFS (Linux Vendor Firmware Service).
Počítačová hra Kvark (Steam) od studia Perun Creative dospěla do verze 1.0 (𝕏). Běží také na Linuxu.
Byla vydána (𝕏) zářijová aktualizace aneb nová verze 1.94 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.94 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
O víkendu 5. a 6. října se koná ne-konference jOpenSpace. Pokud si chcete kouzlo živých přednášek vychutnat společně s námi, sledujte live streamy: sobota a neděle. Začínáme lehce po 9 hodině ranní. Zpracované záznamy jsou obvykle k dispozici do 14 dní na našem YouTube kanále.
Pod pojmem jednočipový mikropočítač se obvykle rozumí součástka (integrovaný obvod, brouk), která obsahuje téměř všechny obvody nutné pro samostatný běh interního programu. Jednočipový mikropočítač tedy obsahuje procesor, paměť a vstupně-výstupní obvody. Jednočipových mikropočítačů je na trhu celá škála. Liší se zejména taktovací frekvencí, architekturou, velikostí paměti RAM, velikostí paměti FLASH (pro uložení kódu programu), velikostí paměti EEPROM (nemusí být vůbec žádná), vybavením různými periferiemi (čítače, časovače, AD převodníky, komparátory, sériový port, atd.), spotřebou proudu a dalšími parametry.
Smysl jednočipových mikropočítačů spočívá v ovládání jednoduchých věcí, uživatelský interface představuje nejčastěji zkratování nožiček či rozsvícení LEDky, takže jejich parametry mohou být nesrovnatelně horší než u stolních počítačů. Ale neopovrhujte jimi - jejich výhodami jsou nízká cena, jednoduchost a nízká spotřeba.
Jednočipové mikropočítače vyrábí mnoho firem, z nichž nejznámnější (nikoliv jediné) jsou čipy Atmel a PIC. Vyznavači jednotlivých firem mezi sebou neustále vedou nekonečné hádky, které jednočipy jsou lepší, které se lépe programují, které lépe chutnají či hoří a vůbec. Doufám, že nikoho neurazím, když se v tomto článku budu věnovat čipům firmy Atmel.
I od firmy Atmel pochází mnoho typů obvodů, jejichž zevrubný popis by byl velmi zdlouhavý. Soustředím se pouze na to, s čím mám praktické zkušenosti, a to jsou obvody
Obvod AT89C2051 lze zakoupit za necelých 50 Kč a dostanete za to procesor s CISC architekturou pracující až do frekvence 24 MHZ, 2KB FLASH (tam se zapisuje kód programu), 128 bytů RAM, sériový port, 15 vstupně-výstupních pinů a dva šestnáctibitové čítače/časovače. Zpracování jedné instrukce trvá nejméně šest hodinových tiků.
Obvod AT90S2313 stojí trochu víc, asi 70 Kč a procesor pracuje do 10 MHz. Patří do řady, kterou výrobce označuje jako AVR. Je to architektura RISC a zpracování instrukce trvá většinou pouze jeden tik, takže procesor je ve výsledku výrazně rychlejší, než dříve zmíněný AT89C2051. Čip dále obsahuje 2KB FLASH, 128 bytů EEPROM, 128 bytů RAM, a jeden osmibitový a jeden šestnáctibitový čítač/časovač. V počtu IO pinů, RS 232 rozhraní (sériový port) a komparátoru se čipy neliší. Za tu dvacku navíc však získáte obrovskou, opakuji OBROVSKOU výhodu - pro přeprogramování čipu nepotřebujete žádný zvláštní obvod (programátor), a navíc jej můžete přeprogramovat přímo za běhu. Nemusíte jej kvůli změně programu ani vytahovat z patice.
Pro oba čipy platí, že jestliže pouze připojíte napájecí zdroj, nebude se navenek vůbec nic dít, protože nejsou připojeny žádné výstupní periferie. Ba dokonce se nebude nic dít ani uvnitř, a to z toho důvodu, že čip neobsahuje žádný zdroj hodin (clock), taktů čili tiků, takže neprovádí instrukce. Nicméně pro hodiny má vyveden vstup - XTAL1 (pin č.5). Uzemníte-li drátkem tento vstup a pak ho naopak připojíte na +5V a pak ho zase uzemníte a tak pořád dokola, začnou se líně vykonavát instrukce. To je sice postup možný, ale velmi nepraktický, proto je vhodnější tuto práci svěřit krystalu. Krystal se připojuje na vývody XTAL1 a XTAL2 a každý vývod se ještě přes kondenzátor o kapacitě cca 30pF spojí se zemí. Schéma tedy vypadá následovně:
Krystal můžete připojit jakýkoli až do maximální frekvence, kterou zvládá čip. Pro čip AT90S2313 vřele doporučuji použít krystal o frekvenci 9.216 MHz, protože tuto frekvenci lze celočíselně vydělit tak, že dostanete pro sériový port některou ze standardních přenosových rychlostí. Ale o sériovém portu až příště. Ještě jedna poznámka ke krystalu - připlaťte si desetikačku a kupte si přesnější variantu. Vyplatí se to, až třeba budete programovat hodiny reálného času.
Takže teď už program v jednočipu běží. Jaký program? Ten, co tam zrovna je. Cílem tohoto článku je ukázat způsob, jak právě váš program nasypat do jednočipu.
Zdroják pro program se píše na klasickém počítači, tam se i kompiluje a binárka se poté přelije do jednočipu.
Výsledkem kompilace je buď přimo binárka nebo soubor ve formátu Intel HEX. Intel HEX je v podstatě taky zápis binárky, ale pomocí ASCII hexadecimálně zapsaných hodnot a ještě čehosi, ale zkrátka je to textový soubor. Smysl jeho existence jsem nepochopil, ale tento formát už v oblasti jednočipů patří ke koloritu. Naštěstí je možné jej zkonvertovat do binárky pomocí programu makebin případně hex2bin.
Výslednou binárku je potřeba nějakým způsobem dostat do jednočipu. K programování obvodu AT89C2051 je potřeba za několik set až tisíc korun zakoupit tzv. programátor. Při každé změně kódu je nutné vytáhnout čip, zasunout do patice programátoru, nalít nový program, a opět čip přemístit zpátky. Komunikační protokol pro ovládání daného typu programátoru navíc bývá proprietární záležitost.
Anebo si kupte AT90S2313, který je o chlup dražší, ale je s ním podstatně veselejší práce. Ještě poslední zmínku o řadě AT89 - abych jen nezatracoval - existuje ještě AT89C4051, který má dvakrát tolik paměti pro program (4KB) a stojí asi 60 Kč. V dalším popisu se budu věnovat pouze AT90S2313.
Teď přijde na řadu "programátor". Využijeme zde paralelního portu, jehož piny připojte na piny jednočipu podle této tabulky:
piny jednočipu | piny paralelního portu |
---|---|
SCK (19) | Strobe (1) |
MISO (18) | Busy (11) |
MOSI (17) | D0 (2) |
Reset (1) | Init (16) |
GND (10) | GND (18) |
V závorce je uvedeno číslo pinu. K přeprogramování tedy potřebujete pět drátků a konektor (samec) do paralelního portu. K čipu musí být připojeno napájení a krystal (přes ty dva cca 30pF kondenzátory, jak je popsáno výše). Takže celkové schéma bude vypadat následovně:
Krása hotového obvodu vás jistě donutí k slzám:
Budete tedy potřebovat následující součástky:
V seznamu součástek jsem zmínil nepájivé kontaktní pole, které se může zdát zbytečné, ale rozhodně si ho za nekřesťanských 150 Kč kupte. Připravte se na to, že v obvodu budete každou chvíli provádět nějakou změnu a neustálé pájení drátků by vás brzy dokonale znechutilo. Jestliže nemáte napájecí zdroj 3-5 V, kupte si obvod LM78L05 (což je napěťový stabilizátor na 5 V) a vykšeftujte ve vietnamské tržnici libovolný adaptér, k němu si kupte konektor coby protikus, hasící přístroj a zapojte takto:
Pro jistotu uvádím rozmístění vývodů u obvodu LM78L05:
Na nepájivém kontaktním poli to může vyhlížet třeba takhle (omlouvám se, na fotce je omylem trochu jiný kondenzátor):
Až se vám vše podaří pospojovat dohromady, podívejte se na stránku projektu AVR Cross Development Kit, který se zabývá programováním jednočipů AVR a stáhněte si a nainstalujte alespoň tyto balíčky:
Dále zkuste napsat
uisp -dlpt=/dev/parport0 -dprog=dapa -v=4
|
a jednočip by se měl takto nadetekovat:
Reset inactive time (t_reset) 1000 us
|
Pokud místo toho dostanete hlášku
Reset inactive time (t_reset) 1000 us
|
něco je špatně se zapojením. Toho Segmentation fault
si
nevšímejte. Jestliže příkaz vyplivne nějakou jinou chybu,
zkotrolujte práva na /dev/parport0
a také to, jestli máte
k dispozici moduly pro paralelní port:
Pokud se obvod způsobně ohlásí, máte protentokrát vyhráno. Příkazem
uisp -dlpt=/dev/parport0 -dprog=dapa --erase
|
můžete kód v čipu smazat. Smazání čipu znamená nastavení všech bitů na jedničku. O tom, že jsou v čipu samé jedničky, se lze přesvědčit takto:
uisp -dlpt=/dev/parport0 -dprog=dapa --download
|
Příkaz by měl vypsat obsah paměti čipu na standardní výstup. Je to bohužel v Intel HEX formátu. Uvidíte, že každý řádek má jakousi hlavičku, po které následují data, a na konci každého řádku je zase cosi. Popis formátu je uveden například zde, kdyby to snad někoho zajímalo. Z výpisu lze však vytušit, že čip je opravdu prázdný a obsahuje samé FF.
Prozatím nebyl výsledek snažení nijak závratný, ale příště bude řeč o vytvoření fungujícího kódu. Jestli to myslíte s programováním jednočipů vážně a zrovna se chystáte do obchodu na nákup součástek, připište si do seznamu ještě
Běžte si to všechno koupit a možná se příště dozvíte, co s tím
Nástroje: Tisk bez diskuse
Tiskni Sdílej: