
![]() | #1 (permalink) Top |
User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| I2C - lezione
interessante questo link.. se avete mezz'oretta consiglio una buona lettura.. magari datemi un riscontro: pic: basics I2C-Interface spiega con precisione come usare i modulo hardware del Pic 16F877 e del 16F876 per gestire il protocollo I2C con i 6 registri preposti. Anche se in tedesco si intuisce bene, soprattutto dopo aver letto il datasheet dei due Pic sopra citati. Per esempio come preparare il proprio Pic in modalità Master ovvero per inviare byte.... in sostanza il registro SSPBUF viene usato per caricare il valore da spedire in modalità master oppure il valore da leggere nel caso slave per esempio vogliamo spedire il seguente byte 10110011 : MOVLW B'10110011' MOVF SSPBUF NEL CASO SLAVE INVECE prende il valore ricevuto lo mette in W e poi lo mostra in PORTB come segue: MOVF SSPBUF,W MOVWF PORTB Come inviare dati quindi Modalità Master: movlw B'00001000' ; master mode, clock=Fosc/(4*(SSPADD+1)) movwf SSPCON bsf STATUS, RP0 bsf SSPCON2, SEN bcf STATUS, RP0 Abilita alla trasmissione Send Enable, di seguito controlla se lo SLAVE ha inviato l' Acknowledge segno che ha ricevuto i dati i2c_t1 btfss PIR1, SSPIF ; Testa se lo slave ha inviato l' Acknowledge goto i2c_t1 ; se NO allora ritorna su bcf PIR1, SSPIF ; altrimenti Ok dato ricevuto dallo SLAVE ! vediamo di seguito come invece preparare la modalità SLAVE, per ricevere: i2c_rx bsf STATUS, RP0 bsf SSPCON2, RCEN ; Daten Empfang einschalten bcf STATUS, RP0 i2c_r7 btfss PIR1, SSPIF ; Daten Empfang fertig? goto i2c_r7 ; nein, noch nicht bcf PIR1, SSPIF ; ja, nun noch SSPIF zurücksetzen movf SSPBUF, w ; empfangene Daten -> W movwf RXData ; empfangene Daten -> RXData Ok adesso il dato sta dentro il registro RXData quindi invia un Acknowledge al MASTER ECCO FATTO! bsf STATUS, RP0 bsf SSPCON2, ACKEN ; ACK senden bcf STATUS, RP0 ALTRO LINK BUONO DOVE POTER STUDIARE E' IL SEGUENTE Interfacing PIC microcontrollers: embedded design by interactive simulation - Martin Bates - Google Libri |
![]() | ![]() |
![]() | #2 (permalink) Top |
User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| gtpa010
il protocollo I2C l'ho contemplato per la possibile applicazione GPS... il modulo GPS di cui dispongo è il GTPA010 .. ho trovato il suo datasheet mi sono accorto che usa la UART e non I2C ecco il datasheet http://www.propox.com/download/docs/GPS_GMM_U1LP.pdf a dopo fausto |
![]() | ![]() |
![]() |
Bookmarks |
| |
![]() | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
I2C - lezione | faustog_2 | Circuiti Elettronici | 3 | 23 febbraio 12 11:06 |
Calibration or I2C Error... | CRO_Fek | Batterie e Caricabatterie | 5 | 22 gennaio 12 12:56 |
I2C PIC SLAVE | LeoPG | Circuiti Elettronici | 1 | 17 febbraio 05 19:51 |