Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/02/2015, à 15:44

djelko

Transformer un maitre I2C en esclave.

Bonjour à tous,

Je cherche depuis un moment, comment passer un système Linux en esclave I2C. On trouve très facilement sur le net des méthodes pour mettre une carte en maitre, mais rien pour être un esclave....

Je pense que ce ne doit pas être grand chose... sûrement juste une ligne à changer dans un fichier bien précis.

Je vous remercie !

Alexandre S.


" Qui ne tente rien n'a rien ! "

Site perso : http://alexandre-schmitt.fr.nf
Robotique Club de l'Ouest : http://rco.fr.nf

Hors ligne

#2 Le 28/02/2015, à 11:28

coiu

Re : Transformer un maitre I2C en esclave.

bonjour,
exactement tu veut faire koi car le I2c et utilisé principalement par des automates de régulation ou régulateur (robotisation).

la tu a une documentation: http://git.kernel.org/cgit/linux/kernel … -interface

I2C_SLAVE est en faite une macro définie dans /linux/i2c-dev.h donc je pense que le mieux est d'inclure i2c-dev.h .
mais je recherche ce qui faut modifier dessus.

regarde ce lien pourrai aider
[http://elinux.org/Interfacing_with_I2C_Devices]
[https://www.kernel.org/doc/Documentatio … -interface]

Dernière modification par coiu (Le 28/02/2015, à 11:31)

Hors ligne

#3 Le 28/02/2015, à 11:57

coiu

Re : Transformer un maitre I2C en esclave.

re j'ai trouvé des sites qui pourré d'aider.
[https://lkml.org/lkml/2014/11/18/678]
http://lwn.net/Articles/611332/
http://lwn.net/Articles/621558/

voila ce que j'ai trouvé peut pas teste je suis en déplacement.

un de mes collègue a fait sa

Voici mon i2c esclave code de test de mode pour carte i.MX28 EVK pour recevoir et envoyer nombre arbitraire d'octets. Elle est basée sur BSP L2.6.35_10.12. Après la correction, l'option de test i2c esclave peut être activé dans la configuration du noyau.

Device Driver

support I2C

I2C support de bus matériel --->

Test de ESCLAVE MXS I2C

Sur mon MX28 EVK, i2c1 est relié à la i2c0 extérieur. Le i2c0 agit comme maître et i2c1 agit comme esclave. Les étapes pour tester le bus I2C est comme ci-dessous:

// Préparer esclave i2c pour recevoir

$ Cd /sys/devices/platform/mxs-i2c-slave.1

$ Test cat &

// Envoyer des données de maître i2c

$ Cd /sys/devices/platform/mxs-i2c.0

$ Echo 7> Test

// Préparer esclave i2c pour envoi

$ Cd /sys/devices/platform/mxs-i2c-slave.1

$ Echo 5> Test &

// Lire les données du maître i2c

$ Cd /sys/devices/platform/mxs-i2c.0

$ Test de chat

Dans ce patch, l'octet d'adresse est reçu en mode PIO et le gestionnaire d'IRQ i2c déterminer si cette transaction est un i2c lire ni écrire. Pour i2c écriture esclave (maître de lecture), il suffit de configurer un descripteur de DMA pour envoyer le nombre d'octets recherchés. Pour lire esclave i2c (maître d'écriture), un descripteur de DMA est configuré pour recevoir 1 octet. Chaque fois que DMA IRQ complète, l'octet reçu est copié dans la mémoire tampon de destination, puis configurer un autre descripteur de DMA pour recevoir le prochain octet. L'esclave i2c recevoir finit toujours avec un i2c fin début IRQ. Après un transfert i2c esclave complète, deux dispositif de i2c et son canal DMA sont remis à zéro.

En raison de l'errata # i.MX28 2836, l'esclave i2c ne est pas adapté pour une connexion à haut débit de données.

j’espère d'avoir aider.

Dernière modification par coiu (Le 28/02/2015, à 12:02)

Hors ligne