
 <?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/"
	xmlns:georss="http://www.georss.org/georss" >

<channel>
	<title>miguelware</title>
	<atom:link href="http://miguelware.net/category/electronica/feed/" rel="self" type="application/rss+xml" />
	<link>http://miguelware.net</link>
	<description></description>
	<lastBuildDate>Fri, 06 Nov 2009 21:29:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PCB con impresora 3d.</title>
		<link>http://miguelware.net/pcb-con-impresora-3d/</link>
		<comments>http://miguelware.net/pcb-con-impresora-3d/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 10:36:36 +0000</pubDate>
		<dc:creator>Miguel</dc:creator>
				<category><![CDATA[akytera]]></category>
		<category><![CDATA[ciencia]]></category>
		<category><![CDATA[electrónica]]></category>
		<category><![CDATA[everyware]]></category>
		<category><![CDATA[libros]]></category>
		<category><![CDATA[rmd]]></category>

		<guid isPermaLink="false">http://miguelware.net/?p=284</guid>
		<description><![CDATA[
La gente de RepRap han hecho un circuito electrÃ³nico con la impresora 3d, modificando algunas partes de esta. Las pistan se realizan depositando el conductor sobre unos railes. Si bien el acabado del circuito estÃ¡ muy lejos de ser aceptable, el concepto es muy interesante.

]]></description>
			<content:encoded><![CDATA[<p>La gente de <a href="http://blog.reprap.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.reprap.org');">RepRap</a> han hecho <a href="http://blog.reprap.org/2009/04/first-reprapped-circuit.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.reprap.org');">un circuito electrÃ³nico con la impresora 3d</a>, modificando algunas partes de esta. Las pistan se realizan depositando el conductor sobre unos railes. Si bien el acabado del circuito estÃ¡ muy lejos de ser aceptable, el concepto es muy interesante.</p>
]]></content:encoded>
			<wfw:commentRss>http://miguelware.net/pcb-con-impresora-3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AVR en Linux.</title>
		<link>http://miguelware.net/mini-howto-avr-en-linux-avr-dragon-con-jtag-gcc-avarice-ddd/</link>
		<comments>http://miguelware.net/mini-howto-avr-en-linux-avr-dragon-con-jtag-gcc-avarice-ddd/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 13:17:26 +0000</pubDate>
		<dc:creator>Miguel</dc:creator>
				<category><![CDATA[electrónica]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[herramientas]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[microcontroladores]]></category>

		<guid isPermaLink="false">http://miguelware.net/?p=232</guid>
		<description><![CDATA[
<ol><li>
</li></ol>
How to use AVR Dragon JTAG in Linux: <a href="http://www.larsen-b.com/Article/315.html">http://www.larsen-b.com/Article/315.html</a>
<ol><li>
</li></ol>

]]></description>
			<content:encoded><![CDATA[<p>Ahora estoy trabajando con microcontroladores de 8bit, anteriormente he jugado un poco con los <a href="http://www.microchip.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.microchip.com');">PIC de Microchip</a>, no obstante, ahora tenÃ­a en mente poder hacer todo el desarrollo con software libre. AsÃ­ que he elegido los <a href="http://www.atmel.com/products/AVR/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.atmel.com');">AVR de Atmel</a>. Tambien he tocado un poco <a href="http://www.arduino.cc/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.arduino.cc');">Arduino</a> que estÃ¡ basado en esta familia de micros, no obstante ahora profundizo mÃ¡s en la arquitectura de los AVR y depuro el cÃ³digo con la interfaz JTAG.</p>
<p><strong>Herramientas necesarias:</strong></p>
<ul>
<li> Programador(hardware) <a href="http://www.atmel.com/dyn/Products/tools_card.asp?tool_id=3891" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.atmel.com');">AVR Dragon</a>.</li>
<li> Librerias C, <a href="http://www.nongnu.org/avr-libc/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.nongnu.org');">AVR Libc</a>.</li>
<li> Compilador <a href="http://www.avrfreaks.net/wiki/index.php/Documentation:AVR_GCC" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.avrfreaks.net');">Gcc-avr</a>.</li>
<li> Debugger Gdb-avr.</li>
<li> Front end para el debugger <a href="http://www.gnu.org/software/ddd/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.gnu.org');">DDD</a>.</li>
<li> <a href="http://linux.die.net/man/1/avarice" onclick="javascript:pageTracker._trackPageview('/outbound/article/linux.die.net');">Avarice</a>.</li>
</ul>
<p><strong>Compilando con GCC-avr:</strong></p>
<p>Para compilar he usado esta secuencia de comandos.</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">avr-gcc -g -OS -mmcu=atmega16 -c test.c;avr-gcc -g -mmcu=atmega16 -o test.elf test.o;avr-objcopy -j .text -j .data -O ihex test.elf test.hex</pre></div></div>

<p>AquÃ­ a grandes rasgos, se genera un fichero objeto, luego un archivo binario GNU ejecutable y por Ãºltimo el .hex que volcaremos en la memorÃ­a del micro. MÃ¡s informaciÃ³n en <a href="http://www.network-theory.co.uk/docs/gccintro/gccintro_13.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.network-theory.co.uk');">este libro</a>.</p>
<p><strong>Depurando con Avarice + GDB-AVR/DDD:<br />
</strong></p>
<p>Los elemetos que intervienen y como estan conectados entre si:</p>
<p><em>Atmega16  &lt;&#8212;JTAG&#8211;&gt;  AVR Dragon  &lt;&#8212;USB&#8212;&gt; Avarice &lt;&#8212;TCP/IP&#8212;&gt; GDB-avr</em></p>
<p>El programador AVR Dragon viene de casa sin cables ni manuales, asÃ­ que es conveniente echarle una ojeada a <a href="http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRDragon/AVRDragon.htm" onclick="javascript:pageTracker._trackPageview('/outbound/article/support.atmel.no');">la pÃ¡gina del fabricante</a>, para conocer el conexionado, y poder hacerse el cable o insertar los zÃ³calos.</p>
<p>Para poner en marcha Avarice:</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;"> avarice -g -j usb --erase --program --file test.hex :4242</pre></div></div>

<p>que borra y programa el micro y espera una conexiÃ³n en el puerto 4242.</p>
<p>Para conectar GDB con Avarice y comenzar a depurar, hay que indicar que fichero tiene que tomar y por que puerto tiene que establecer la conexiÃ³n, esto se puede hacer creando un fichero de configuraciÃ³n en el directorio donde ejecutamos gdb:</p>
<p>Por ejemplo el fichero gdb.conf con este contenido:</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">file  test.elf
target remote localhost:4242</pre></div></div>

<p>luego ejecutamos gdb-avr:</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;"> avr-gdb -x gdb.conf</pre></div></div>

<p>Si preferimos usar un entorno grÃ¡fico, podemos usar DDD, con el siguiente comando.</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;"> ddd --debugger &quot;avr-gdb -x gdb.conf&quot;</pre></div></div>

<p><strong>Alguna cuestiÃ³n mÃ¡s:</strong></p>
<p>El parÃ¡metro -OS que se ha usado a la hora de compilar con GCC, indica a este que optimice el cÃ³digo para ahorrar recursos, a la hora de depurar puede que no se usen algunas varibles que a priori usamos en nuestro programa. Quitando ese parÃ¡metro se puede solucionar este problema.</p>
<p>Esta cuestiÃ³n y muchas mÃ¡s estan en el <a href="http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_gdboptimize" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.nongnu.org');">FAQ de avr-libc</a>, imprecindible!!</p>
<p>Y nada mÃ¡s espero que este minihowto le sirva a alguien :-)</p>
<p>Referencias:</p>
<ul>
<li> <a href="http://www.larsen-b.com/Article/315.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.larsen-b.com');">How to use AVR Dragon JTAG in Linux.</a></li>
<li><a href="http://www.instructables.com/id/S1I06RRFBG0A8E3/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.instructables.com');">Getting started with Ubuntu and the AVR Dragon.</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://miguelware.net/mini-howto-avr-en-linux-avr-dragon-con-jtag-gcc-avarice-ddd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
