~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/it_IT/i2c/i2c-protocol.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 =================
  2 Il protocollo I2C
  3 =================
  4 
  5 Questo documento è una panoramica delle transazioni di base I2C e delle API
  6 del kernel per eseguirli.
  7 
  8 Spiegazione dei simboli
  9 =======================
 10 
 11 =============== ===========================================================
 12 S               Condizione di avvio
 13 P               Condizione di stop
 14 Rd/Wr (1 bit)   Bit di lettura/scrittura. Rd vale 1, Wr vale 0.
 15 A, NA (1 bit)   Bit di riconoscimento (ACK) e di non riconoscimento (NACK).
 16 Addr  (7 bit)   Indirizzo I2C a 7 bit. Nota che questo può essere espanso
 17                 per ottenere un indirizzo I2C a 10 bit.
 18 Dati  (8 bit)   Un byte di dati.
 19 
 20 [..]            Fra parentesi quadre i dati inviati da dispositivi I2C,
 21                 anziché dal master.
 22 =============== ===========================================================
 23 
 24 
 25 Transazione semplice di invio
 26 =============================
 27 
 28 Implementato da i2c_master_send()::
 29 
 30   S Addr Wr [A] Dati [A] Dati [A] ... [A] Dati [A] P
 31 
 32 
 33 Transazione semplice di ricezione
 34 =================================
 35 
 36 Implementato da i2c_master_recv()::
 37 
 38   S Addr Rd [A] [Dati] A [Dati] A ... A [Dati] NA P
 39 
 40 
 41 Transazioni combinate
 42 =====================
 43 
 44 Implementato da i2c_transfer().
 45 
 46 Sono come le transazioni di cui sopra, ma invece di uno condizione di stop P
 47 viene inviata una condizione di inizio S e la transazione continua.
 48 Un esempio di lettura di un byte, seguita da una scrittura di un byte::
 49 
 50   S Addr Rd [A] [Dati] NA S Addr Wr [A] Dati [A] P
 51 
 52 
 53 Transazioni modificate
 54 ======================
 55 
 56 Le seguenti modifiche al protocollo I2C possono essere generate
 57 impostando questi flag per i messaggi I2C. Ad eccezione di I2C_M_NOSTART, sono
 58 di solito necessari solo per risolvere problemi di un dispositivo:
 59 
 60 I2C_M_IGNORE_NAK:
 61     Normalmente il messaggio viene interrotto immediatamente se il dispositivo
 62     risponde con [NA]. Impostando questo flag, si considera qualsiasi [NA] come
 63     [A] e tutto il messaggio viene inviato.
 64     Questi messaggi potrebbero comunque non riuscire a raggiungere il timeout
 65     SCL basso->alto.
 66 
 67 I2C_M_NO_RD_ACK:
 68     In un messaggio di lettura, il bit A/NA del master viene saltato.
 69 
 70 I2C_M_NOSTART:
 71     In una transazione combinata, potrebbe non essere generato alcun
 72     "S Addr Wr/Rd [A]".
 73     Ad esempio, impostando I2C_M_NOSTART sul secondo messaggio parziale
 74     genera qualcosa del tipo::
 75 
 76       S Addr Rd [A] [Dati] NA Dati [A] P
 77 
 78     Se si imposta il flag I2C_M_NOSTART per il primo messaggio parziale,
 79     non viene generato Addr, ma si genera la condizione di avvio S.
 80     Questo probabilmente confonderà tutti gli altri dispositivi sul bus, quindi
 81     meglio non usarlo.
 82 
 83     Questo viene spesso utilizzato per raccogliere le trasmissioni da più
 84     buffer di dati presenti nella memoria di sistema in qualcosa che appare
 85     come un singolo trasferimento verso il dispositivo I2C. Inoltre, alcuni
 86     dispositivi particolari lo utilizzano anche tra i cambi di direzione.
 87 
 88 I2C_M_REV_DIR_ADDR:
 89     Questo inverte il flag Rd/Wr. Cioè, se si vuole scrivere, ma si ha bisogno
 90     di emettere una Rd invece di una Wr, o viceversa, si può impostare questo
 91     flag.
 92     Per esempio::
 93 
 94       S Addr Rd [A] Dati [A] Dati [A] ... [A] Dati [A] P
 95 
 96 I2C_M_STOP:
 97     Forza una condizione di stop (P) dopo il messaggio. Alcuni protocolli
 98     simili a I2C come SCCB lo richiedono. Normalmente, non si vuole essere
 99     interrotti tra i messaggi di un trasferimento.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php