mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 12:57:53 +00:00
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
This commit is contained in:
parent
80df668b74
commit
dc8769a882
5 changed files with 257 additions and 0 deletions
99
Documentation/translations/it_IT/i2c/i2c-protocol.rst
Normal file
99
Documentation/translations/it_IT/i2c/i2c-protocol.rst
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
=================
|
||||||
|
Il protocollo I2C
|
||||||
|
=================
|
||||||
|
|
||||||
|
Questo documento è una panoramica delle transazioni di base I2C e delle API
|
||||||
|
del kernel per eseguirli.
|
||||||
|
|
||||||
|
Spiegazione dei simboli
|
||||||
|
=======================
|
||||||
|
|
||||||
|
=============== ===========================================================
|
||||||
|
S Condizione di avvio
|
||||||
|
P Condizione di stop
|
||||||
|
Rd/Wr (1 bit) Bit di lettura/scrittura. Rd vale 1, Wr vale 0.
|
||||||
|
A, NA (1 bit) Bit di riconoscimento (ACK) e di non riconoscimento (NACK).
|
||||||
|
Addr (7 bit) Indirizzo I2C a 7 bit. Nota che questo può essere espanso
|
||||||
|
per ottenere un indirizzo I2C a 10 bit.
|
||||||
|
Dati (8 bit) Un byte di dati.
|
||||||
|
|
||||||
|
[..] Fra parentesi quadre i dati inviati da dispositivi I2C,
|
||||||
|
anziché dal master.
|
||||||
|
=============== ===========================================================
|
||||||
|
|
||||||
|
|
||||||
|
Transazione semplice di invio
|
||||||
|
=============================
|
||||||
|
|
||||||
|
Implementato da i2c_master_send()::
|
||||||
|
|
||||||
|
S Addr Wr [A] Dati [A] Dati [A] ... [A] Dati [A] P
|
||||||
|
|
||||||
|
|
||||||
|
Transazione semplice di ricezione
|
||||||
|
=================================
|
||||||
|
|
||||||
|
Implementato da i2c_master_recv()::
|
||||||
|
|
||||||
|
S Addr Rd [A] [Dati] A [Dati] A ... A [Dati] NA P
|
||||||
|
|
||||||
|
|
||||||
|
Transazioni combinate
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Implementato da i2c_transfer().
|
||||||
|
|
||||||
|
Sono come le transazioni di cui sopra, ma invece di uno condizione di stop P
|
||||||
|
viene inviata una condizione di inizio S e la transazione continua.
|
||||||
|
Un esempio di lettura di un byte, seguita da una scrittura di un byte::
|
||||||
|
|
||||||
|
S Addr Rd [A] [Dati] NA S Addr Wr [A] Dati [A] P
|
||||||
|
|
||||||
|
|
||||||
|
Transazioni modificate
|
||||||
|
======================
|
||||||
|
|
||||||
|
Le seguenti modifiche al protocollo I2C possono essere generate
|
||||||
|
impostando questi flag per i messaggi I2C. Ad eccezione di I2C_M_NOSTART, sono
|
||||||
|
di solito necessari solo per risolvere problemi di un dispositivo:
|
||||||
|
|
||||||
|
I2C_M_IGNORE_NAK:
|
||||||
|
Normalmente il messaggio viene interrotto immediatamente se il dispositivo
|
||||||
|
risponde con [NA]. Impostando questo flag, si considera qualsiasi [NA] come
|
||||||
|
[A] e tutto il messaggio viene inviato.
|
||||||
|
Questi messaggi potrebbero comunque non riuscire a raggiungere il timeout
|
||||||
|
SCL basso->alto.
|
||||||
|
|
||||||
|
I2C_M_NO_RD_ACK:
|
||||||
|
In un messaggio di lettura, il bit A/NA del master viene saltato.
|
||||||
|
|
||||||
|
I2C_M_NOSTART:
|
||||||
|
In una transazione combinata, potrebbe non essere generato alcun
|
||||||
|
"S Addr Wr/Rd [A]".
|
||||||
|
Ad esempio, impostando I2C_M_NOSTART sul secondo messaggio parziale
|
||||||
|
genera qualcosa del tipo::
|
||||||
|
|
||||||
|
S Addr Rd [A] [Dati] NA Dati [A] P
|
||||||
|
|
||||||
|
Se si imposta il flag I2C_M_NOSTART per il primo messaggio parziale,
|
||||||
|
non viene generato Addr, ma si genera la condizione di avvio S.
|
||||||
|
Questo probabilmente confonderà tutti gli altri dispositivi sul bus, quindi
|
||||||
|
meglio non usarlo.
|
||||||
|
|
||||||
|
Questo viene spesso utilizzato per raccogliere le trasmissioni da più
|
||||||
|
buffer di dati presenti nella memoria di sistema in qualcosa che appare
|
||||||
|
come un singolo trasferimento verso il dispositivo I2C. Inoltre, alcuni
|
||||||
|
dispositivi particolari lo utilizzano anche tra i cambi di direzione.
|
||||||
|
|
||||||
|
I2C_M_REV_DIR_ADDR:
|
||||||
|
Questo inverte il flag Rd/Wr. Cioè, se si vuole scrivere, ma si ha bisogno
|
||||||
|
di emettere una Rd invece di una Wr, o viceversa, si può impostare questo
|
||||||
|
flag.
|
||||||
|
Per esempio::
|
||||||
|
|
||||||
|
S Addr Rd [A] Dati [A] Dati [A] ... [A] Dati [A] P
|
||||||
|
|
||||||
|
I2C_M_STOP:
|
||||||
|
Forza una condizione di stop (P) dopo il messaggio. Alcuni protocolli
|
||||||
|
simili a I2C come SCCB lo richiedono. Normalmente, non si vuole essere
|
||||||
|
interrotti tra i messaggi di un trasferimento.
|
46
Documentation/translations/it_IT/i2c/index.rst
Normal file
46
Documentation/translations/it_IT/i2c/index.rst
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
=========================
|
||||||
|
Il sottosistema I2C/SMBus
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Introduzione
|
||||||
|
============
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
summary
|
||||||
|
i2c-protocol
|
||||||
|
|
||||||
|
Scrivere un device driver
|
||||||
|
=========================
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Debugging
|
||||||
|
=========
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Slave I2C
|
||||||
|
=========
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
|
||||||
|
Argomenti avanzati
|
||||||
|
==================
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
.. only:: subproject and html
|
||||||
|
|
||||||
|
Indici
|
||||||
|
======
|
||||||
|
|
||||||
|
* :ref:`genindex`
|
64
Documentation/translations/it_IT/i2c/summary.rst
Normal file
64
Documentation/translations/it_IT/i2c/summary.rst
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
==========================
|
||||||
|
Introduzione a I2C e SMBus
|
||||||
|
==========================
|
||||||
|
|
||||||
|
I²C (letteralmente "I al quadrato C" e scritto I2C nella documentazione del
|
||||||
|
kernel) è un protocollo sviluppato da Philips. É un protocollo lento a 2 fili
|
||||||
|
(a velocità variabile, al massimo 400KHz), con un'estensione per le velocità
|
||||||
|
elevate (3.4 MHz). Questo protocollo offre un bus a basso costo per collegare
|
||||||
|
dispositivi di vario genere a cui si accede sporadicamente e utilizzando
|
||||||
|
poca banda. Alcuni sistemi usano varianti che non rispettano i requisiti
|
||||||
|
originali, per cui non sono indicati come I2C, ma hanno nomi diversi, per
|
||||||
|
esempio TWI (Interfaccia a due fili), IIC.
|
||||||
|
|
||||||
|
L'ultima specifica ufficiale I2C è la `"Specifica I2C-bus e manuale utente"
|
||||||
|
(UM10204) <https://www.nxp.com/webapp/Download?colCode=UM10204>`_
|
||||||
|
pubblicata da NXP Semiconductors. Tuttavia, è necessario effettuare il login
|
||||||
|
al sito per accedere al PDF. Una versione precedente della specifica
|
||||||
|
(revisione 6) è archiviata
|
||||||
|
`qui <https://web.archive.org/web/20210813122132/
|
||||||
|
https://www.nxp.com/docs/en/user-guide/UM10204.pdf>`_.
|
||||||
|
|
||||||
|
SMBus (Bus per la gestione del sistema) si basa sul protocollo I2C ed è
|
||||||
|
principalmente un sottoinsieme di protocolli e segnali I2C. Molti dispositivi
|
||||||
|
I2C funzioneranno su SMBus, ma alcuni protocolli SMBus aggiungono semantica
|
||||||
|
oltre quanto richiesto da I2C. Le moderne schede madri dei PC si affidano a
|
||||||
|
SMBus. I più comuni dispositivi collegati tramite SMBus sono moduli RAM
|
||||||
|
configurati utilizzando EEPROM I2C, e circuiti integrati di monitoraggio
|
||||||
|
hardware.
|
||||||
|
|
||||||
|
Poiché SMBus è principalmente un sottoinsieme del bus I2C,
|
||||||
|
possiamo farne uso su molti sistemi I2C. Ci sono però sistemi che non
|
||||||
|
soddisfano i vincoli elettrici sia di SMBus che di I2C; e altri che non possono
|
||||||
|
implementare tutta la semantica o messaggi comuni del protocollo SMBus.
|
||||||
|
|
||||||
|
|
||||||
|
Terminologia
|
||||||
|
============
|
||||||
|
|
||||||
|
Utilizzando la terminologia della documentazione ufficiale, il bus I2C connette
|
||||||
|
uno o più circuiti integrati *master* e uno o più circuiti integrati *slave*.
|
||||||
|
|
||||||
|
.. kernel-figure:: ../../../i2c/i2c_bus.svg
|
||||||
|
:alt: Un semplice bus I2C con un master e 3 slave
|
||||||
|
|
||||||
|
Un semplice Bus I2C
|
||||||
|
|
||||||
|
Un circuito integrato **master** è un nodo che inizia le comunicazioni con gli
|
||||||
|
slave. Nell'implementazione del kernel Linux è chiamato **adattatore** o bus. I
|
||||||
|
driver degli adattatori si trovano nella sottocartella ``drivers/i2c/busses/``.
|
||||||
|
|
||||||
|
Un **algoritmo** contiene codice generico che può essere utilizzato per
|
||||||
|
implementare una intera classe di adattatori I2C. Ciascun driver dell'
|
||||||
|
adattatore specifico dipende da un driver dell'algoritmo nella sottocartella
|
||||||
|
``drivers/i2c/algos/`` o include la propria implementazione.
|
||||||
|
|
||||||
|
Un circuito integrato **slave** è un nodo che risponde alle comunicazioni
|
||||||
|
quando indirizzato dal master. In Linux è chiamato **client** (dispositivo). I
|
||||||
|
driver dei dispositivi sono contenuti in una cartella specifica per la
|
||||||
|
funzionalità che forniscono, ad esempio ``drivers/media/gpio/`` per espansori
|
||||||
|
GPIO e ``drivers/media/i2c/`` per circuiti integrati relativi ai video.
|
||||||
|
|
||||||
|
Per la configurazione di esempio in figura, avrai bisogno di un driver per il
|
||||||
|
tuo adattatore I2C e driver per i tuoi dispositivi I2C (solitamente un driver
|
||||||
|
per ciascuno dispositivo).
|
|
@ -92,6 +92,7 @@ interfacciarsi con il resto del kernel.
|
||||||
|
|
||||||
core-api/index
|
core-api/index
|
||||||
Sincronizzazione nel kernel <locking/index>
|
Sincronizzazione nel kernel <locking/index>
|
||||||
|
subsystem-apis
|
||||||
|
|
||||||
Strumenti e processi per lo sviluppo
|
Strumenti e processi per lo sviluppo
|
||||||
====================================
|
====================================
|
||||||
|
|
47
Documentation/translations/it_IT/subsystem-apis.rst
Normal file
47
Documentation/translations/it_IT/subsystem-apis.rst
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
==========================================
|
||||||
|
Documentazione dei sottosistemi del kernel
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
In questa parte della documentazione si entra nel dettaglio di come funzionano
|
||||||
|
i sottosistemi specifici del kernel dal punto di vista di uno sviluppatore del
|
||||||
|
kernel. Molte delle informazioni qui contenute provengono direttamente dai
|
||||||
|
sorgenti del kernel, con aggiunte di materiale dove è necessario (anche se
|
||||||
|
talora *non* è stato aggiunto tutto ciò che era necessario).
|
||||||
|
|
||||||
|
Sottosistemi principali
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
core-api/index
|
||||||
|
|
||||||
|
Interfacce uomo-macchina
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
|
||||||
|
Interfacce di rete
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Interfacce per l'archiviazione
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
|
||||||
|
Interfacce varie
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
i2c/index
|
Loading…
Reference in a new issue