Vizitator richard12 Postat Octombrie 21, 2005 Partajează Postat Octombrie 21, 2005 sur ?l écriture dans une eeprom i2c, mon programme doit écrire 40 0ctets dans une eeprom 24lc515 et écrire de préférence par pages, et comme c?est toujours la m?me quantité d?octets qu il doit écrire, donc les adresses devront toujours ?tre séparées de 39 et ainsi de suites. je modifie movlw buffer par movlw 28 pour le datasheet du 24lc515 la capacité d une page est de 64 octets 64K x 8 (512K bit) pouvez vous m?aider avec un exemple merci [email protected] ;***************************************************************************** ; ENVOYER LE BUFFER DANS L'EEPROM * ;***************************************************************************** ;----------------------------------------------------------------------------- ; Envoie le buffer dans l'eeprom ; ; buffer contient les données ? envoyer ; buflen contient le nombre d'octets ? envoyer (détruit apr?s l'exécution) ; eepa contient l'adresse d'écriture ;----------------------------------------------------------------------------- eep_sendbuf call eep_adress ; initialiser pointeur adresse movlw buffer ; charger adresse buffer movwf FSR ; dans pointeur eep_sendb1 movf INDF,w ; charger un octet call i2c_write ; l'envoyer incf FSR,f ; incrémenter pointeur buffer decfsz buflen,f ; décrémenter nbre d'octets restants goto eep_sendb1 ; pas fini, suivant call i2c_stop ; fin du transfert return ; et retour ;C?est toujours aussi simple, on ne s?occupe nullement de l?électronique. Il nous reste ;maintenant notre procédure d?initialisation du pointeur d?adresse. L?adresse ? placer dans le ;pointeur se trouve dans ? eepa ? Les opérations sont un peu plus longues : ;- On envoie un start-condition ;Label 1 ;- On envoie l?adresse du circuit en écriture (écriture de ? 1010 A2 A1 A0 0 ?) ;- On lit l?ack reçu. ;- Si NOACK, on envoie un repeated start-condition et on recommence ? Label 1 ;- Si ACK : ;- On écrit l?octet d?adresse de poids fort (eepa) ;- On écrit l?octet d?adresse de poids faible (eepa+1). ;Une fois de plus (j?insiste), ne confondez pas l?adresse de l?eeprom (1010 A2 A1 A0 ;R/W), avec l?adresse de lecture ou d?écriture de l?octet dans l?eeprom (2 octets eepa). Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum