deebae Inserito: 7 dicembre 2005 Segnala Share Inserito: 7 dicembre 2005 (modificato) Ciao ragazzi, ho appena fatto una richiesta su questo forum e mi avete risposto praticamente subito... grazie 1000!!Ho a disposizione un PIC 16F628 e il mio progetto sarebbe quello di collegarci un EEPROM della serie 24LC e programmarla in maniera Seriale. Ho trovato qualcosina in giro per la rete solamente che non è che abbia capito molto. Mi potreste spiegare con parole povere (mooolto povere) come funziona il bus i2c (già implementato nel 16f628). NOn mi è chiaro anche il collegamento circuitale del pic con la eeprom.Ps: la eeprom la devo scrivere in maniera seriale, cioè con i pin A1 A2 A3 cortocircuitati...Il linguaggio che intendo utilizzare è il C (con picclite)l'unico traguardo che ho raggiunto finora è leggere e scrivere sulla eeprom interna del pic con questa routine:Citazione:/* ******************************************************************** Funzione per la scrittura dati nella memoria EEprom del PIC ** Author : Antonio Bruno 08/2003 ** *******************************************************************/#include <pic16f6x.h>void eeprom_w(char addr,char value){EEADR=addr; // indirizzo cella memoria eepromEEDATA=value; // valore da memorizzareGIE=0; // disabilita interruptWREN=1; // abilita la scritturaEECON2=0x55; // Sequenza richiestaEECON2=0xAA;WR=1;while(WR);WREN=0;GIE=1; // riabilita global interrupt}/* ******************************************************************** Funzione per la ettura dati dalla memoria EEprom del PIC ** Author : Antonio Bruno 08/2003 ** *******************************************************************/unsigned char eeprom_r(char addr){EEADR=addr; // indirizzo cella memoria eepromRD=1;return EEDATA;}dite che c'è modo di modificarla per comunicare con una eeprom ESTERNA?? Modificato: 7 dicembre 2005 da deebae Link al commento Condividi su altri siti More sharing options...
deebae Inserita: 9 dicembre 2005 Autore Segnala Share Inserita: 9 dicembre 2005 nessuno sa aiutarmi... Link al commento Condividi su altri siti More sharing options...
deebae Inserita: 18 dicembre 2005 Autore Segnala Share Inserita: 18 dicembre 2005 ragazzi ho provato in tutti i modi con questa routine:http://www.jofi.it/fiser/apex/Ms_i2c.cma non ci riesco proprio!! i pin sono giusti (li ho provati con dei led e una routine di test) ma sulla eeprom non scrive proprio nulla. Io devo farlo su una 2402, è possibile che la routine non sia compatibile con questa eepromo??? Link al commento Condividi su altri siti More sharing options...
microst Inserita: 19 dicembre 2005 Segnala Share Inserita: 19 dicembre 2005 ciao,volevo informarti che il 16f628 non implementa il protocollo I2C.Le routine che tu hai riportato sono inerenti alla programmazione della memoria EEPROM del pic stesso.Se vuoi implementare il protocollo I2C con questo pic devi usare opportune routine.Vedi nel sito della MicroChip. troverai routine applicabili ai micro della famiglia 16xx.Comunque per imparare a programmare i pic bisogna cercare di implementare le routinee e non copiarle ( al massimo adattarle) e cercare di usare sopratutto l'ASM Link al commento Condividi su altri siti More sharing options...
deebae Inserita: 19 dicembre 2005 Autore Segnala Share Inserita: 19 dicembre 2005 bhè, io ho scelto il C perché è molto più immediato, poi non mi interessa sapere TUTTO sui pic. E poi comunque basta che faccio #asm e inserisco i comandi a basso livello. Tutte le cose che sto facendo con il pic (non molte a dire la verità) le sto facendo x conto mio...Infatti lo so che la prima routine che ho postato è relativa alla eeprom interna, la seconda invece riguarda l'implementazione "software" della routine I2C, l'ho letta e capita ma, sinceramente, con le mie conoscenze scrivere da zero una routine per l'I2C mi sembra difficile. Dici che la 2402 ha la memoria strutturata diversamente dalla 2416? Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora