Skip to content

Commit dc8769a

Browse files
beninidavideJonathan Corbet
authored andcommitted
doc:it_IT: add translation for I2C summary and protocol
This patch adds the italian translation for I2C subsystem summary and protocol. Plus, a reference in the subsystem-apis page. Signed-off-by: Davide Benini <davide.benini@gmail.com> Signed-off-by: Federico Vaga <federico.vaga@vaga.pv.it> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Link: https://lore.kernel.org/r/20240209220126.28042-1-federico.vaga@vaga.pv.it
1 parent 80df668 commit dc8769a

5 files changed

Lines changed: 257 additions & 0 deletions

File tree

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
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.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
3+
=========================
4+
Il sottosistema I2C/SMBus
5+
=========================
6+
7+
Introduzione
8+
============
9+
10+
.. toctree::
11+
:maxdepth: 1
12+
13+
summary
14+
i2c-protocol
15+
16+
Scrivere un device driver
17+
=========================
18+
19+
.. toctree::
20+
:maxdepth: 1
21+
22+
Debugging
23+
=========
24+
25+
.. toctree::
26+
:maxdepth: 1
27+
28+
Slave I2C
29+
=========
30+
31+
.. toctree::
32+
:maxdepth: 1
33+
34+
35+
Argomenti avanzati
36+
==================
37+
38+
.. toctree::
39+
:maxdepth: 1
40+
41+
.. only:: subproject and html
42+
43+
Indici
44+
======
45+
46+
* :ref:`genindex`
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
==========================
2+
Introduzione a I2C e SMBus
3+
==========================
4+
5+
I²C (letteralmente "I al quadrato C" e scritto I2C nella documentazione del
6+
kernel) è un protocollo sviluppato da Philips. É un protocollo lento a 2 fili
7+
(a velocità variabile, al massimo 400KHz), con un'estensione per le velocità
8+
elevate (3.4 MHz). Questo protocollo offre un bus a basso costo per collegare
9+
dispositivi di vario genere a cui si accede sporadicamente e utilizzando
10+
poca banda. Alcuni sistemi usano varianti che non rispettano i requisiti
11+
originali, per cui non sono indicati come I2C, ma hanno nomi diversi, per
12+
esempio TWI (Interfaccia a due fili), IIC.
13+
14+
L'ultima specifica ufficiale I2C è la `"Specifica I2C-bus e manuale utente"
15+
(UM10204) <https://www.nxp.com/webapp/Download?colCode=UM10204>`_
16+
pubblicata da NXP Semiconductors. Tuttavia, è necessario effettuare il login
17+
al sito per accedere al PDF. Una versione precedente della specifica
18+
(revisione 6) è archiviata
19+
`qui <https://web.archive.org/web/20210813122132/
20+
https://www.nxp.com/docs/en/user-guide/UM10204.pdf>`_.
21+
22+
SMBus (Bus per la gestione del sistema) si basa sul protocollo I2C ed è
23+
principalmente un sottoinsieme di protocolli e segnali I2C. Molti dispositivi
24+
I2C funzioneranno su SMBus, ma alcuni protocolli SMBus aggiungono semantica
25+
oltre quanto richiesto da I2C. Le moderne schede madri dei PC si affidano a
26+
SMBus. I più comuni dispositivi collegati tramite SMBus sono moduli RAM
27+
configurati utilizzando EEPROM I2C, e circuiti integrati di monitoraggio
28+
hardware.
29+
30+
Poiché SMBus è principalmente un sottoinsieme del bus I2C,
31+
possiamo farne uso su molti sistemi I2C. Ci sono però sistemi che non
32+
soddisfano i vincoli elettrici sia di SMBus che di I2C; e altri che non possono
33+
implementare tutta la semantica o messaggi comuni del protocollo SMBus.
34+
35+
36+
Terminologia
37+
============
38+
39+
Utilizzando la terminologia della documentazione ufficiale, il bus I2C connette
40+
uno o più circuiti integrati *master* e uno o più circuiti integrati *slave*.
41+
42+
.. kernel-figure:: ../../../i2c/i2c_bus.svg
43+
:alt: Un semplice bus I2C con un master e 3 slave
44+
45+
Un semplice Bus I2C
46+
47+
Un circuito integrato **master** è un nodo che inizia le comunicazioni con gli
48+
slave. Nell'implementazione del kernel Linux è chiamato **adattatore** o bus. I
49+
driver degli adattatori si trovano nella sottocartella ``drivers/i2c/busses/``.
50+
51+
Un **algoritmo** contiene codice generico che può essere utilizzato per
52+
implementare una intera classe di adattatori I2C. Ciascun driver dell'
53+
adattatore specifico dipende da un driver dell'algoritmo nella sottocartella
54+
``drivers/i2c/algos/`` o include la propria implementazione.
55+
56+
Un circuito integrato **slave** è un nodo che risponde alle comunicazioni
57+
quando indirizzato dal master. In Linux è chiamato **client** (dispositivo). I
58+
driver dei dispositivi sono contenuti in una cartella specifica per la
59+
funzionalità che forniscono, ad esempio ``drivers/media/gpio/`` per espansori
60+
GPIO e ``drivers/media/i2c/`` per circuiti integrati relativi ai video.
61+
62+
Per la configurazione di esempio in figura, avrai bisogno di un driver per il
63+
tuo adattatore I2C e driver per i tuoi dispositivi I2C (solitamente un driver
64+
per ciascuno dispositivo).

Documentation/translations/it_IT/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ interfacciarsi con il resto del kernel.
9292

9393
core-api/index
9494
Sincronizzazione nel kernel <locking/index>
95+
subsystem-apis
9596

9697
Strumenti e processi per lo sviluppo
9798
====================================
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
3+
==========================================
4+
Documentazione dei sottosistemi del kernel
5+
==========================================
6+
7+
In questa parte della documentazione si entra nel dettaglio di come funzionano
8+
i sottosistemi specifici del kernel dal punto di vista di uno sviluppatore del
9+
kernel. Molte delle informazioni qui contenute provengono direttamente dai
10+
sorgenti del kernel, con aggiunte di materiale dove è necessario (anche se
11+
talora *non* è stato aggiunto tutto ciò che era necessario).
12+
13+
Sottosistemi principali
14+
-----------------------
15+
16+
.. toctree::
17+
:maxdepth: 1
18+
19+
core-api/index
20+
21+
Interfacce uomo-macchina
22+
------------------------
23+
24+
.. toctree::
25+
:maxdepth: 1
26+
27+
28+
Interfacce di rete
29+
------------------
30+
31+
.. toctree::
32+
:maxdepth: 1
33+
34+
Interfacce per l'archiviazione
35+
------------------------------
36+
37+
.. toctree::
38+
:maxdepth: 1
39+
40+
41+
Interfacce varie
42+
----------------
43+
44+
.. toctree::
45+
:maxdepth: 1
46+
47+
i2c/index

0 commit comments

Comments
 (0)