|
maelia
23 messages
 De passage
|
30-08-2011 11:18
Bonjour à tous
J'utilise le micro dsPIC30F4013 30I/P(e3) 0839JKU MICROCHIP
Je souhaite extraire les informations d'une boussole électronique (CMPS03) par I2C ce que j'ai déja fait avec succés avec PIC16F876
Avec le dsPIC4013 rien à faire je ne peux communiquer......?
J'ai fini par trouver une explication, je ne peux initialiser le registre I2CCON lequel met en sce les pins dédiées à l'I2C (SCL,SDA)
ex bset I2CCON,#I2CEN => toujours I2CCON=0x0000 et non 0x8000
or mov #0x8000,w0
mov w0,I2CCON => toujours I2CCON=0x0000 et non 0x8000
or bset I2CCON,#15 => toujours I2CCON=0x0000 et non 0x8000
Mystère ?
Quelqu'un aurait un petit tuyau ?
Merci d'avance
|
|
Loblick
447 messages
 Habitué
|
30-08-2011 12:05
Bonjour,
As-tu jeté un œil sur les erratas? Elles sont disponibles sur le site de Microchip, y en a pas mal qui concernent l'I²C!
Est-ce que le registre I2CCON est déclaré à la bonne adresse (0x0206)?
A+,
Loïc
|
|
maelia
23 messages
 De passage
|
30-08-2011 17:49
Merci pour ta réponse
J'ai parcouru les erratas sans rien trouver et pour causes ce qui suit et puis ce serait le 2 eme gros pb sur mon pic (précédent pb sur LVDIN)
Je viens de trouver les réponses après presque 1 semaine de marnage
Voila les erreurs......
j'ai vérifié avec MPLAB SIM le registre IC2CON au lieu de I2CCON !!!!
en fait I2CCON était correctement paramétré mais ca ne marchait pas ,c'était l'arbre qui cachait la foret
Les raisons étaient les suivantes ( je faisais les tests sur une maquette avec fils volants)
=> mauvais contact sur SDA , résistance de rappel ,vielle résistance , présence de colle provenant des rubans de résistances encrassant le fil pas évident à desseller (bol)
=> lors de la 2 eme écriture de l'adresse physique de l'esclave avec bit R/W à 1 (pour déclencher la lecture) qui est le premier bit j'ai donc classiquement fait l'erreur:
bset Tartampion,#1 au lieu de #0 (c'est le premier bit )
à partir de la ca marche mais très mal
=> vitesse de transmission trop élevée 400kHz pour des fils volants de 10 cm environ
En passant à 100 kHz enfin un bon résultat .......je pense pouvoir passer à 400 voir 1MHz sur la platine définitive (on verra ?)
Merci encore pour ta réponse
|