Re: [LA-discussions] Fonera avec OpenWrt et bus I2C - Appel à l'aide !!

[ Thread Index | Date Index | More linuxarverne.org/discussions Archives ]


Salut Alex,

Le mardi 10 mars 2009 21:27:54 RAULT Alexandre, vous avez écrit :
> dans mes "amusements", je cherche à modifier un routeur wifi pour en
> faire un petit serveur d'interface avec le monde extérieur....
> [...]
> Dans la pratique, je me base sur un routeur Fonera dont le firmware
> est remplacé par Open-WRT ( http://fr.wikipedia.org/wiki/OpenWrt )
Tu as quel modèle de Fonera ? Et quelle version d'OpenWrt tu utilise ?

> Dans la fonera, on peut accéder à directement à certaines broches du
> microcontrolleur que l'on peut piloter logiciellement.

> Dans la Fonera, je peux utiliser les GPIO 3 , 4 , 1 et 7 et il faut
> que je les contrôle pour en faire un bus de communication à la norme
> I2C.
Tu dis pouvoir utiliser les GPIO 3 , 4 , 1 et 7, as tu tester de les faire 
changer d'état avec gpioctl et de voir si tu as bien le niveau logique voulu 
sur la broche correspondante ?

> L'avantage du bus I2C c'est qu'avec 2 lignes de bus, on peut utiliser
> plusieurs composants, tel que des 'convertisseurs Entré/Sortie' avec 8
> lignes, et que l'on peut en placer plusieurs sur el même bus, on peut
> avoir par exemple en plus 3 sondes de T° ... ce qui assure de
> possibles évolutions.
Il y a aussi le One-Wire pour faire ça mais ce n'est pas le sujet.

> Dans Open-WRT, j'ai la possibilité d'inclure des modules qui sont en
> principe la solution, mais impossible de trouver de la doc pour les
> exploiter !
As tu essayer de flasher ta fonera avec la version utilisée dans l'article ? À 
defaut d'avoir un firmware dernier cri, tu auras peut-être un truc fonctionnel.

> Par exemple, dans le module
> https://dev.openwrt.org/browser/trunk/package/i2c-gpio-custom/src une
> ligne décrit les arguments à passer, mais aucune info détaillées
> d'utilisation du module :s
Malheureusement, la doc c'est le code dans ce cas ^^

> Par exemple, dans le montage de Denis Bodor, pour chaque ligne du bus
> (Sda et Scl) qui doivent être bidirectionnelles, il utilise un GPIO en
> entrée, et un autre en sortie, mais a priori, avec les nouveaux
> modules ce n'est plus le cas !
D'après ce qui est écrit dans les sources de i2c-gpio-custom, ce module permet 
de créer jusqu'à quatre bus i2c mais chaque bus i2c se voit attribuer 1 seul 
GPIO par ligne (SDA, SCL). Ce qui ne correspond pas au montage fourni sur 
lefinnois.

> j'imagine, mais j'aimerais une confirmation, qu'il faut :
> 1 : déclarer les GPIO 3 et 1 en sorties et les GPIO 4 et 7 en entrées
> avec gpioctl
Si le module I2C est bien fait, il placera lui même les GPIO dans la bonne 
config.

> 2 : déclarer les SDA/SCL avec i2c-gpio-custom qui devrait créer des
> bus I2C dans /dev ou /proc avec i2c-tools ou i2c-gpio-custom ..
Si tu i2c-gpio-custom était le module qui convient, ce qui je pense n'est pas 
le cas si tu utilise le montage à 4pins, c'est effectivement le module que tu 
charge qui créer les accès dans /dev.

> Si quelqu'un qui sache lire le C peut m'apporter un peu d'aide, je
> suis preneur, parce que je tourne en rond !
Je crois que si tu veux utiliser le montage de Denis Bodor, il faudra adapter 
le code fourni à la nouvelle version d' OpenWrt.

Sinon, il est possible faire quelques recherches pour voir s'il n'est pas 
possible de faire un bus i2c sur 2 fils avec la fonera. Il a d'ailleurs un 
commentaire sur le site lefinnois qui pose la question de la pertinence de 
l'utilisation de 4 pins + un CI, voici la réponse donné par Denis Bodor :

" Le composant TTL permet aussi et surtout d’adapter les tensions. Sauf erreur 
de ma part, un bus i2c est en standardisé en 5V or La Fonera est en 3.3 (avec 
une tolérance au 5V). Pour ce qui est de l’économie des pins, La Fonera est 
déjà très lente, changer le sens des GPIO risque de ralentir encore davantage 
les choses. Enfin, rien ne montre que les GPIO du routeur sont à collecteurs 
ouverts ou peuvent être configurés comme tel (comme sur un microcontrôleur AVR 
ou autre, tri-state machin-truc). Mais oui, effectivement, il faudrait pousser 
les recherches dans ce sens. Pouvoir utiliser 2 pins au lieu de 4 est très 
intéressant vu le nombre réduit d’E/S. On pourrait ainsi avoir deux bus i2c 
très facilement.
Enfin, question vitesse, je viens de me rendre compte que les connecteurs sur 
SW1 disposent de résistances de rappel à la masse et de capa CMS. Le tout 
formant donc un réseau RC il me semble. Les problèmes de lenteur proviennent 
sans doute de là. De plus, différentes discussions sur le forum OpenWRT 
Kamikaze concernant l’utilisation de carte SD/MMC précisent qu’il faut 
déssouder ces capa et ces résistances… encore une piste à suivre…"

En espèrant que ça puisse t'aider...

PS: Tiens nous au courant de l'évolution du projet, il m'interresse beaucoup 
pour un éventuel futur projet ^^

-- 
neomilium

---
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/