Futura Sciences
Image de la rubrique en cours

Forum FS Generation

Précédent   Vous êtes ici : Forum FS Generation » Futura Technique » Électronique

Découvrir d'autres sujets sur ces thèmes : , , , , ,


Réponse
Vieux 24/04/2007, 20h32   Sujet Transaction I2C entre deux pics 18f4550 (maître-esclave) - Message #1
lynal1
 
Date d'inscription: avril 2007
Âge: 22
Messages: 6
Transaction I2C entre deux pics 18f4550 (maître-esclave)
Bonjour à tous !

J'ai un projet à mettre en place où je dois faire communiquer deux pics 18F4550 à l'aide de l'I2C. L'un est esclave et l'autre maître.

J'utilise C18 et MPLAB v5.10..

Mon soucis c'est que je sais commander le Maître pour envoyer une donnée à l'esclave, mais pas quand le Maître demande à l'esclave de lui envoyer une donnée.

Avec tous les codes que j'ai trouvé sur Internet, aucun ne me permettait de créer correctement ce programme.

Code basique de l'esclave pour recevoir un octet :

unsigned char I2Cs_ReceiveByte8(unsigned char data)
{
if(I2Cs_DataRdy() == 0)
{
return (-0);
}
else
{
data = I2Cs_ReadByte();
return (0);
}
}


Et maintenant faut que je fasse le même code pour recevoir une chaine de caractère, envoyer un octet et envoyer une chaîne de caractère...

S'il vous plait help !!
lynal1 est déconnecté   Réponse avec citation
Alt Aujourd'hui
Publicité

Beitrag Liens sponsorisés

   
Vieux 24/04/2007, 22h49   Sujet Transaction I2C entre deux pics 18f4550 (maître-esclave) - Message #2
RISC
 
Date d'inscription: novembre 2006
Messages: 677
Re : Transaction I2C entre deux pics 18f4550 (maître-esclave)
lynal1,

Tu utilises une version antédiluvienne de MPLAB...

Je te conseille de télécharger gratuitement la dernière version (7.52) ici : Télécharger MPLAB.

Désinstalle ta version actuelle et installe la nouvelle qui a plein de nouvelles fonctionalités. Il faudra également alors réinstaller le C18 que tu peut télécharger ici : Télécharger le C18 gratuitement (student edition)

Utilises-tu une carte faite maison ?
Quel débogueur / programmateur ?
Quelle version du C18 ?

a+
RISC est déconnecté   Réponse avec citation
Vieux 25/04/2007, 08h51   Sujet Transaction I2C entre deux pics 18f4550 (maître-esclave) - Message #3
lynal1
 
Date d'inscription: avril 2007
Âge: 22
Messages: 6
Re : Transaction I2C entre deux pics 18f4550 (maître-esclave)
Woops, my mistake ! Oui j'utilise en effet la version 7.50 .

Les pics sont montés sur une carte PICDEM FS USB 2.

Avec la librairie C18 j'ai les fonctions de base comme StartI2C() ou StopI2C().

Niveau Maître j'ai déjà fini toute la partie transaction, à savoir :

- Envoi d'un octet,
- Envoi d'un octet + l'adresse de la case mémoire où le slave va devoir enregistrer cette donnée,
- Envoi d'une string,
- Envoi d'une string + la case mémoire

- Réception d'un octet,
- Réception d'un octet, en envoyant d'abord la case mémoire du Slave à laquelle le Master veut lire,
- Idem pour une string.


Au cas où vous auriez le temps, j'ai posté le code maître pour ces transactions là.
Fichiers attachés
Type de fichier : zip Master.zip (10,8 Ko, 150 affichages)
lynal1 est déconnecté   Réponse avec citation
Vieux 25/04/2007, 21h10   Sujet Transaction I2C entre deux pics 18f4550 (maître-esclave) - Message #4
RISC
 
Date d'inscription: novembre 2006
Messages: 677
Re : Transaction I2C entre deux pics 18f4550 (maître-esclave)
lynal,

Il est important d'être sur de la façon dont tu as connecté les 2 PCIS.

Peux-tu me dire précisemment comment ils sont connectés :
1/ 2 cartes PICDEM FS-USB
2/ une carte PICDEM FS USB connecté à un autre micro (comment et quel micro) ?
3/ peux-tu me dire combien de résistances de rappels à Vdd ainsi que leur valeur sont sur les broches SDA et SCL ?
4/ connection par des fils ? si oui quelle distance ?

(si tu as un schéma de ta connection c'est encore mieux

a+
RISC est déconnecté   Réponse avec citation
Vieux 25/04/2007, 22h38   Sujet Transaction I2C entre deux pics 18f4550 (maître-esclave) - Message #5
HULK28
 
Date d'inscription: janvier 2006
Localisation: EURE ET LOIR
Âge: 45
Messages: 5 131
Re : Transaction I2C entre deux pics 18f4550 (maître-esclave)
Citation:
Posté par lynal1 Voir le message

unsigned char I2Cs_ReceiveByte8(unsigned char data)
{
if(I2Cs_DataRdy() == 0)
{
return (-0); c'est quoi ça?
}
else
{
data = I2Cs_ReadByte();
return (0);
}
}
[/color]

*************
__________________
HULK

"Pour la carotte, le lapin est la parfaite incarnation du Mal."
Robert Scheckley.
HULK28 est déconnecté   Réponse avec citation
Vieux 26/04/2007, 09h37   Sujet Transaction I2C entre deux pics 18f4550 (maître-esclave) - Message #6
lynal1
 
Date d'inscription: avril 2007
Âge: 22
Messages: 6
Re : Transaction I2C entre deux pics 18f4550 (maître-esclave)
return (-0);

Heu c'est -1 en fait. Mais j'ai créé une variable de type enum pour les valeurs de retour d'erreur.

Sinon pour le PIC les connections fonctionnement parfaitement, le problème vient juste du code que je ne sais pas créer ^^^

1/ 2 cartes PICDEM FS-USB
Oui les deux pics sont montés sur une carte PICDEM FS-USB, ces cartes connectées à un debugger ICD 2, lesquels sont connectés chacun à un PC par USB.

3/ peux-tu me dire combien de résistances de rappels à Vdd ainsi que leur valeur sont sur les broches SDA et SCL ?

J'utilise deux résistances de rappel de 4k7, une pour SDA et une pour SCL, branchées d'un côté sur +5v. Les valeurs sont bien à +5v au repos, ce n'est pas ça du tout le soucis ^^

4/ connection par des fils ? si oui quelle distance ?

Oui ils sont connectés entre eux par trois fils de 5-10cm (masse, SDA et SCL). Le signal est parfait quand j'envoie un octet avec le Master, je vois bien l'octet et le 9ème bit à 1 pour indiquer un Non-ack du slave.

J'ai déjà réalisé une opération simple d'envoi de master et de réception du slave, le soucis n'est pas là
lynal1 est déconnecté   Réponse avec citation
Vieux 26/04/2007, 16h09   Sujet Transaction I2C entre deux pics 18f4550 (maître-esclave) - Message #7
lynal1
 
Date d'inscription: avril 2007
Âge: 22
Messages: 6
Re : Transaction I2C entre deux pics 18f4550 (maître-esclave)
Hmmm bon j'ai fait quelques tests et il se trouve que côté slave :

- L'interruption a bien lieu : le slave reconnait son adresse.
- Le premier octet envoyé est bien reçu.

Par contre les autres octets ne sont plus reçus. Bizzare... Faut-il mettre des pauses entre chaque envoi d'octet ?
lynal1 est déconnecté   Réponse avec citation
Vieux 29/04/2008, 16h31   Sujet Transaction I2C entre deux pics 18f4550 (maître-esclave) - Message #8
coulox
 
Date d'inscription: avril 2008
Âge: 22
Messages: 11
Re : Transaction I2C entre deux pics 18f4550 (maître-esclave)
salut
as tu résolu ton problème??

il se trouve que moi aussi j'utilise la carte picdem fs usb (pic 18f4550)

je souhaiterai écrire des donné en i2c mais le problème c'est que lorsque je regarde ma clk et ma data avec un osciloscope je vois +5v même après ouverture des ports ..

j ai posé mon probleme ici :
http://forums.futura-sciences.com/sh...=1#post1681064
coulox est déconnecté   Réponse avec citation
Vieux 30/04/2008, 08h19   Sujet Transaction I2C entre deux pics 18f4550 (maître-esclave) - Message #9
HULK28
 
Date d'inscription: janvier 2006
Localisation: EURE ET LOIR
Âge: 45
Messages: 5 131
Re : Transaction I2C entre deux pics 18f4550 (maître-esclave)
Dans ce cas il faut regarder de plus près au niveau du code, une coquille doit s'y trouver.
__________________
HULK

"Pour la carotte, le lapin est la parfaite incarnation du Mal."
Robert Scheckley.
HULK28 est déconnecté   Réponse avec citation
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
communication i2c entre deux pics (Forum Électronique)
Multi-prise maitre-esclave qui ne coupe pas? (Forum Dépannage)
PIC18F452 - Maître-esclave I2c (Forum Électronique)
grveur dvd maitre ou esclave ??? (Forum Matériel - Hardware)
maitre/esclave (Forum Matériel - Hardware)






A voir aussi (Futura Sciences n'est pas responsable du contenu de ces publicités)
Réponse



Outils
Modes d'affichage

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

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Les dernières actualités
09/07 11:28 - Rosetta sort de son hibernation pour un survol d'astéroïde
09/07 09:31 - Le nouveau visage de Mercure révélé par Messenger
08/07 17:12 - Paquet Télécom et contrôle des internautes : rendez-vous en septembre
08/07 15:43 - Le venin d'araignée au secours des neurones
08/07 13:34 - La première carte en haute résolution des connexions du cerveau humain
08/07 11:34 - La théorie de la comète tueuse de mammouth prend du poids !
08/07 10:14 - En bref : Ariane 5 lance deux nouveaux satellites de télécommunications

Fuseau horaire GMT +2. Il est actuellement 12h37.

Propulsé par vBulletin
Copyright © 2000 - 2008, Jelsoft Enterprises Ltd. Tous droits réservés.
Traduction par l'association vBulletin francophone