{"id":7389,"date":"2020-07-08T09:09:03","date_gmt":"2020-07-08T07:09:03","guid":{"rendered":"http:\/\/www.moreware.org\/wp\/?p=7389"},"modified":"2020-07-04T17:45:44","modified_gmt":"2020-07-04T15:45:44","slug":"protocolli-di-comunicazione-su-sbc-uart-i2c-spi","status":"publish","type":"post","link":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/","title":{"rendered":"Protocolli di comunicazione su SBC: UART, I2C, SPI"},"content":{"rendered":"<p style=\"text-align: justify;\"><cite>Nell&#8217;articolo di oggi spiegheremo quali siano e come funzionino i protocolli di comunicazione seriale UART, I2C e SPI per <a title=\"Arduino\" class=\"aalmanual\" target=\"_blank\"   href=\"https:\/\/www.amazon.it\/gp\/search?ie=UTF8&#38;tag=morewareblog-21&#38;linkCode=ur2&#38;linkId=40df2ca3e29e0dde966f711be6faeac5&#38;camp=3414&#38;creative=21718&#38;index=aps&#38;keywords=arduino\">Arduino<\/a> e <a title=\"\" class=\"aalmanual\" target=\"_blank\"   href=\"https:\/\/www.amazon.it\/gp\/search?ie=UTF8&#38;tag=morewareblog-21&#38;linkCode=ur2&#38;linkId=82656ec7b17752ecd8d9f7203c331310&#38;camp=3414&#38;creative=21718&#38;index=aps&#38;keywords=raspberry, raspberrypi, raspberry PI\">Raspberry PI<\/a>.<\/cite><\/p>\n<p style=\"text-align: justify;\">Quando si comunica con una scheda microcontrollore come un <a title=\"Arduino\" class=\"aalmanual\" target=\"_blank\"   href=\"https:\/\/www.amazon.it\/gp\/search?ie=UTF8&#38;tag=morewareblog-21&#38;linkCode=ur2&#38;linkId=40df2ca3e29e0dde966f711be6faeac5&#38;camp=3414&#38;creative=21718&#38;index=aps&#38;keywords=arduino\">Arduino<\/a> UNO, i pin digitali e analogici non saranno sempre sufficienti per tutti i progetti. Per utilizzare le periferiche di bordo per molti altri progetti avanzati saranno necessari protocolli e collegamenti specializzati. I protocolli di comunicazione pi\u00f9 comuni su un <a title=\"Arduino\" class=\"aalmanual\" target=\"_blank\"   href=\"https:\/\/www.amazon.it\/gp\/search?ie=UTF8&#38;tag=morewareblog-21&#38;linkCode=ur2&#38;linkId=40df2ca3e29e0dde966f711be6faeac5&#38;camp=3414&#38;creative=21718&#38;index=aps&#38;keywords=arduino\">Arduino<\/a> sono <a href=\"https:\/\/www.moreware.org\/wp\/blog\/tag\/UART\">UART<\/a>, <a href=\"https:\/\/www.moreware.org\/wp\/blog\/tag\/I2C\">I2C<\/a> e <a href=\"https:\/\/www.moreware.org\/wp\/blog\/tag\/SPI\">SPI<\/a>: si tratta in tutti e tre i casi di <strong>protocolli di comunicazione seriale<\/strong>.<\/p>\n<p style=\"text-align: justify;\">La comunicazione seriale \u00e8 un metodo di comunicazione utilizzato nelle telecomunicazioni. In questo protocollo i dati vengono trasmessi un bit alla volta in ordine sequenziale su di un canale di comunicazione. La comunicazione parallela, al contrario, rappresenta un protocollo di comunicazione in cui pi\u00f9 bit di dati vengono trasmessi contemporaneamente (&#8220;in parallelo&#8221;) su di un canale di comunicazione (bus).<\/p>\n<p style=\"text-align: justify;\">La trasamissione con protocollo seriale \u00e8 di solito pi\u00f9 semplice da implementare e da gestire rispetto alla parallela, meno suscettibile alle interferenze e pi\u00f9 economica da realizzare.<\/p>\n<h2 style=\"text-align: justify;\">UART<\/h2>\n<p style=\"text-align: justify;\">UART \u00e8 l&#8217;acronimo di <strong>Universal Asynchronous Receiver \/ Transmitter<\/strong>. Supporta la trasmissione seriale di dati bidirezionale, ed \u00e8 asincrona.<\/p>\n<p style=\"text-align: justify;\">La comunicazione si dice <strong>asincrona<\/strong> quando non dipende da un segnale di clock sincronizzato tra i due dispositivi che comunicano insieme. Il sistema UART funziona in <em>full-duplex<\/em>: ci\u00f2 significa che i dati possono essere trasmessi e ricevuti contemporaneamente da entrambi i lati della comunicazione. Utilizza 2 linee dati chiamate <strong>TX<\/strong> (per la trasmissione) ed <strong>RX<\/strong> (per la ricezione) e una linea di terra per discriminare il segnale digitale e consentire la comunicazione.<\/p>\n<p style=\"text-align: justify;\">Lo schema di collegamento hardware \u00e8 rappresentato di seguito.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7425\" src=\"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/proto1.jpg?resize=793%2C280&#038;ssl=1\" alt=\"Protoicollo uart i2c spi\" width=\"793\" height=\"280\" srcset=\"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/proto1.jpg?w=939&amp;ssl=1 939w, https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/proto1.jpg?resize=300%2C106&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/proto1.jpg?resize=768%2C271&amp;ssl=1 768w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><\/p>\n<h2 style=\"text-align: justify;\">I2C<\/h2>\n<p>I2C (o I<sup>2<\/sup>C, i IIC) sta per <strong>Inter Integrated Circuit<\/strong>. \u00c8 un bus seriale bidirezionale semplice a due fili, in cui le connessioni vengono utilizzate per trasmettere informazioni tra dispositivi collegati al bus. Il classico bus I\u00b2C \u00e8 composto da almeno un master ed uno slave, ma la situazione pi\u00f9 frequente vede un singolo master e pi\u00f9 slave. I2C consente di collegare <strong>fino a 128 dispositivi<\/strong> su di una sola scheda madre.<\/p>\n<p>Il protocollo hardware dell&#8217;I2C richiede due linee seriali di comunicazione:<\/p>\n<ul>\n<li><strong>SDA<\/strong> (Serial DAta) per i dati<\/li>\n<li><strong>SCL<\/strong> (Serial CLock) per il clock (per la presenza di questo segnale l&#8217;I2C \u00e8 un bus <strong>sincrono<\/strong>)<\/li>\n<\/ul>\n<p>Va aggiunta una connessione di riferimento detta, talvolta impropriamente, GND e una linea di alimentazione Vdd a cui sono connessi i resistori di <em>pull-up<\/em>.<\/p>\n<p>Lo schema di collegamento hardware \u00e8 il seguente.<\/p>\n<figure id=\"attachment_7427\" aria-labelledby=\"figcaption_attachment_7427\" class=\"wp-caption aligncenter\" style=\"width: 793px\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-7427 size-large\" title=\"Di en:user:Cburnett - Own work made with Inkscape, CC BY-SA 3.0, https:\/\/commons.wikimedia.org\/w\/index.php?curid=1472017\" src=\"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/I2C.svg_.png?resize=793%2C280&#038;ssl=1\" alt=\"Protocollo uart i2c spi\" width=\"793\" height=\"280\" srcset=\"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/I2C.svg_.png?resize=1024%2C362&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/I2C.svg_.png?resize=300%2C106&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/I2C.svg_.png?resize=768%2C271&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/I2C.svg_.png?resize=1536%2C542&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/I2C.svg_.png?w=1920&amp;ssl=1 1920w, https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/I2C.svg_.png?w=1586&amp;ssl=1 1586w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><figcaption id=\"figcaption_attachment_7427\" class=\"wp-caption-text\"><strong>Connessione master\/slave con resistori di pull-up<\/strong><\/figcaption><\/figure>\n<h2 style=\"text-align: justify;\">SPI<\/h2>\n<p style=\"text-align: justify;\">Anche il <strong>Serial Peripheral Interface<\/strong> o <strong>SPI<\/strong> presenta un sistema di comunicazione seriale, sincrono e <em>full-duplex<\/em> tra un microcontrollore e altri circuiti integrati o tra pi\u00f9 microcontrollori.<\/p>\n<p style=\"text-align: justify;\">Rispetto a UART e I2C, esso \u00e8 il protocollo di comunicazione pi\u00f9 veloce con 8 Mb o pi\u00f9 dati velocit\u00e0 di trasmissione. In genere <strong>\u00e8 pi\u00f9 veloce grazie al suo protocollo semplice<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Le linee di dati \/ clock sono condivise tra i dispositivi e ogni dispositivo richieder\u00e0 un indirizzo univoco.<\/p>\n<p style=\"text-align: justify;\">Il protocollo si basa su 4 segnali (si riportano i nomi dei segnali che possono variare a seconda del costruttore. Consultare il datasheet del componente che si intende utilizzare in caso di dubbi):<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>SCLK<\/strong> &#8211; SCK: Serial Clock (emesso dal master)<\/li>\n<li>SDI \u2013 <strong>MISO<\/strong> \u2013 SOMI \u2013 DI &#8211; SO: Serial Data Input, Master Input Slave Output (ingresso per il master ed uscita per lo slave)<\/li>\n<li>SDO \u2013 <strong>MOSI<\/strong> \u2013 SIMO \u2013 DO \u2013 SI: Serial Data Output, Master Output Slave Input (uscita dal master)<\/li>\n<li><strong>CS<\/strong> \u2013 SS \u2013 nCS \u2013 nSS \u2013 STE: Chip Select, Slave Select, emesso dal master per scegliere con quale dispositivo slave vuole comunicare<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Di questi il Chip Select (CS o SS) non \u00e8 indispensabile in tutte le applicazioni.<\/p>\n<p style=\"text-align: justify;\">La trasmissione dei dati sul bus SPI si basa sul funzionamento dei registri a scorrimento (<strong>shift register<\/strong>). Ogni dispositivo, sia master che slave, \u00e8 dotato di un registro a scorrimento interno i cui bit vengono emessi e, contemporaneamente, immessi, rispettivamente, tramite l&#8217;uscita SDO\/MOSI e l&#8217;ingresso SDI\/MISO. Il registro usualmente ha la dimensione di 8 bit.<\/p>\n<p style=\"text-align: justify;\">Il registro a scorrimento \u00e8 un&#8217;interfaccia completa mediante la quale vengono impartiti comandi e trasmessi dati che arrivano in modo seriale ma che internamente sono prelevati, a fine trasmissione, in modo parallelo.<\/p>\n<p style=\"text-align: justify;\">Lo schema di collegamento hardware \u00e8 il seguente.<\/p>\n<figure id=\"attachment_7426\" aria-labelledby=\"figcaption_attachment_7426\" class=\"wp-caption aligncenter\" style=\"width: 793px\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-7426 size-large\" title=\"Di en:User:Cburnett - Opera propriaQuesta grafica vettoriale non W3C-specificata \u00e8 stata creata con Inkscape., CC BY-SA 3.0, https:\/\/commons.wikimedia.org\/w\/index.php?curid=1476503\" src=\"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves.svg_.png?resize=793%2C630&#038;ssl=1\" alt=\"protocollo uart i2c spi\" width=\"793\" height=\"630\" srcset=\"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves.svg_.png?resize=1024%2C813&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves.svg_.png?resize=300%2C238&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves.svg_.png?resize=768%2C610&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves.svg_.png?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><figcaption id=\"figcaption_attachment_7426\" class=\"wp-caption-text\"><strong>Connessione 1 Master &#8211; 3 Slaves<\/strong><\/figcaption><\/figure>\n<h2 style=\"text-align: justify;\">UART vs I2C vs SPI<\/h2>\n<p>Ora che abbiamo capito con cosa abbiamo a che fare, mettiamo a confronto i diversi metodi:<\/p>\n\n<table id=\"tablepress-34\" class=\"tablepress tablepress-id-34\">\n<thead>\n<tr class=\"row-1\">\n\t<td class=\"column-1\"><\/td><th class=\"column-2\"><strong>UART<\/strong><\/th><th class=\"column-3\"><strong>I<sup>2<\/sup>C<\/strong><\/th><th class=\"column-4\"><strong>SPI<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">Complessit\u00e0<\/td><td class=\"column-2\">Semplice<\/td><td class=\"column-3\">Semplice per connettere molti devices<\/td><td class=\"column-4\">Complessit\u00e0 crescente con il numero di devices collegati<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">Velocit\u00e0<\/td><td class=\"column-2\">Minima<\/td><td class=\"column-3\">Maggiore rispetto a UART<\/td><td class=\"column-4\">Massima<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">Numero di devices<\/td><td class=\"column-2\">2<\/td><td class=\"column-3\">sino a 128<\/td><td class=\"column-4\">Molti<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">Numero minimo di connettori<\/td><td class=\"column-2\">2<\/td><td class=\"column-3\">2<\/td><td class=\"column-4\">4<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">Funzionalit\u00e0 Duplex<\/td><td class=\"column-2\">Full-duplex<\/td><td class=\"column-3\">Half-duplex<\/td><td class=\"column-4\">Full-Duplex<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">Distanza supportata<\/td><td class=\"column-2\">Massima<\/td><td class=\"column-3\">Minore rispetto a UART<\/td><td class=\"column-4\">Minore rispetto a I2C<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-34 from cache -->\n<p>Appare evidente come la scelta di un protocollo rispetto ad un altro si basa principalmente sull&#8217;effetto desiderato: velocit\u00e0 di trasmissione, quanit\u00e0 di dati, complessit\u00e0 del circuito. Per fare un esempio, una connessione I2C consente di pilotare agevolmente un display <a title=\"\" class=\"aalmanual\" target=\"_blank\"   href=\"https:\/\/amzn.to\/2Vz6Ak8\">OLED<\/a>, Ma se desideriamo implementare un videogame a bassa latenza su un monitor TFT da 2.8&#8243; ci converr\u00e0 utilizzare un collegamento SPI.<\/p>\n<p>Nei prossimi giorni presenteremo un articolo relativo ad entrambe le possibilit\u00e0.<\/p>\n<p><strong>Link utili<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/amzn.to\/311kqh7\">Arduino UNO R3<\/a><\/li>\n<li><a href=\"https:\/\/amzn.to\/2Rwbrl4\">Elegoo UNO R3<\/a><\/li>\n<li><a href=\"https:\/\/amzn.to\/2O2xCwT\">Arduino Starter Kit per principianti<\/a><\/li>\n<li><a href=\"https:\/\/amzn.to\/2U2CDJW\">Elegoo Advanced Starter Kit<\/a><\/li>\n<li><a href=\"https:\/\/amzn.to\/2RTjQOx\">Arduino Nano<\/a><\/li>\n<\/ul>\n<div>\n<p><strong>Seguici per non perdere le prossime novit\u00e0!<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick&amp;hosted_button_id=XCW8T56HHE4QL&amp;source=url\" rel=\"noopener noreferrer\">Donate<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/channel\/UCFFSDYPL0-Fx6OvJD28GP8A\" rel=\"noopener noreferrer\">Youtube<\/a><\/li>\n<li><a href=\"https:\/\/www.moreware.org\/wp\/\" target=\"_blank\" rel=\"noopener noreferrer\">Blog<\/a><\/li>\n<li><a href=\"https:\/\/www.facebook.com\/MoreWareOrg\" rel=\"noopener noreferrer\">Facebook<\/a><\/li>\n<li><a href=\"https:\/\/twitter.com\/MoreWare20\" rel=\"noopener noreferrer\">Twitter<\/a><\/li>\n<li><a href=\"https:\/\/it.linkedin.com\/in\/luigimorelli\" rel=\"noopener noreferrer\">Linkedin<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Nell&#8217;articolo di oggi spiegheremo quali siano e come funzionino i protocolli di comunicazione seriale UART, I2C e SPI per <a title=\"Arduino\" class=\"aalmanual\" target=\"_blank\"   href=\"https:\/\/www.amazon.it\/gp\/search?ie=UTF8&#38;tag=morewareblog-21&#38;linkCode=ur2&#38;linkId=40df2ca3e29e0dde966f711be6faeac5&#38;camp=3414&#38;creative=21718&#38;index=aps&#38;keywords=arduino\">Arduino<\/a> e <a title=\"\" class=\"aalmanual\" target=\"_blank\"   href=\"https:\/\/www.amazon.it\/gp\/search?ie=UTF8&#38;tag=morewareblog-21&#38;linkCode=ur2&#38;linkId=82656ec7b17752ecd8d9f7203c331310&#38;camp=3414&#38;creative=21718&#38;index=aps&#38;keywords=raspberry, raspberrypi, raspberry PI\">Raspberry PI<\/a>. Quando si comunica con una scheda microcontrollore come un <a title=\"Arduino\" class=\"aalmanual\" target=\"_blank\"   href=\"https:\/\/www.amazon.it\/gp\/search?ie=UTF8&#38;tag=morewareblog-21&#38;linkCode=ur2&#38;linkId=40df2ca3e29e0dde966f711be6faeac5&#38;camp=3414&#38;creative=21718&#38;index=aps&#38;keywords=arduino\">Arduino<\/a> UNO, i pin digitali e analogici non saranno sempre sufficienti per tutti i progetti. Per utilizzare le<\/p>\n","protected":false},"author":1,"featured_media":7429,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[677,92],"tags":[],"class_list":["post-7389","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-elettronica","category-tutorial","has-featured-image"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Protocolli di comunicazione su SBC: UART, I2C, SPI - Moreware Blog<\/title>\n<meta name=\"description\" content=\"Nell&#039;articolo di oggi spiegheremo quali siano e come funzionino i protocolli di comunicazione seriale UART, I2C e SPI per Arduino e Raspberry PI.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Protocolli di comunicazione su SBC: UART, I2C, SPI - Moreware Blog\" \/>\n<meta property=\"og:description\" content=\"Nell&#039;articolo di oggi spiegheremo quali siano e come funzionino i protocolli di comunicazione seriale UART, I2C e SPI per Arduino e Raspberry PI.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/\" \/>\n<meta property=\"og:site_name\" content=\"Moreware Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Cygni.61\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/Cygni.61\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-08T07:09:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"1016\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Luigi_Morelli\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/MoreWare20\" \/>\n<meta name=\"twitter:site\" content=\"@MoreWare20\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Luigi_Morelli\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/\"},\"author\":{\"name\":\"Luigi_Morelli\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#\\\/schema\\\/person\\\/5b58b2bca7f834b923832944d7feed16\"},\"headline\":\"Protocolli di comunicazione su SBC: UART, I2C, SPI\",\"datePublished\":\"2020-07-08T07:09:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/\"},\"wordCount\":854,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#\\\/schema\\\/person\\\/5b58b2bca7f834b923832944d7feed16\"},\"image\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/3020\\\/07\\\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1\",\"articleSection\":[\"Elettronica\",\"Tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/\",\"url\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/\",\"name\":\"Protocolli di comunicazione su SBC: UART, I2C, SPI - Moreware Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/3020\\\/07\\\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1\",\"datePublished\":\"2020-07-08T07:09:03+00:00\",\"description\":\"Nell'articolo di oggi spiegheremo quali siano e come funzionino i protocolli di comunicazione seriale UART, I2C e SPI per Arduino e Raspberry PI.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/3020\\\/07\\\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/3020\\\/07\\\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1\",\"width\":1280,\"height\":1016,\"caption\":\"protocollo uart i2c spi\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2020\\\/07\\\/08\\\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Protocolli di comunicazione su SBC: UART, I2C, SPI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#website\",\"url\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/\",\"name\":\"Moreware Blog\",\"description\":\"Mindware site for Raspberry PI and Arduino prototyping\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#\\\/schema\\\/person\\\/5b58b2bca7f834b923832944d7feed16\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#\\\/schema\\\/person\\\/5b58b2bca7f834b923832944d7feed16\",\"name\":\"Luigi_Morelli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/luigisax.jpg?fit=540%2C540&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/luigisax.jpg?fit=540%2C540&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/luigisax.jpg?fit=540%2C540&ssl=1\",\"width\":540,\"height\":540,\"caption\":\"Luigi_Morelli\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/luigisax.jpg?fit=540%2C540&ssl=1\"},\"description\":\"Definire ci\u00f2 che si \u00e8 non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche\u2019 ci\u00f2 che riesco a portare a termine mi d\u00e0 soddisfazione, piacere. Cos\u00ec come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ci\u00f2 che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.\",\"sameAs\":[\"http:\\\/\\\/www.moreware.org\",\"https:\\\/\\\/www.facebook.com\\\/Cygni.61\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/luigimorelli\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/MoreWare20\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCFFSDYPL0-Fx6OvJD28GP8A\"],\"url\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/author\\\/luigi_morelli\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Protocolli di comunicazione su SBC: UART, I2C, SPI - Moreware Blog","description":"Nell'articolo di oggi spiegheremo quali siano e come funzionino i protocolli di comunicazione seriale UART, I2C e SPI per Arduino e Raspberry PI.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/","og_locale":"en_US","og_type":"article","og_title":"Protocolli di comunicazione su SBC: UART, I2C, SPI - Moreware Blog","og_description":"Nell'articolo di oggi spiegheremo quali siano e come funzionino i protocolli di comunicazione seriale UART, I2C e SPI per Arduino e Raspberry PI.","og_url":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/","og_site_name":"Moreware Blog","article_publisher":"https:\/\/www.facebook.com\/Cygni.61","article_author":"https:\/\/www.facebook.com\/Cygni.61","article_published_time":"2020-07-08T07:09:03+00:00","og_image":[{"width":1280,"height":1016,"url":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1","type":"image\/png"}],"author":"Luigi_Morelli","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/MoreWare20","twitter_site":"@MoreWare20","twitter_misc":{"Written by":"Luigi_Morelli","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/#article","isPartOf":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/"},"author":{"name":"Luigi_Morelli","@id":"https:\/\/www.moreware.org\/wp\/#\/schema\/person\/5b58b2bca7f834b923832944d7feed16"},"headline":"Protocolli di comunicazione su SBC: UART, I2C, SPI","datePublished":"2020-07-08T07:09:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/"},"wordCount":854,"commentCount":0,"publisher":{"@id":"https:\/\/www.moreware.org\/wp\/#\/schema\/person\/5b58b2bca7f834b923832944d7feed16"},"image":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1","articleSection":["Elettronica","Tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/","url":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/","name":"Protocolli di comunicazione su SBC: UART, I2C, SPI - Moreware Blog","isPartOf":{"@id":"https:\/\/www.moreware.org\/wp\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/#primaryimage"},"image":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1","datePublished":"2020-07-08T07:09:03+00:00","description":"Nell'articolo di oggi spiegheremo quali siano e come funzionino i protocolli di comunicazione seriale UART, I2C e SPI per Arduino e Raspberry PI.","breadcrumb":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/#primaryimage","url":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1","width":1280,"height":1016,"caption":"protocollo uart i2c spi"},{"@type":"BreadcrumbList","@id":"https:\/\/www.moreware.org\/wp\/blog\/2020\/07\/08\/protocolli-di-comunicazione-su-sbc-uart-i2c-spi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.moreware.org\/wp\/"},{"@type":"ListItem","position":2,"name":"Protocolli di comunicazione su SBC: UART, I2C, SPI"}]},{"@type":"WebSite","@id":"https:\/\/www.moreware.org\/wp\/#website","url":"https:\/\/www.moreware.org\/wp\/","name":"Moreware Blog","description":"Mindware site for Raspberry PI and Arduino prototyping","publisher":{"@id":"https:\/\/www.moreware.org\/wp\/#\/schema\/person\/5b58b2bca7f834b923832944d7feed16"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.moreware.org\/wp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.moreware.org\/wp\/#\/schema\/person\/5b58b2bca7f834b923832944d7feed16","name":"Luigi_Morelli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2019\/07\/luigisax.jpg?fit=540%2C540&ssl=1","url":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2019\/07\/luigisax.jpg?fit=540%2C540&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2019\/07\/luigisax.jpg?fit=540%2C540&ssl=1","width":540,"height":540,"caption":"Luigi_Morelli"},"logo":{"@id":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2019\/07\/luigisax.jpg?fit=540%2C540&ssl=1"},"description":"Definire ci\u00f2 che si \u00e8 non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche\u2019 ci\u00f2 che riesco a portare a termine mi d\u00e0 soddisfazione, piacere. Cos\u00ec come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ci\u00f2 che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.","sameAs":["http:\/\/www.moreware.org","https:\/\/www.facebook.com\/Cygni.61","https:\/\/www.linkedin.com\/in\/luigimorelli\/","https:\/\/x.com\/https:\/\/twitter.com\/MoreWare20","https:\/\/www.youtube.com\/channel\/UCFFSDYPL0-Fx6OvJD28GP8A"],"url":"https:\/\/www.moreware.org\/wp\/blog\/author\/luigi_morelli\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/3020\/07\/1280px-SPI_three_slaves_daisy_chained.svg_.png?fit=1280%2C1016&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p80TdZ-1Vb","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/posts\/7389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/comments?post=7389"}],"version-history":[{"count":10,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/posts\/7389\/revisions"}],"predecessor-version":[{"id":7435,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/posts\/7389\/revisions\/7435"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/media\/7429"}],"wp:attachment":[{"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/media?parent=7389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/categories?post=7389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/tags?post=7389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}