<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>lab.cz</title>
	<atom:link href="http://lab.cz/feed/" rel="self" type="application/rss+xml" />
	<link>http://lab.cz</link>
	<description></description>
	<lastBuildDate>Mon, 21 Mar 2011 08:56:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Nové články</title>
		<link>http://lab.cz/nove-clanky/</link>
		<comments>http://lab.cz/nove-clanky/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 07:56:18 +0000</pubDate>
		<dc:creator>Petr Štětina</dc:creator>
				<category><![CDATA[Nezařazené]]></category>

		<guid isPermaLink="false">http://lab.cz/?p=103</guid>
		<description><![CDATA[Můj cíl je napsat alespoň jeden smysluplný článek v průběhu 14ti dnů. Bohužel jsem se na začátku února válel týden v nemocnici a pak 3 týdny doma, takže teď doháním to, co jsem zameškal v práci a nemám čas na &#8230; <a href="http://lab.cz/nove-clanky/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Můj cíl je napsat alespoň jeden smysluplný článek v průběhu 14ti dnů. Bohužel jsem se na začátku února válel týden v nemocnici a pak 3 týdny doma, takže teď doháním to, co jsem zameškal v práci a nemám čas na zábavu.</p>
<p>V nejbližší době zkusím napsat něco o jednom z těchto témat:</p>
<ul>
<li>logický analyzátor za pár pětek s grafickým displejem a podporou SPI, I2C, 1-Wire, IR (RC-5, RC-6, pulse/space modulation)</li>
<li>bezdrátový přenos dat pro domácí automatizaci s použitím <a href="http://focus.ti.com/graphics/tool/ez430-rf2500.jpg">eZ430-RF2500</a> a/nebo <a href="http://www.rfsolutions.co.uk/acatalog/EasyBee_Zigbee_Module.html">EasyBee</a></li>
<li>přenos dat mezi MCU a telefonem s Androidem</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://lab.cz/nove-clanky/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AVR &#8211; odstranění nepoužitého kódu</title>
		<link>http://lab.cz/avr-odstraneni-nepouziteho-kodu/</link>
		<comments>http://lab.cz/avr-odstraneni-nepouziteho-kodu/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 20:15:44 +0000</pubDate>
		<dc:creator>Petr Štětina</dc:creator>
				<category><![CDATA[AVR]]></category>

		<guid isPermaLink="false">http://lab.cz/?p=75</guid>
		<description><![CDATA[Pokud se vám nedaří dostat program do AVR kvůli tomu, že má použitý čip málo FLASH, přesvědčte se, že máte zapnuto odstraňování nepoužitého kódu. Standardně jsou totiž  tyto volby v AVR Studiu vypnuté. Funkce, které jsou obsaženy ve zdrojových souborech &#8230; <a href="http://lab.cz/avr-odstraneni-nepouziteho-kodu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pokud se vám nedaří dostat program do AVR kvůli tomu, že má použitý čip málo FLASH, přesvědčte se, že máte zapnuto odstraňování nepoužitého kódu. Standardně jsou totiž  tyto volby v AVR Studiu vypnuté.</p>
<p>Funkce, které jsou obsaženy ve zdrojových souborech se do výsledného kódu linkují bez ohledu na to, zdali je voláte, nebo ne a zabírají drahocenné místo. K jejich odstranění použijte následující volby v okně <strong>Custom Options</strong>.</p>
<p><strong>All files:</strong> -ffunction-sections<br />
<strong> Linker Options:</strong> -Wl,-gc-sections</p>
<p><a href="http://lab.cz/wp-content/uploads/2011/02/avrs-conf-01.png"><img class="alignnone size-full wp-image-76" title="AVR Studio configuration" src="http://lab.cz/wp-content/uploads/2011/02/avrs-conf-01.png" alt="" width="738" height="544" /></a></p>
<p><a href="http://lab.cz/wp-content/uploads/2011/02/avrs-conf-02.png"><img class="alignnone size-full wp-image-77" title="AVR Studio configuration" src="http://lab.cz/wp-content/uploads/2011/02/avrs-conf-02.png" alt="" width="738" height="544" /></a></p>
<p>Zdroj: <a href="http://old.nabble.com/how-to-remove-unused-code--td15548009.html">http://old.nabble.com/how-to-remove-unused-code&#8211;td15548009.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.cz/avr-odstraneni-nepouziteho-kodu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1-Wire Slave pro AVR</title>
		<link>http://lab.cz/1-wire-slave-pro-avr/</link>
		<comments>http://lab.cz/1-wire-slave-pro-avr/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 21:18:18 +0000</pubDate>
		<dc:creator>Petr Štětina</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[1-Wire]]></category>

		<guid isPermaLink="false">http://lab.cz/?p=38</guid>
		<description><![CDATA[V příloze je zdrojový soubor v C, pomocí kterého můžete (pokud doplníte podporu konkrétních příkazů) do vašeho zařízení s AVR, přidat podporu protokolu 1-Wire. 1-Wire Slave Užitečné odkazy http://bascom.at.ua/publ/1-1-0-1 Pro případné dotazy použijte prosím link Napsat komentář.]]></description>
			<content:encoded><![CDATA[<p>V příloze je zdrojový soubor v C, pomocí kterého můžete (pokud doplníte podporu konkrétních příkazů) do vašeho zařízení s AVR, přidat podporu protokolu 1-Wire.</p>
<p><a href="http://lab.cz/wp-content/uploads/2011/02/1Wire.zip">1-Wire Slave</a></p>
<p><strong>Užitečné odkazy</strong></p>
<ul>
<li><a href="http://bascom.at.ua/publ/1-1-0-1">http://bascom.at.ua/publ/1-1-0-1</a></li>
</ul>
<p>Pro případné dotazy použijte prosím link <strong>Napsat komentář</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.cz/1-wire-slave-pro-avr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>stm32flash</title>
		<link>http://lab.cz/stm32flash/</link>
		<comments>http://lab.cz/stm32flash/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 20:31:21 +0000</pubDate>
		<dc:creator>Petr Štětina</dc:creator>
				<category><![CDATA[STM32]]></category>
		<category><![CDATA[bootloader]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[programátor]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://lab.cz/?p=34</guid>
		<description><![CDATA[Pokud potřebujete nahrát program do STM32 a nevyhovuje vám aplikace Flash Loader Demo nebo pracujete v Linuxu, můžete použít aplikaci stm32flash. Ta umí nahrát program přes sériový port pomocí standardního boot loaderu. V současné verzi (únor 2011) má několik drobných chyb viz. &#8230; <a href="http://lab.cz/stm32flash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pokud potřebujete nahrát program do STM32 a nevyhovuje vám aplikace <strong>Flash Loader Demo</strong> nebo pracujete v Linuxu, můžete použít aplikaci <a href="http://code.google.com/p/stm32flash/">stm32flash</a>. Ta umí nahrát program přes sériový port pomocí standardního boot loaderu. V současné verzi (únor 2011) má několik drobných chyb viz. <a href="http://code.google.com/p/stm32flash/issues/list">http://code.google.com/p/stm32flash/issues/list</a>, ale i tak je velmi dobře použitelná a to i na Windows!</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.cz/stm32flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nejlevnější USB programátor (nejen) pro Atmel AVR</title>
		<link>http://lab.cz/nejlevnejsi-usb-programator-nejen-pro-atmel-avr/</link>
		<comments>http://lab.cz/nejlevnejsi-usb-programator-nejen-pro-atmel-avr/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 12:35:13 +0000</pubDate>
		<dc:creator>Petr Štětina</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[STM32]]></category>
		<category><![CDATA[programátor]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://lab.cz/?p=24</guid>
		<description><![CDATA[Pokud chcete dostat program do mikrořadiče z rodiny AVR potřebujete k tomu nějaký programátor. Tedy zařízení, které připojíte na jedné straně do počítače a na druhé do tzv. ISP konektoru na desce s AVR případně pomocí vodičů na piny AVR &#8230; <a href="http://lab.cz/nejlevnejsi-usb-programator-nejen-pro-atmel-avr/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pokud chcete dostat program do mikrořadiče z rodiny AVR potřebujete k tomu nějaký programátor. Tedy zařízení, které připojíte na jedné straně do počítače a na druhé do tzv. ISP konektoru na desce s AVR případně pomocí vodičů na piny AVR umístěného v univerzální desce apod. Programátorů AVR existuje  spousta od jednoduchých na paralelní port přes sofistikované, připojované na RS-232 nebo USB. Ty první nepoužijete, pokud používáte notebook (nemá většinou paralelní ani sériový port), ty druhé pak kvůli jejich závratné ceně. Pokud hledáte nějakou alternativu a navíc jste líní něco stavět, zkuste tento kabel: <a href="http://cz.farnell.com/ftdi/ttl-232r-3v3/cable-usb-to-ttl-level-seri-converter/dp/1329311">http://cz.farnell.com/ftdi/ttl-232r-3v3/cable-usb-to-ttl-level-seri-converter/dp/1329311</a></p>
<p><strong>Aktuální cena</strong> v době psaní tohoto článku (leden 2011) je cca <strong>380 Kč!</strong></p>
<p><strong>Jak to funguje?</strong><br />
Stáhnete si upravenou verzi avrdude, která umožňuje tzv. bitbang u obvodů FTDI. Na vodiče připojíte vhodný konektor podle požadovaného ISP (buď 2&#215;3 nebo 2&#215;5) a můžete vesele programovat. Vyrábějí se i alternativy bez konektorů případně bez kabelů. Najdete je zde: <a href="http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm">http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm</a></p>
<p>Samozřejmě, že se použití neomezuje pouze na MCU od Atmelu. Jelikož jde primárně o převodník USB/RS-232 v TTL úrovních, můžete ho např. použít i pro nahrávání programu přes boot loader u STM32.</p>
<p>Kompletní návod a instalační soubory naleznete zde:<strong> </strong><a href="http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html">http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html</a></p>
<p><strong>Užitečné odkazy</strong></p>
<ul>
<li>Programátor kompatibilní s USBasp: <a href="http://rybkalabs.cz/usb-programator-avr.html">http://rybkalabs.cz/usb-programator-avr.html</a></li>
<li>AVRISP mkII: <a href="http://obchod.hw.cz/?cls=stoitem&amp;stiid=40766">http://obchod.hw.cz/?cls=stoitem&amp;stiid=40766</a></li>
<li>AVR-Doper: <a href="http://www.obdev.at/products/vusb/avrdoper.html">http://www.obdev.at/products/vusb/avrdoper.html</a></li>
</ul>
<p><a href="http://rybkalabs.cz/usb-programator-avr.html"></a></p>
<p><a href="http://obchod.hw.cz/?cls=stoitem&amp;stiid=40766"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.cz/nejlevnejsi-usb-programator-nejen-pro-atmel-avr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AVR</title>
		<link>http://lab.cz/avr/</link>
		<comments>http://lab.cz/avr/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 11:16:12 +0000</pubDate>
		<dc:creator>Petr Štětina</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[1-Wire]]></category>

		<guid isPermaLink="false">http://lab.cz/?p=17</guid>
		<description><![CDATA[Informace o AVR jsou na tomto webu vyhledávány nejčastěji. Je to tím, že jsem dříve napsal sérii článků o implementaci protokolu 1-Wire v assembleru pro AVR. Po přechodu na WordPress jsem jí ještě nepřevedl ze starého serveru a spíš uvažuji &#8230; <a href="http://lab.cz/avr/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Informace o AVR jsou na tomto webu vyhledávány nejčastěji. Je to tím, že jsem dříve napsal sérii článků o implementaci protokolu 1-Wire v assembleru pro AVR. Po přechodu na WordPress jsem jí ještě nepřevedl ze starého serveru a spíš uvažuji o tom, že napíšu nový článek o implementaci 1-Wire v C.</p>
<p><strong>Proč v dnešní době používat AVR?</strong><br />
S AVR jsem začal pracovat někdy v 90tých letech minulého století. Vyhovovala mi relativně  snadná dostupnost (pár typů), cena, přepisovatelná paměť a to, že jsem byl schopen sám postavit programátor s 3 odpory na paralelní port. S výjimkou toho programátoru platí ostatní argumenty i dnes. Nicméně, pro náročnější aplikace volím poslední 2 roky čipy STM32. Zejména proto, že mají JTAG a USB. AVR je právě v této chvíli (leden 2011) &#8220;dotahují&#8221; svojí novou rodinou U2/U4, která už má USB také. Abych odpověděl jednoznačně na otázku v nadpisu: dle mého názoru se AVR hodí všude tam, kde jde o jednoduchou funkci (nepotřebujete složité ladění přes JTAG), je tlak na cenu vybavení pro vývoj (IDE, programátor/debugger) nebo jsou požadovány extrémně malé rozměry (ATtiny10, 13, 15 apod.).</p>
<p>Pokud máte nějaký dotaz či připomínku k tématu AVR, použijte prosím diskuzi.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.cz/avr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>USB (VCP) bootloader pro STM32</title>
		<link>http://lab.cz/usb-vcp-bootloader-pro-stm32/</link>
		<comments>http://lab.cz/usb-vcp-bootloader-pro-stm32/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 20:09:58 +0000</pubDate>
		<dc:creator>Petr Štětina</dc:creator>
				<category><![CDATA[STM32]]></category>
		<category><![CDATA[bootloader]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://lab.cz/?p=10</guid>
		<description><![CDATA[Pokud navrhujete USB zařízení s STM32F102 či STM32F103 budete pravděpodobně potřebovat nějaký způsob, jak do něj nahrávat nové verze programu (firmware). Jednou z možností je použití interního bootloaderu přístupného na USART0 po nastavení vysoké úrovně na pinu BOOT0 (+ nízké &#8230; <a href="http://lab.cz/usb-vcp-bootloader-pro-stm32/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pokud navrhujete USB zařízení s STM32F102 či STM32F103 budete pravděpodobně potřebovat nějaký způsob, jak do něj nahrávat nové verze programu (firmware).</p>
<p>Jednou z možností je použití interního bootloaderu přístupného na USART0 po nastavení vysoké úrovně na pinu BOOT0 (+ nízké úrovně na pinu BOOT1). Další možností je použití JTAG. Možnost nahrát program přímo pomocí USB mají pouze čipy z rodiny connectivity line.</p>
<p>V tomto článku najdete postup, jak programovat přes USB všechny čipy STM32 s podporou USB (především STM32F102 a STM32F103).</p>
<p>Protokol standardního bootloaderu, přístupného přes USART0, popisuje <a href="http://www.st.com/stonline/products/literature/an/17066.pdf">AN3155</a> (USART protocol used in the STM32™ bootloader). Pokud se zařízení připojené k USB chová jako virtuální COM port (VCP), může použít stejný protokol a přesně to VCP bootloader dělá. Můžeme použít stejný obslužný program pro oba typy bootloaderu. Rozdíl bude pouze v čísle portu, kterým budeme na PC komunikovat s USB zařízením.</p>
<p>Pro nahrání programu můžeme ve Windows použít aplikaci &#8220;Flash Loader Demo&#8221; přímo od společnosti STMicroelectronics. Pokud chcete nahrávat program z Linuxu můžete použít aplikaci <a href="http://code.google.com/p/stm32flash/">stm32flash</a>, které je věnován <a href="/stm32flash">samostatný článek</a>.</p>
<p><strong>Použití<br />
<span style="color: #444444; font-weight: normal;">Po připojení napájení se vždy spustí bootloader a čeká předem nastavenou dobu (standardně 15 sec) na zahájení komunikace z PC. Není tedy potřeba zkratovat vstupní pin MCU proti zemi jako u standardního bootloaderu. Pokud není navázána komunikace, spustí se (dříve nahraná) aplikace</span><span style="color: #444444;">.</span></strong></p>
<p><strong>Omezení<br />
</strong>VCP bootloader zabírá cca 10 KB FLASH. Cca 2 KB představuje vlastní bootloader, 8 KB je virtuální COM port. Bootloader je uložen na začátku FLASH a aplikace musí být umístěna až za něj. Zároveň jsou použity 3 KB SRAM (2 KB buffery pro VCP, 1 KB struktury pro bootloader).</p>
<p>Aplikace určená pro VCP bootloader tedy musí počítat s obsazenou FLASH a<br />
případně (podle způsobu použití) i SRAM.<br />
Naštěstí lze linkeru jednoduše nastavit začátek použité FLASH a SRAM. V našem<br />
případě bude FLASH začínat na adrese 0&#215;08002800 a SRAM na adrese 0x20000C00.</p>
<p>Takto upravený program můžeme nahrát do MCU. Pokud nenastavíme začátek<br />
FLASH, odmítne bootloader program uložit &#8211; přepsal by tím sám sebe.</p>
<p>U nejmenších čipů jako je např. STM32F103C6, který má 32 KB FLASH, obsadí bootloader téměř 1/3 FLASH. Je tedy potřeba optimalizovat využití FLASH. Pokud bude program používat (stejně jako bootloader) VCP, bude ve FLASH uložen kód pro obsluhu VCP 2x &#8211; jednou v bootloaderu a jednou v programu. Pro tento případ umožňuje VCP bootloader tzv. dynamickou vazbu, která funguje obdobně jako DLL ve Windows.<br />
Při inicializaci knihovny pro VCP se zjistí adresy funkcí obsažené v bootloaderu a ty se pak volají z programu. Tímto způsobem se uspoří cca. 8 KB FLASH. Program ale musí mít nastaven odpovídající začátek SRAM (viz. výše), aby nepřepisoval paměť používanou VCP.</p>
<p><strong>Rychlost programování<br />
</strong>Rychlost je omezena především rychlostí zápisu do FLASH. Rychlost přenosu dat přes USB dosahuje s maximální velikostí bufferů cca 600 kbps.</p>
<p>V připojeném <a href="http://lab.cz/wp-content/uploads/2011/03/STM32-BL.zip">archivu</a> najdete zdrojové soubory, projekt pro CrossWorks a dva stupidní příklady. V případě komplikací s překladem mě prosím kontaktujte.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.cz/usb-vcp-bootloader-pro-stm32/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vítejte</title>
		<link>http://lab.cz/vitejte/</link>
		<comments>http://lab.cz/vitejte/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 19:50:11 +0000</pubDate>
		<dc:creator>Petr Štětina</dc:creator>
				<category><![CDATA[Nezařazené]]></category>

		<guid isPermaLink="false">http://lab.cz/?p=1</guid>
		<description><![CDATA[Na této stránce naleznete informace o mých projektech a jak by měl napovědět horní detail plošného spoje, všechny se týkají mikrořadičů a HW. Aktuálně pracuji na přechodu z původního proprietárního systému na WordPress, ale nechci, pokud možno, kopírovat celý původní &#8230; <a href="http://lab.cz/vitejte/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Na této stránce naleznete informace o mých projektech a jak by měl napovědět horní detail plošného spoje, všechny se týkají mikrořadičů a HW.</p>
<p>Aktuálně pracuji na přechodu z původního proprietárního systému na WordPress, ale nechci, pokud možno, kopírovat celý původní obsah serveru. Část podle potřeby zkopíruji, ale rád napíšu i něco nového, na témata, která mě i Vás (jinak by jste tu nebyli) zajímají.</p>
<p>Nechci obsahem tohoto webu konkurovat např. serverům <a href="http://mcu.cz">mcu.cz</a> nebo <a href="http://pandatron.cz">pandatron.cz</a> apod. Chci se věnovat několika málo tématům a rozpracovat je do hloubky.</p>
<p>V této chvíli to jsou mikrořadiče AVR a STM32, domácí automatizace, jednoduché konstrukce pro výuku práce s MCU, Embedded Linux a jeho alternativy. Jestli budou i nějaké další, záleží na vás.</p>
<p>Toto stránku prosím berte i jako místo pro vaše dotazy a připomínky &#8211; vkládejte sem prosím své komentáře.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.cz/vitejte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

