€•¦BŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒEnglish”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ /i2c/summary”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Simplified)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/zh_CN/i2c/summary”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/zh_TW/i2c/summary”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/ja_JP/i2c/summary”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/ko_KR/i2c/summary”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/sp_SP/i2c/summary”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒItalian”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒIntroduzione a I2C e SMBus”h]”hŒIntroduzione a I2C e SMBus”…””}”(hh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒL/var/lib/git/docbuild/linux/Documentation/translations/it_IT/i2c/summary.rst”h KubhŒ paragraph”“”)”}”(hXgI²C (letteralmente "I al quadrato C" e scritto I2C nella documentazione del kernel) è un protocollo sviluppato da Philips. É un protocollo a 2 fili (a velocità variabile, solitamente fino a 400KHz, e in modalità alta velocità fino a 5 MHz). Questo protocollo offre un bus a basso costo per collegare dispositivi di vario genere a cui si accede sporadicamente e utilizzando poca banda. I2C è ampiamente usato nei sistemi integrati. 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.”h]”hXkI²C (letteralmente “I al quadrato C†e scritto I2C nella documentazione del kernel) è un protocollo sviluppato da Philips. É un protocollo a 2 fili (a velocità variabile, solitamente fino a 400KHz, e in modalità alta velocità fino a 5 MHz). Questo protocollo offre un bus a basso costo per collegare dispositivi di vario genere a cui si accede sporadicamente e utilizzando poca banda. I2C è ampiamente usato nei sistemi integrati. 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.”…””}”(hh¹hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hŒåL'ultima specifica ufficiale I2C è la `"Specifica I2C-bus e manuale utente" (UM10204) `_ pubblicata da NXP Semiconductors, al momento della scrittura si tratta della versione 7”h]”(hŒ)L’ultima specifica ufficiale I2C è la ”…””}”(hhÇhžhhŸNh NubhŒ reference”“”)”}”(hŒf`"Specifica I2C-bus e manuale utente" (UM10204) `_”h]”hŒ2“Specifica I2C-bus e manuale utente†(UM10204)”…””}”(hhÑhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ."Specifica I2C-bus e manuale utente" (UM10204)”Œrefuri”Œ2https://www.nxp.com/docs/en/user-guide/UM10204.pdf”uh1hÏhhÇubhŒtarget”“”)”}”(hŒ5 ”h]”h}”(h]”Œ*specifica-i2c-bus-e-manuale-utente-um10204”ah ]”h"]”Œ."specifica i2c-bus e manuale utente" (um10204)”ah$]”h&]”Œrefuri”hâuh1h㌠referenced”KhhÇubhŒX pubblicata da NXP Semiconductors, al momento della scrittura si tratta della versione 7”…””}”(hhÇhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hXÊ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.”h]”hXÊ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.”…””}”(hhýhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hXPoiché 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.”h]”hXPoiché 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.”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¢)”}”(hhh]”(h§)”}”(hŒ Terminologia”h]”hŒ Terminologia”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjhžhhŸh¶h K!ubh¸)”}”(hŒPIl bus I2C connette uno o più circuiti integrati controllori a dei dispositivi.”h]”hŒPIl bus I2C connette uno o più circuiti integrati controllori a dei dispositivi.”…””}”(hj*hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K#hjhžhubŒkfigure”Œ kernel_figure”“”)”}”(hhh]”hŒfigure”“”)”}”(hhh]”(hŒimage”“”)”}”(hŒˆ.. kernel-figure:: ../../../i2c/i2c_bus.svg :alt: Un semplice bus I2C con un controllore e 3 dispositivi Un semplice Bus I2C ”h]”h}”(h]”h ]”h"]”h$]”h&]”Œalt”Œ6Un semplice bus I2C con un controllore e 3 dispositivi”Œuri”Œi2c/i2c_bus.svg”Œ candidates”}”Œ*”jRsuh1jChj@hŸh¶h KubhŒcaption”“”)”}”(hŒUn semplice Bus I2C”h]”hŒUn semplice Bus I2C”…””}”(hjXhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhŸh¶h K(hj@ubeh}”(h]”Œid1”ah ]”h"]”h$]”h&]”uh1j>hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjhžhhŸh¶h Nubh¸)”}”(hXUn circuito integrato **controllore** (*controller*) è un nodo che inizia le comunicazioni con i dispositivi (*targets*). Nell'implementazione del kernel Linux è chiamato **adattatore** o bus. I driver degli adattatori si trovano nella sottocartella ``drivers/i2c/busses/``.”h]”(hŒUn circuito integrato ”…””}”(hjshžhhŸNh NubhŒstrong”“”)”}”(hŒ**controllore**”h]”hŒ controllore”…””}”(hj}hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j{hjsubhŒ (”…””}”(hjshžhhŸNh NubhŒemphasis”“”)”}”(hŒ *controller*”h]”hŒ controller”…””}”(hj‘hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjsubhŒ<) è un nodo che inizia le comunicazioni con i dispositivi (”…””}”(hjshžhhŸNh Nubj)”}”(hŒ *targets*”h]”hŒtargets”…””}”(hj£hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjsubhŒ7). Nell’implementazione del kernel Linux è chiamato ”…””}”(hjshžhhŸNh Nubj|)”}”(hŒ**adattatore**”h]”hŒ adattatore”…””}”(hjµhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j{hjsubhŒA o bus. I driver degli adattatori si trovano nella sottocartella ”…””}”(hjshžhhŸNh NubhŒliteral”“”)”}”(hŒ``drivers/i2c/busses/``”h]”hŒdrivers/i2c/busses/”…””}”(hjÉhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhjsubhŒ.”…””}”(hjshžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K*hjhžhubh¸)”}”(hXUn **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.”h]”(hŒUn ”…””}”(hjáhžhhŸNh Nubj|)”}”(hŒ **algoritmo**”h]”hŒ algoritmo”…””}”(hjéhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j{hjáubhŒÑ 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 ”…””}”(hjáhžhhŸNh NubjÈ)”}”(hŒ``drivers/i2c/algos/``”h]”hŒdrivers/i2c/algos/”…””}”(hjûhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhjáubhŒ& o include la propria implementazione.”…””}”(hjáhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K/hjhžhubh¸)”}”(hXÚUn circuito integrato **dispositivo** è un nodo che risponde alle comunicazioni quando indirizzato dal controllore. In Linux è chiamato **client**. Nonostante i dispositivi siano circuiti integrati esterni al sistema, Linux può agire come dispositivo (se l'hardware lo permette) e rispondere alla richieste di altri controllori sul bus. Questo verrà chiamato **dispositivo locale** (*local target*). Negli altri casi si parla di **dispositivo remoto** (*remote target*).”h]”(hŒUn circuito integrato ”…””}”(hjhžhhŸNh Nubj|)”}”(hŒ**dispositivo**”h]”hŒ dispositivo”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j{hjubhŒe è un nodo che risponde alle comunicazioni quando indirizzato dal controllore. In Linux è chiamato ”…””}”(hjhžhhŸNh Nubj|)”}”(hŒ **client**”h]”hŒclient”…””}”(hj-hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j{hjubhŒÙ. Nonostante i dispositivi siano circuiti integrati esterni al sistema, Linux può agire come dispositivo (se l’hardware lo permette) e rispondere alla richieste di altri controllori sul bus. Questo verrà chiamato ”…””}”(hjhžhhŸNh Nubj|)”}”(hŒ**dispositivo locale**”h]”hŒdispositivo locale”…””}”(hj?hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j{hjubhŒ (”…””}”(hjhžhhŸNh Nubj)”}”(hŒ*local target*”h]”hŒ local target”…””}”(hjQhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ ). Negli altri casi si parla di ”…””}”(hjhžhhŸNh Nubj|)”}”(hŒ**dispositivo remoto**”h]”hŒdispositivo remoto”…””}”(hjchžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j{hjubhŒ (”…””}”hjsbj)”}”(hŒ*remote target*”h]”hŒ remote target”…””}”(hjuhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ).”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K4hjhžhubh¸)”}”(hŒß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.”h]”(hŒrI driver dei dispositivi sono contenuti in una cartella specifica per la funzionalità che forniscono, ad esempio ”…””}”(hjhžhhŸNh NubjÈ)”}”(hŒ``drivers/media/gpio/``”h]”hŒdrivers/media/gpio/”…””}”(hj•hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhjubhŒ per espansori GPIO e ”…””}”(hjhžhhŸNh NubjÈ)”}”(hŒ``drivers/media/i2c/``”h]”hŒdrivers/media/i2c/”…””}”(hj§hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhjubhŒ* per circuiti integrati relativi ai video.”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K;hjhžhubh¸)”}”(hŒ¶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).”h]”hŒ¶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).”…””}”(hj¿hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K?hjhžhubh¢)”}”(hhh]”(h§)”}”(hŒSinonimi”h]”hŒSinonimi”…””}”(hjÐhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjÍhžhhŸh¶h KDubh¸)”}”(hXCome menzionato precedentemente, per ragioni storiche l'implementazione I2C del kernel Linux usa "adatattore" (*adapter*) per i controllori e "client" per i dispositivi. Un certo numero di strutture dati usano questi sinonimi nei loro nomi. Dunque, durante le discussioni riguardanti l'implementazione dovrete essere a coscienza anche di questi termini. Tuttavia si preferiscono i termini ufficiali.”h]”(hŒuCome menzionato precedentemente, per ragioni storiche l’implementazione I2C del kernel Linux usa “adatattore†(”…””}”(hjÞhžhhŸNh Nubj)”}”(hŒ *adapter*”h]”hŒadapter”…””}”(hjæhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÞubhX) per i controllori e “client†per i dispositivi. Un certo numero di strutture dati usano questi sinonimi nei loro nomi. Dunque, durante le discussioni riguardanti l’implementazione dovrete essere a coscienza anche di questi termini. Tuttavia si preferiscono i termini ufficiali.”…””}”(hjÞhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KFhjÍhžhubeh}”(h]”Œsinonimi”ah ]”h"]”Œsinonimi”ah$]”h&]”uh1h¡hjhžhhŸh¶h KDubh¢)”}”(hhh]”(h§)”}”(hŒTerminologia obsoleta”h]”hŒTerminologia obsoleta”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjhžhhŸh¶h KNubh¸)”}”(hX‰Nelle prime specifiche di I2C, il controllore veniva chiamato "master" ed i dispositivi "slave". Questi termini sono stati resi obsoleti con la versione 7 della specifica. Inoltre, il loro uso viene scoraggiato dal codice di condotta del kernel Linux. Tuttavia, potreste ancora trovare questi termini in pagine non aggiornate. In generale si cerca di usare i termini controllore e dispositivo.”h]”hX‘Nelle prime specifiche di I2C, il controllore veniva chiamato “master†ed i dispositivi “slaveâ€. Questi termini sono stati resi obsoleti con la versione 7 della specifica. Inoltre, il loro uso viene scoraggiato dal codice di condotta del kernel Linux. Tuttavia, potreste ancora trovare questi termini in pagine non aggiornate. In generale si cerca di usare i termini controllore e dispositivo.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KPhjhžhubeh}”(h]”Œterminologia-obsoleta”ah ]”h"]”Œterminologia obsoleta”ah$]”h&]”uh1h¡hjhžhhŸh¶h KNubeh}”(h]”Œ terminologia”ah ]”h"]”Œ terminologia”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K!ubeh}”(h]”Œintroduzione-a-i2c-e-smbus”ah ]”h"]”Œintroduzione a i2c e smbus”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j`Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j:j7hîhëj2j/jjj*j'uŒ nametypes”}”(j:‰hîˆj2‰j‰j*‰uh}”(j7h£hëhåj/jjjÍj'jjhj@uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”jnKs…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.