<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.canisinc.com.br/index.php?action=history&amp;feed=atom&amp;title=SPI</id>
	<title>SPI - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.canisinc.com.br/index.php?action=history&amp;feed=atom&amp;title=SPI"/>
	<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=SPI&amp;action=history"/>
	<updated>2026-09-02T21:52:55Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=SPI&amp;diff=547&amp;oldid=prev</id>
		<title>Ruschigo: Inserindo página sobre SPI na labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=SPI&amp;diff=547&amp;oldid=prev"/>
		<updated>2021-08-31T22:22:44Z</updated>

		<summary type="html">&lt;p&gt;Inserindo página sobre SPI na labrador&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Labrador SPI =&lt;br /&gt;
O processador da Labrador conta com diferentes hardwares dedicados para comunicação, um desses hardwares permite o uso de transferência por SPI em altas velocidades de até 60Mps.&lt;br /&gt;
No entanto esse hardware fica disponível através do barramento de GPIO por multiplexação, desta forma o padrão é desabilitado devido maior uso do GPIOS.&lt;br /&gt;
&lt;br /&gt;
= Mapeamento SPI =&lt;br /&gt;
&lt;br /&gt;
Observe a que o SPI fica disponível nos pinos 19(SPI0_MOSI), 21(SPI0_MISO), 23(SPI0_SCLK), 24(SPI0_SS).&lt;br /&gt;
&lt;br /&gt;
[[File:40pinh.png|image|800px|caption Mapeamento do header de 40 pinos.]]&lt;br /&gt;
&lt;br /&gt;
= Habilitar SPI =&lt;br /&gt;
&lt;br /&gt;
Para ativar o SPI é necessário alterar a device-tree do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Crie uma pasta para clonar o kernel da labrador;&lt;br /&gt;
$mkdir $HOME/kernel_labrador/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Entre na pasta&lt;br /&gt;
cd $HOME/kernel_labrador/&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Labrador 32bits&lt;br /&gt;
&amp;lt;pre&amp;gt;$git clone https://github.com/caninos-loucos/labrador-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Labrador 64bits &lt;br /&gt;
&amp;lt;pre&amp;gt;$git clone https://github.com/caninos-loucos/linux-labrador64.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;abra a device-tree com um editor de texto de sua preferência&lt;br /&gt;
$gedit linux/arch/arm/boot/dts/caninos_labrador.dts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
procure por;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spi0: spi@b0200000 {&lt;br /&gt;
		#address-cells = &amp;lt;1&amp;gt;;&lt;br /&gt;
		#size-cells = &amp;lt;0&amp;gt;;&lt;br /&gt;
		compatible = &amp;quot;caninos,caninos-spi&amp;quot;;&lt;br /&gt;
		reg = &amp;lt;0xb0200000 0x4000&amp;gt;;&lt;br /&gt;
		interrupts = &amp;lt; 0 19 0x4 &amp;gt;;&lt;br /&gt;
		pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
		pinctrl-0 = &amp;lt;&amp;amp;spi0_state_default&amp;gt;;&lt;br /&gt;
		status = &amp;quot;disabled&amp;quot;;&lt;br /&gt;
	    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ative o SPI0, altere o parâmetro status, troque &amp;quot;disabled&amp;quot; por &amp;quot;okay&amp;quot;&lt;br /&gt;
*status = &amp;quot;disabled&amp;quot;;&lt;br /&gt;
por&lt;br /&gt;
*status = &amp;quot;okay&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;compile o kernel novamente, isso pode ser demorado, pois depende do processamento do seu computador.&lt;br /&gt;
$make&amp;lt;/pre&amp;gt;&lt;br /&gt;
***Observação: se tiver dificuldades em compilar o kernel, consulter o Readme.md na raiz do repositório do kernel.&lt;br /&gt;
&lt;br /&gt;
Quando acabar o processo, o kernel com o SPI0 habilitado estará disponível na pasta output/&lt;br /&gt;
***Observação: veja como trocar o kernel da labrador neste [https://wiki.caninosloucos.org/index.php/Kernel link].&lt;br /&gt;
&lt;br /&gt;
Uma vez substituido uImage, kernel.dtb e a pasta /lib/modules pelos compilados&lt;br /&gt;
&lt;br /&gt;
reinicie a Labrador&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;utilize o comando lsmod para verificar se o driver foi adicionado&lt;br /&gt;
$lsmod&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;também pode verificar pelo comando dmesg&lt;br /&gt;
$sudo dmesg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
deverá ver algo como;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.538818] bus: &amp;#039;platform&amp;#039;: add driver caninos_spi0&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.538947] bus: &amp;#039;platform&amp;#039;: driver_probe_device: matched device b0200000.spi with driver caninos_spi0&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.538966] bus: &amp;#039;platform&amp;#039;: really_probe: probing driver caninos_spi0 with device b0200000.spi&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539042] pinctrl core: add 2 pinctrl maps&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539127] caninos-labrador-pinctrl soc:pinctrl@b01b0040: found group selector 34 for mfp1_2_0&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539141] caninos-labrador-pinctrl soc:pinctrl@b01b0040: found group selector 33 for mfp1_4_3&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539152] caninos_spi0 b0200000.spi: no init pinctrl state&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539167] caninos-labrador-pinctrl soc:pinctrl@b01b0040: request pin 87 (P_SPI0_SS) for b0200000.spi&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539177] caninos-labrador-pinctrl soc:pinctrl@b01b0040: request pin 88 (P_SPI0_MISO) for b0200000.spi&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539196] caninos-labrador-pinctrl soc:pinctrl@b01b0040: request pin 86 (P_SPI0_SCLK) for b0200000.spi&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539203] caninos-labrador-pinctrl soc:pinctrl@b01b0040: request pin 89 (P_SPI0_MOSI) for b0200000.spi&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539215] caninos_spi0 b0200000.spi: no sleep pinctrl state&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539222] caninos_spi0 b0200000.spi: no idle pinctrl state&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539271] devices_kset: Moving b0200000.spi to end of list&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.552479] device: &amp;#039;spi0&amp;#039;: device_add&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.552784] PM: Adding info for No Bus:spi0&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.552906] caninos_spi0 b0200000.spi: controller is unqueued, this is deprecated&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.552925] driver: &amp;#039;caninos_spi0&amp;#039;: driver_bound: bound to device &amp;#039;b0200000.spi&amp;#039;&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.553044] bus: &amp;#039;platform&amp;#039;: really_probe: bound device b0200000.spi to driver caninos_spi0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
</feed>