<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>gEDA on Silicone&#39;s web</title>
		<link>https://silicone.homelinux.org/tags/geda/</link>
		<description>Recent content in gEDA on Silicone&#39;s web</description>
		<generator>Hugo</generator>
		<language>fr</language>
		
		
		
		
			<lastBuildDate>Sun, 27 Nov 2011 23:01:47 +0100</lastBuildDate>
		
			<atom:link href="https://silicone.homelinux.org/tags/geda/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Premiers pas en développement noyau</title>
				<link>https://silicone.homelinux.org/2011/03/08/premiers-pas-en-developpement-noyau/</link>
				<pubDate>Tue, 08 Mar 2011 21:34:09 +0100</pubDate>
				<guid>https://silicone.homelinux.org/2011/03/08/premiers-pas-en-developpement-noyau/</guid>
				<description>&lt;p&gt;Je voulais me mettre au développement noyau, mais je ne savais pas par où commencer, alors un sage m’a dit: « pour apprendre rien de tel que de le faire: vous achetez un petit périphérique USB et vous en écrivez le driver. »&lt;br&gt;&#xA;Ma réponse a été: « effectivement, je n’y avais pas pensé, en général on utilise la libusb pour ce genre de choses. »&lt;/p&gt;&#xA;&lt;h3 id=&#34;un-périphérique-usb&#34;&gt;Un périphérique USB&lt;/h3&gt;&#xA;&lt;p&gt;Et voila que quelques jours après, sans avoir trouvé de périphérique sympa je me suis dit, mais pourquoi pas le faire aussi ?&lt;br&gt;&#xA;&lt;a href=&#34;http://silicone.homelinux.org/2010/02/03/ca-fait-un-bail/&#34;&gt;Comme je vous l’ai déjà raconté&lt;/a&gt;, j’ai déjà bricolé un périphérique USB: l’USBtinyISP, donc je suis allé rechercher le code original de &lt;a href=&#34;http://www.xs4all.nl/~dicks/avr/usbtiny/&#34;&gt;usbtiny&lt;/a&gt; et je me suis monté un petit prototype avec 4 LED et 2 boutons:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://silicone.homelinux.org/2011/03/08/premiers-pas-en-developpement-noyau/usb_gadget_prototype.jpg&#34;&#xA;         srcset=&#34;https://silicone.homelinux.org/2011/03/08/premiers-pas-en-developpement-noyau/usb_gadget_prototype.jpg 400w, https://silicone.homelinux.org/2011/03/08/premiers-pas-en-developpement-noyau/usb_gadget_prototype-300x192.jpg 300w&#34;&#xA;         sizes=&#34;auto, (max-width: 400px) 100vw, 400px&#34;&#xA;         alt=&#34;Photo de mon prototype&#34; title=&#34;USB Gadget prototype&#34; width=&#34;400&#34; height=&#34;256&#34;&#xA;         class=&#34;alignnone size-full&#34;&#xA;         decoding=&#34;async&#34; fetchpriority=&#34;high&#34;&#xA;         loading=&#34;lazy&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bon plutôt que d’utiliser un ATtiny, j’ai pris un ATmega8 histoire d’avoir un peu de place pour y ajouter du code plus tard 😉 (l’ATtiny2313 est déjà super plein pour l’USBtinyISP).&lt;/p&gt;&#xA;&lt;p&gt;Et voila le schéma (en image, les sources gschem sont sous git dans le répertoire &lt;code&gt;sch&lt;/code&gt;):&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://silicone.homelinux.org/2011/03/08/premiers-pas-en-developpement-noyau/usb_gadget_schema.png&#34;&gt;&lt;img src=&#34;https://silicone.homelinux.org/2011/03/08/premiers-pas-en-developpement-noyau/usb_gadget_schema-thumb.png&#34;&#xA;         srcset=&#34;https://silicone.homelinux.org/2011/03/08/premiers-pas-en-developpement-noyau/usb_gadget_schema-thumb.png 400w, https://silicone.homelinux.org/2011/03/08/premiers-pas-en-developpement-noyau/usb_gadget_schema-thumb-300x214.png 300w&#34;&#xA;         sizes=&#34;auto, (max-width: 400px) 100vw, 400px&#34;&#xA;         alt=&#34;Le schéma&#34; title=&#34;USB Gadget&amp;#39;s schema&#34; width=&#34;400&#34; height=&#34;286&#34;&#xA;         class=&#34;alignnone size-full&#34;&#xA;         decoding=&#34;async&#34;&#xA;         loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Une fois le montage prêt, quelques lignes de code basées sur l’exemple de tinyusb et hop un firmware pour l’ATmega (à la racine du projet).&lt;/p&gt;&#xA;&lt;p&gt;Qu’il a fallut tester, hop la première méthode évoquée plus haut, quelques lignes de code avec &lt;a href=&#34;http://www.libusb.org/&#34;&gt;libusb&lt;/a&gt;, disponible dans le répertoire &lt;code&gt;test&lt;/code&gt;, m’ont permis de parfaire le firmware 😉&lt;/p&gt;&#xA;&lt;p&gt;Voila, tout marche, on va pouvoir entrer dans le vif du sujet.&lt;/p&gt;&#xA;&lt;h3 id=&#34;le-gestionnaire-de-périphérique-linux&#34;&gt;Le gestionnaire de périphérique Linux&lt;/h3&gt;&#xA;&lt;p&gt;En fait j’ai tout simplement suivi et adapté les tutoriels suivants:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://linuxdevcenter.com/pub/a/linux/2007/07/05/devhelloworld-a-simple-introduction-to-device-drivers-under-linux.html&#34; hreflang=&#34;en&#34;&gt;/dev/hello_world: A Simple Introduction to Device Drivers under Linux&lt;/a&gt; par Valerie Henson&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.linuxjournal.com/article/7353&#34; hreflang=&#34;en&#34;&gt;Writing a Simple USB Driver&lt;/a&gt; de Greg Kroah-Hartman&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;En regardant la version de &lt;code&gt;usbled.c&lt;/code&gt; présente dans les sources de Linux afin de mettre à jour les derniers détails.&lt;/p&gt;&#xA;&lt;p&gt;Cela donne un driver qui ajoute les pseudo-fichiers &lt;code&gt;leds&lt;/code&gt; et &lt;code&gt;keys&lt;/code&gt; dans le répertoire du périphérique déjà créé dans &lt;code&gt;/sys/bus/usb/&lt;/code&gt; par le noyau Linux.&lt;/p&gt;&#xA;&lt;p&gt;Voila ! Vous je sais pas mais moi j’ai appris plein de choses ! 😉&lt;/p&gt;&#xA;&lt;p&gt;Tout le code est disponible sous GPL2 et GPL2+ sur mon gitweb: &lt;a href=&#34;http://silicone.homelinux.org/git/jvdg_usbgadget.git/&#34;&gt;jvdg_usbgadget.git&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Pour le nom un peu égocentrique, c’était surtout pour éviter tout risque de conflit, comme de toutes façons ceci n’a pas vocation à être intégré dans Linux (le périphérique utilise un ID USB réservé aux prototypes, donc inutilisable en grande série…)&lt;/p&gt;</description>
			</item>
			<item>
				<title>ça fait un bail…</title>
				<link>https://silicone.homelinux.org/2010/02/03/ca-fait-un-bail/</link>
				<pubDate>Wed, 03 Feb 2010 21:34:26 +0100</pubDate>
				<guid>https://silicone.homelinux.org/2010/02/03/ca-fait-un-bail/</guid>
				<description>&lt;p&gt;Bon, en fait je lis plus que je n’écris depuis que j’ai syndiqué &lt;a href=&#34;http://planet.debian.org/&#34;&gt;Planet Debian&lt;/a&gt; dans mon aggrégateur de flux, &lt;a href=&#34;http://gregarius.net/&#34;&gt;gregarious&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;J’ai aussi fait quelques changement sur le thème, mis a jours wordpress sans gros soucis. Merci à wordpress et debian.&lt;/p&gt;&#xA;&lt;p&gt;Pour finir, ce blog est sous titré « electronics » et je n’ai jamais parlé d’électronique jusqu’ici. En revanche j’ai pratiqué. 😉&lt;/p&gt;&#xA;&lt;p&gt;J’ai cherché des soft pour tracé des schéma et garder un trace de mon travail, dans un premier temps pour moi, puis pour les publier sur ce blog quand il seront prèt.&lt;br&gt;&#xA;Un projet qui m’a semblé intéressant: &lt;a href=&#34;http://fritzing.org/welcome/&#34;&gt;Fritzing&lt;/a&gt; mais il semble trop instable, Je ne veux pas dire qu’il plante mais que le format de fichier n’est pas figé. Ce qui signifie que des projets enregistré avec la version d’aujourd’hui ne s’ouvriront peut être plus avec la version de demain.&lt;/p&gt;&#xA;&lt;p&gt;Donc je me suis tourné vers les outils du &lt;a href=&#34;http://www.gpleda.org/&#34;&gt;gEDA project&lt;/a&gt;. À commencer par &lt;a href=&#34;http://www.gpleda.org/tools/gschem/index.html&#34;&gt;gschem&lt;/a&gt; pour tracer les schéma électronique puis je me suis mis à &lt;a href=&#34;http://www.gpleda.org/tools/pcb/index.html&#34;&gt;PCB&lt;/a&gt; pour préparer mes cartes.&lt;br&gt;&#xA;Je ne fait pas de vrai PCBs, je préfère utiliser des cartes à prototype et y souder pleins de petits fils, mais utiliser PCD avec une grille à 100mil (1mil c’est 1/1000 de pouces soit 0,0254mm) facilite grandement le placement des composants.&lt;/p&gt;&#xA;&lt;p&gt;J’ai commencer à bricoler avec des &lt;a href=&#34;http://www.atmel.com/products/AVR/&#34;&gt;micro-contrôleurs AVR de Atmel&lt;/a&gt; en utilisant avr-gcc et &lt;a href=&#34;http://www.nongnu.org/avr-libc/&#34;&gt;avr-libc&lt;/a&gt;. J’ai commencer par me faire un programmateur d’avrpar usb, l’&lt;a href=&#34;https://learn.adafruit.com/usbtinyisp&#34;&gt;USBtinyISP&lt;/a&gt;. Je publierais les fichiers gschem et PCB un des ces quatres. (ou plus vite si vous me le demandez).&lt;/p&gt;&#xA;&lt;p&gt;J’allais oublié, J’ai retrouvé un vieux liens sur le &lt;a href=&#34;http://www.xs4all.nl/~ganswijk/chipdir/&#34;&gt;Chip Directory&lt;/a&gt;. C’est une collection de ficher decrivant le brochage de beaucoup de vieux circuits tels les séries TTL 74xx et les séries MOS 40xx.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
