26/08/2006, 18h57
|
Sujet emulation i2c pour pic en C - Message #1
|
Date d'inscription: décembre 2005
Âge: 23
Messages: 32
|
emulation i2c pour pic en C
bonjour à tous,
suite à une discution sur un autre sujet sur ce forum, je cherche à utiliser l'i2c avec un pic qui ne l'a pas d'origine, pour cela je cherche un emulateur qui permettrait d'utiliser 2 broches pour communiquer en i2c
je cherche donc un programme en C qui puisse etre utiliser avec le compilateur de ccs et ajouter l'utilisation de l'i2c
|
|
|
|
Aujourd'hui
|
|
|
|
Liens sponsorisés
|
|
|
|
|
27/08/2006, 10h56
|
Sujet emulation i2c pour pic en C - Message #2
|
Date d'inscription: décembre 2005
Messages: 150
|
Re : emulation i2c pour pic en C
Bonjour
Dans le répertoire Drivers de CCS il y a une serie de "serial EEPROM Functions" dont au moins la première la 2401.C repose sur une communication via I2C. Cette fonction ne semble pas faire appel à un hardware spécifique A vérifier
|
|
|
|
27/08/2006, 10h58
|
Sujet emulation i2c pour pic en C - Message #3
|
Date d'inscription: décembre 2005
Âge: 23
Messages: 32
|
Re : emulation i2c pour pic en C
je l'ai vu mais je ne comprends pas bien comment ça fonctionne, je suis débutant
|
|
|
|
27/08/2006, 11h01
|
Sujet emulation i2c pour pic en C - Message #4
|
Date d'inscription: décembre 2005
Âge: 23
Messages: 32
|
Re : emulation i2c pour pic en C
cette fonction utilise directement le protocole i2c, il faut donc que le pic possede deja un bus i2c pour pouvoir s'en servir, hors moi ce que je cherche, c'est justement emuler un protocole i2c sur un pic qui n'a pas ce bus
|
|
|
|
27/08/2006, 11h09
|
Sujet emulation i2c pour pic en C - Message #5
|
Date d'inscription: janvier 2006
Localisation: EURE ET LOIR
Âge: 45
Messages: 5 199
|
Re : emulation i2c pour pic en C
Salut,
l'avantage avec un hardware I2C embarqué dans le µC c'est que tu n'as pas à te soucier de gérer les mécanismes du protocole I2C, il te suffit d'appeler les routines dédiés à la lecture et à l'écriture pour E²PROM en mode I2C.
Comme te le disais Jack dans l'autre topic que tu as ouvert, la gestion par soft de l'I2C nécessite sa bonne connaissance pour avoir de bons résultats.
Il est donc plus commode de choisir un PIC avec I2C embarqué, ce qui te permet d'utiliser les E²PROM série allant de 1Kb à 1Mb au moins.
Si ton appli ne nécessite pas beaucoup d'octets en E²PROM, tu peux aussi choisir un PIC avec E²PROM interne, c'est alors encore plus simple.
__________________
HULK
"Pour la carotte, le lapin est la parfaite incarnation du Mal."
Robert Scheckley.
|
|
|
|
27/08/2006, 11h18
|
Sujet emulation i2c pour pic en C - Message #6
|
Date d'inscription: décembre 2005
Âge: 23
Messages: 32
|
Re : emulation i2c pour pic en C
je comprends bien mais il n'existe pas de pic12Fxxx avec bus i2c, je vais vous expliquer ce que je veux faire:
je veux utiliser des pics tres on marché pour servire d'interface entre un recepteur et le pic principal, de sorte que celui-ci ne soit pas bloqué par l'attente du signal, le 12Fxxx recoit regulierement des infos et les stocke dans une eeprom (ou autre, je ne sais pas) et le pic principale va chercher l'info quand il en a besoin, ce qui lui permet d'avoir la donnée la plus récente
mais si vous trouvez des pics avec horloge interne pas cher (1 à 2 €, voir 3) avec bus i2c et facilement trouvable en france, je suis preneur
ou une autre approche pour réaliser ce que je veux faire
|
|
|
|
27/08/2006, 11h58
|
Sujet emulation i2c pour pic en C - Message #7
|
Date d'inscription: janvier 2006
Localisation: EURE ET LOIR
Âge: 45
Messages: 5 199
|
Re : emulation i2c pour pic en C
Salut,
mon conseil:
soit tu implantes les routines assembleur que tu trouveras sur le site MICROCHIP et qui sont fiables, soit tu t'inspires du lien suivant:
http://www.piclist.com/techref/microchip/i2c-eeprom.htm
Dans les 2 cas tu auras besoin d'un PIC avec un minimum de place pour y loger ce code malgré tout conséquent.
__________________
HULK
"Pour la carotte, le lapin est la parfaite incarnation du Mal."
Robert Scheckley.
|
|
|
|
27/08/2006, 16h07
|
Sujet emulation i2c pour pic en C - Message #8
|
|
Re : emulation i2c pour pic en C
Posté par spilz
je veux utiliser des pics tres on marché pour servire d'interface entre un recepteur et le pic principal, de sorte que celui-ci ne soit pas bloqué par l'attente du signal, le 12Fxxx recoit regulierement des infos et les stocke dans une eeprom (ou autre, je ne sais pas) et le pic principale va chercher l'info quand il en a besoin, ce qui lui permet d'avoir la donnée la plus récente
Hello,
quel est le volume des données à stocker ? il s'agit juste de conserver la dernière valeur ?
ton PIC devra être master I²C pour dialoguer avec le périphérique et slave I²C pour dialoguer avec l'hôte
pour être slave I²C il faut obligatoirement un MCU avec l'interface intégrée en hardware.
l'autre liaison en master pourra être gérée en soft.
A+,
Bruno
|
|
|
|
|
27/08/2006, 20h33
|
Sujet emulation i2c pour pic en C - Message #9
|
Date d'inscription: avril 2003
Localisation: Metz
Messages: 5 849
|
Re : emulation i2c pour pic en C
pour être slave I²C il faut obligatoirement un MCU avec l'interface intégrée en hardware.
l
Pour quelles raisons ?
A+
|
|
|
|
27/08/2006, 22h43
|
Sujet emulation i2c pour pic en C - Message #11
|
Date d'inscription: décembre 2005
Messages: 150
|
Re : emulation i2c pour pic en C
Bonsoir
Réponse au Post #6
Je viens de retrouver une commande de mémoire RAM via I2C utilisant un PIC628 qui ne possède rien de spécifiquement I2C
Cette appli est basée sur les Routines écrites par Alain Reboux
J'ai ensuite migré vers du C en utilisant le compilateur FED toujours avec un 628
En plus de la mémoire I2C il y a un processeur stereo I2C, des 8574 I2C pour gérer des platine à boutons et un moteur pas a pas pour un potentiomètre motorisé + une sortie série pour 2 PIC afficheurs
avec un 628 de qq Euros, pas un 648 qui a 4K de Mémoire
|
|
|
|
27/08/2006, 23h06
|
Sujet emulation i2c pour pic en C - Message #12
|
Date d'inscription: avril 2003
Localisation: Metz
Messages: 5 849
|
Re : emulation i2c pour pic en C
pour une seule raison : en mode slave un dispositif I²C est à la disposition d'un master, qui peut initier une condition de départ de transmission (non négociable) à n'importe quel moment.
pour ne rater aucune transmission il faut donc que la gestion I²C du slave se fasse par hardware, afin que celui-ci prévienne le soft par interruption qu'une transmission démarre.
Tu ne réponds pas vraiment à ma question puisque tu disais dans un post précedent que l'interface devait être intégrée en hardware, ce qui signifie que le µC doit posséder des registres spécialisés I2C.
C'est complètement différent d'une gestion par interruption qui ne nécessite pas forcément ces registres spécialisés.
A+
|
|
|
|
28/08/2006, 00h06
|
Sujet emulation i2c pour pic en C - Message #13
|
|
Re : emulation i2c pour pic en C
Posté par Jack
Tu ne réponds pas vraiment à ma question puisque tu disais dans un post précedent que l'interface devait être intégrée en hardware, ce qui signifie que le µC doit posséder des registres spécialisés I2C.
C'est complètement différent d'une gestion par interruption qui ne nécessite pas forcément ces registres spécialisés.
A+
Hello,
la réponse à ta question "pour quelles raisons il faut une gestion HW pour le mode slave I²C" est que sans module I²C la gestion des signaux du bus par le PIC ne présentera aucune garantie de fiabilité : il suffit que le maitre commence à transmettre pendant que le PIC fait autre chose pour que la transmission échoue.
la gestion HW du module I²C slave est associée a une interruption, mais pas n'importe laquelle :
lorsque le module I²C du PIC est correctement configuré, le registre à décalage est rempli sans intervention logicielle et une interruption est émise lorsque l'adresse est reconnue.
autrement dit, dans le cadre de ce topic, l'implémentation d'une interface de bufferisation I²C sans interface HW de gestion slave présente un risque de perte d'information.
c'est peut-être déjà pour cette raison que l'opérateur pense qu'il a besoin d'un PIC supplémentaire pour buffériser, auquel cas la bufférisation ne sera d'aucun secours.
A+,
Bruno
|
|
|
|
|
28/08/2006, 00h51
|
Sujet emulation i2c pour pic en C - Message #14
|
Date d'inscription: avril 2003
Localisation: Metz
Messages: 5 849
|
Re : emulation i2c pour pic en C
je comprends ce que tu veux dire, mais au vu de l'application, en déclenchant une interruption sur variation de SDA ou de SCL, il doit bien y avoir moyen de ne louper aucun bit de la trame.
A+
|
|
|
|
28/08/2006, 02h31
|
Sujet emulation i2c pour pic en C - Message #15
|
|
Re : emulation i2c pour pic en C
Posté par Jack
je comprends ce que tu veux dire, mais au vu de l'application, en déclenchant une interruption sur variation de SDA ou de SCL, il doit bien y avoir moyen de ne louper aucun bit de la trame.
A+
Sans doute, mais je préfère conseiller à l'opérateur de choisir un MCU adapté, plutôt que de l'inciter à se lancer dans une longue bidouille pour un résultat hasardeux
A+,
Bruno
|
|
|
|
|
28/08/2006, 10h27
|
Sujet emulation i2c pour pic en C - Message #16
|
Date d'inscription: avril 2003
Localisation: Metz
Messages: 5 849
|
Re : emulation i2c pour pic en C
On est bien d'accord, mais visiblement spilz n'a pas le choix.
A+
|
|
|
|
15/02/2007, 15h27
|
Sujet emulation i2c pour pic en C - Message #17
|
Date d'inscription: janvier 2006
Localisation: Montpellier
Messages: 82
|
Re : emulation i2c pour pic en C
Posté par ;738621
Hello,
pour une seule raison : en mode slave un dispositif I²C est à la disposition d'un master, qui peut initier une condition de départ de transmission (non négociable) à n'importe quel moment.
pour ne rater aucune transmission il faut donc que la gestion I²C du slave se fasse par hardware, afin que celui-ci prévienne le soft par interruption qu'une transmission démarre.
A+,
Bruno
pour ca il suffit d'utiliser le port B avec interruption, des qu'il recevra une info, une interruption sera generé tout comme avec un module I²C en hard. C'est largement faisable un I²C en soft, mais il est vrai qu'il est bien plus facile d'utiliser un PIC avec I²C intergré.
Pour info, j'ai deja trouvé sur le net, un type qui a fait un USB en soft sur un 8051, alors l'I²C a coté, c'est du caca. Domage, j'ai plus l'adresse, mais si quelqun le trouve ca m'interresse....
bonne cotinuation........
|
|
|
|
19/03/2008, 10h23
|
Sujet emulation i2c pour pic en C - Message #18
|
Date d'inscription: mai 2006
Messages: 1
|
Re : emulation i2c pour pic en C
Salut spilz,
je voudrais savoir si tu as réussi, à faire ton émulation d'i2c esclave.
Je suis actuellement en train d'essayer de faire la même chose sur un pic 16f627.
J'ai déja des problèmes pour repérer le signal de départ (SDA passe à0 et SCL rest à 1). Alors récupérer l'adresse, renvoyer un Ack et récupérer les data... c'est pas gagné, merci pour ton aide!
|
|
|
|
|
 |
Bienvenue |
 |
Si ceci est votre première visite, vous devez vous inscrire avant de pouvoir envoyer des messages. En étant inscrit vous pourrez poster votre question, participer aux débats, joindre vos images... alors n'attendez-plus, cela vous prendra 1 minute !
Pour commencer à lire les messages, depuis la page d'accueil des forums, sélectionnez le forum qui vous tente et partez ensuite à sa découverte...
|
 |
Publicité |
 |
|
| A voir aussi (Futura Sciences n'est pas responsable du contenu de ces publicités) |
|
|
| Outils |
|
|
| Modes d'affichage |
Mode linéaire
|
Règles de messages
|
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui
Le code HTML peut être employé : non
|
|
| | |