<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to SPI Communication</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/81d88db728/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Runtime/thread/81d88db728/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Runtime/thread/81d88db728/</id><updated>2023-12-23T10:13:13.567000Z</updated><subtitle>Recent posts to SPI Communication</subtitle><entry><title>SPI Communication</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/81d88db728/?limit=25#f732" rel="alternate"/><published>2023-12-23T10:13:13.567000Z</published><updated>2023-12-23T10:13:13.567000Z</updated><author><name>ulad</name><uri>https://forge.codesys.com/u/ulad/</uri></author><id>https://forge.codesys.com2b2827aa4a98527003b8925d3b779c84b778efb4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello. I created a project that uses SPI. This project is working well. I can see with an oscilloscope that the SPI pins are actually changing.&lt;br/&gt;
But when I resave this project in the IDE and open it later in the system, I see a constant error.&lt;br/&gt;
What do I need to fix? What am I doing wrong?&lt;br/&gt;
Thank you.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SPI Communication</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/81d88db728/?limit=25#8e9d" rel="alternate"/><published>2020-02-27T17:31:33.056000Z</published><updated>2020-02-27T17:31:33.056000Z</updated><author><name>eschwellinger</name><uri>https://forge.codesys.com/u/eschwellinger/</uri></author><id>https://forge.codesys.com009ed10210bb3fa83808198590c99a1c1ee73d74</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;br/&gt;
please open the SPI_PIFace.library,&lt;br/&gt;
here you see how it could realized. (This works for the project to you need to add Raspberry Pi Peripherals linrary to your project)&lt;br/&gt;
Basically it is the method &lt;strong&gt;transfer&lt;/strong&gt; which you need to use for reading and writing:&lt;/p&gt;
&lt;p&gt;snippet:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;abyTxBuffer&lt;/span&gt;&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;40&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nt"&gt;SHL&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;byHardwareAddress&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nt"&gt;SPI_WRITE_CMD&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;abyTxBuffer&lt;/span&gt;&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;byPort&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;abyTxBuffer&lt;/span&gt;&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;byValue&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;write8&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;transfer&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;pabyTxBuffer&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;ADR&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;abyTxBuffer&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;pabyRxBuffer&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;ADR&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;abyRxBuffer&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;udiLen&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;3&lt;/span&gt; &lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;uiDelayus&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;5&lt;/span&gt; &lt;span class="o"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;abyTxBuffer&lt;/span&gt;&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;40&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nt"&gt;SHL&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;byHardwareAddress&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nt"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nt"&gt;SPI_READ_CMD&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;abyTxBuffer&lt;/span&gt;&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;byPort&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;abyTxBuffer&lt;/span&gt;&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;FF&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;transfer&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;pabyTxBuffer&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;ADR&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;abyTxBuffer&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;pabyRxBuffer&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;ADR&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;abyRxBuffer&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;udiLen&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;3&lt;/span&gt; &lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;uiDelayus&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;5&lt;/span&gt; &lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="nt"&gt;read8&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;abyRxBuffer&lt;/span&gt;&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;BR&lt;br/&gt;
Edwin&lt;/p&gt;
&lt;p&gt;&lt;img alt="IMG: SPI_Write.jpg" rel="nofollow" src="https://forum.codesys.com//download/file.php?id=677"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="IMG: SPI_Read.jpg" rel="nofollow" src="https://forum.codesys.com//download/file.php?id=676"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="IMG: SPI_LIB.jpg" rel="nofollow" src="https://forum.codesys.com//download/file.php?id=675"/&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SPI Communication</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/81d88db728/?limit=25#8322" rel="alternate"/><published>2020-02-27T17:31:30.226000Z</published><updated>2020-02-27T17:31:30.226000Z</updated><author><name>yannickasselin1</name><uri>https://forge.codesys.com/u/yannickasselin1/</uri></author><id>https://forge.codesys.com7d6425a4d909cb8ddf56db20394d8f4c08336a27</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi all,&lt;br/&gt;
I want to test some SPI communication and don't know where to start.&lt;br/&gt;
I just want to send some bytes through SPI. Don't need to receive for now.&lt;br/&gt;
I don't want to build a library for now. Can I just use the base library and declare a variable of type SPI?&lt;br/&gt;
Can I just use the "transfer" method or do I need to use the "init" method first? Don't know where to start.&lt;br/&gt;
I looked at the exemple for the piFace and the temperature sensor and cannot figure out how this works.&lt;br/&gt;
Is there any documentation on how to use the SPI library? Can't find any.&lt;/p&gt;
&lt;p&gt;Please help...&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>