blueburry
Messages postés50Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention22 mai 2006
-
18 avril 2006 à 14:10
midou_gf
Messages postés3Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention27 avril 2011
-
27 avril 2011 à 06:04
Bonjour,
je suis en train de programmer un pic 16F877 et je voudrais envoyer des donnees qui arrivent dans le pic a travers le registre USART (RCSTA) a une memoire eeprom (24LC512) connectee au pic via le bus I2C.
Pour gagner du temps, je compte ecrire ds la memoire eeprom page par page (128 octets d'un seul coup). Est-ce que je peux directement envoyer les octets qui arrivent ds RCREG au bus I2C ou je dois definir un buffer de 128 octets ds la memoire RAM du pic et envoyer ce buffer via I2C?
Est-ce que vous pouvez me donner des liens utiles ou m'ecrire un sous programme qui pourraient m'aider a realiser ceci?
phenojeff
Messages postés87Date d'inscriptionjeudi 10 octobre 2002StatutMembreDernière intervention 4 avril 2008 18 avril 2006 à 16:26
Bonjour
"Est-ce que je peux directement envoyer les octets qui arrivent ds RCREG"
la reponse est non car le i2c vire a 400khz
et ton bus usart vire plus vite tu aurait rapidement des overflow
le mieux est que tu recoi tes 128 octet du usart et apres tu les ecrit dans l eeprom page par page moi je ferait un petit protocol
comande,nombre octet total, adress high & low, ( data)
exemple
comande 45h ecriture dun page
nombre octet total 84h 4 octet comande + 128 data =132
adress high 0h
adress low 0h //debut de leeprom
data 128 octet
et la tu renvoi une confirmation a ton logiciel 454F4B pour lui dire ses OK
je les deja faite sur un 16f877 avec un 24LC256 mais des page de 64 octet
blueburry
Messages postés50Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention22 mai 2006 18 avril 2006 à 20:39
Merci phenojeff pour ta reponse mais sincerement je n'ai pas tres bien compris ton protocole, si tu l'as deja fait une fois est-ce que tu pourras me faire une copie de ton code source?
g une autre question: je compte remplir plusieurs pages de eeprom et donc kan je passe d'une page a une autre, ou devront passer les donnees qui continuent a transiter dans le RCREG? je ne risque pas d'avoir d'overflow ds ce cas?
phenojeff
Messages postés87Date d'inscriptionjeudi 10 octobre 2002StatutMembreDernière intervention 4 avril 2008 18 avril 2006 à 20:48
re si tu control bien le usart il y a pas de danger tout ce que tu as besion ses un bank de 130 octet
tu recoi ladress et les 128 octet du usart que tu mais en bank
et appres tu ecrit ou lit sur ton 24LC512
et apres tu confirme a ton logiciel quil peu continuer
je vais regarder dans une minute ce que jai faite sur le 877 en eeprom
et te dire ca
a++
phenojeff
Messages postés87Date d'inscriptionjeudi 10 octobre 2002StatutMembreDernière intervention 4 avril 2008 18 avril 2006 à 21:11
jai regarder ca jai une souce dun 876 et 877 mais ca date de quelque annee
depuis jai apris des truc sur le usart la fason de recevoir et d envoyer les donner plus simplement
je vais tacher de texpliquer le truc quand ont sait pas combien octet ont doit recevoir du PC quand le pic recoie le premier octet tu active le Timer0 au second octet tu remais le Timer0 a 0 ect et quand le timer deborde sest quil ny a plus rien qui est recu du usart et la tu peu aller lire la tram recu
je peu te maitre ce que jai faite comme test ma source I2C dans mon cas cetait une page de 64 octet dit moi ou tu veux ca ou envoi moi un email
Vous n’avez pas trouvé la réponse que vous recherchez ?
mplab
Messages postés5Date d'inscriptionmardi 6 février 2007StatutMembreDernière intervention23 juillet 2010 23 juil. 2010 à 17:46
Salut blueburry et phenojeff, je voudrais aussi avoir l'application qui gère le usart et l'i2c pour une application que je suis entrain de developper. Merci
midou_gf
Messages postés3Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention27 avril 2011 27 avril 2011 à 06:04
bonjour a tous
je cherche comment faire communiquer 2 PICs 16F877 via leur port série
8 entrée tor sur port A et C du 1ere PIC 16F877, envoi sur port série
réception sur port série et transfert sur port B du 2eme PIC16F877
merci d'avance pour votre aide