|
|
View previous topic :: View next topic |
Author |
Message |
zied74 Guest
|
I2c et multi_Slaves |
Posted: Tue Sep 22, 2009 4:42 am |
|
|
Bonjour à tous,
Mon projet consiste en une communication I2c entre un master et 6 Slaves ( Master: PIC 16F876 , 6 slaves:5 PIC16f876 et un RTC DS1307) : le Master récupère la date et l'heure réelle de RTC puis il les communiquent aux slaves via I2C, ceux dernière font des calcul trigonométrique puis renvoient les valeurs calculées au master et rentrent tout de suite (les 5 slaves) dans des boucles infinies d'affichage des valeurs calculées sur des afficheurs 7 segments. Le master dès qu'il récupère la date et l'heure de RTC rentre aussi dans une boucle infinie d'affichage de l'heure réelle sur Afficheurs 7 Segments.
la communication entre le master et les slaves PIC ( mode écriture Master --> slave) se fait par interruption Timer0 du Master chaque 20 secondes, la réception des données par le slave se fait par interruption INT_SSP (Compilateur PIC C).
Mon problème est le suivant :
la communication en mode écriture et lecture avec le RTC est parfaite, par contre avec les 5 slaves : si j'envoi les données (Master --> slave) dès le début de programme càd sans l'interruption Timer0 la communication passe très bien et je vois le bit Ack généré par le slave ( ISIS 7.5 : I2C Debugger) par contre si j'envoi les données par interruption Timer0, il y a un Nack ( pas d'acquitement) généré par le slave. est ce que l'envoi des données par interruption sont non accepté par le slave ou bien c'est la boucle infinie d'affichage du slave qui est tellement rapide ( multiplexage sur 4 digits de l'afficheur) qui bloque la bonne réception, par ce que aussi, lorsque je supprime cette boucle du programme du slave je vois un acquitement par le slave.
Merci et bonne journée à Tous.
++++++++++++++++++
Posts should be in the English language.
Use an online translator if necessary.
-- Forum Moderator
++++++++++++++++++
|
|
|
rnielsen
Joined: 23 Sep 2003 Posts: 852 Location: Utah
|
|
Posted: Tue Sep 22, 2009 9:16 am |
|
|
zied74,
Il est difficile de savoir exactement quel est le problème mai sans avoir vu aucun code. De plus, avec ce conseil d'administration étant pale et un forum anglais on peut pas obtenir de réponses.
Je trouve que certains de mes problèmes de calendrier I2C sont connexes, lorsque le capitaine ne donne pas les esclaves le temps de faire ce qu'ils doivent, avant le maître envoie une autre commande.
Comme je l'ai dit, il est difficile de savoir exactement quel est le problème sans voir votre code.
Ronald |
|
|
zied74 Guest
|
|
Posted: Tue Sep 22, 2009 10:55 am |
|
|
Thanks Ronald,
tomorow I will poste my Source-code Here.
Good night. |
|
|
FvM
Joined: 27 Aug 2008 Posts: 2337 Location: Germany
|
|
Posted: Tue Sep 22, 2009 11:41 am |
|
|
Quote: | Use an online translator if necessary | Can you suggest one, that produces understandable translation of technical french texts? translate.google.com seems to be among the better ones, but still rather garbling.
+++++++++++++++++++
Babelfish is OK. Google is better.
http://babelfish.yahoo.com/
-- Forum Moderator
+++++++++++++++++++
Running a multiplex display routine shouldn't be a serious reason to miss interrupts at a fair rate (e.g. 10 kHz). It's rather a matter of not well-considered software organization. The I2C ISR must not necessarily process the data, just write them to a buffer and return. The problem also isn't specific to I2C slave operation, it's the same e.g. with fast UART receiption. |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|