<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>How do I specify my register address for SPI driver interface?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/24510/how-do-i-specify-my-register-address-for-spi-driver-interface</link><description>Hello, 
 I am using SPI interface to communicate with a sensor BMI160, looking into the driver for BMI160 I can see how the low level functions for reading/writting are used like this 
 read(dev-&amp;gt;id, reg_addr, data, len);
 
 However, for nrf52 I see</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 22 Aug 2017 06:32:03 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/24510/how-do-i-specify-my-register-address-for-spi-driver-interface" /><item><title>RE: How do I specify my register address for SPI driver interface?</title><link>https://devzone.nordicsemi.com/thread/96500?ContentTypeID=1</link><pubDate>Tue, 22 Aug 2017 06:32:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0366bc45-8cd8-44eb-b135-ad76ab2fc42f</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Yes, that should work. Note that for reads, you might have to increase the bytesNumberRx, as reading of usefull data will not start until after the first write, but the read buffer will start filling when writing starts.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How do I specify my register address for SPI driver interface?</title><link>https://devzone.nordicsemi.com/thread/96497?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 11:32:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7063f70b-42db-4134-9028-f048716a636c</guid><dc:creator>ndarkness</dc:creator><description>&lt;p&gt;So for writting something like this &lt;code&gt;APP_ERROR_CHECK(nrf_drv_spi_transfer(&amp;amp;spi_BMI160, slaveDeviceId,sizeof(slaveDeviceId), NULL, 0));&lt;/code&gt; Or I should do two writings?
`&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How do I specify my register address for SPI driver interface?</title><link>https://devzone.nordicsemi.com/thread/96496?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 11:26:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6314aa27-2a4b-4ab3-9051-ab559d0cc579</guid><dc:creator>ndarkness</dc:creator><description>&lt;p&gt;My sensor hasn&amp;#39;t arrived yet, so it is hard to test :S In case of the write function, I should set the read buffer as well?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How do I specify my register address for SPI driver interface?</title><link>https://devzone.nordicsemi.com/thread/96499?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 10:56:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5ad5f7a0-57d1-4a20-b7d6-0b3ae89ed3f2</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Yes, something like that should work. Have you tested it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How do I specify my register address for SPI driver interface?</title><link>https://devzone.nordicsemi.com/thread/96498?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 10:41:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f671e8e4-273d-4d81-aa28-9ddf7b05e138</guid><dc:creator>ndarkness</dc:creator><description>&lt;p&gt;Hi Jorgen thanks for replying, if the use the call like &lt;a href="https://github.com/BoschSensortec/BMI160_driver/blob/b09262fb233b688d3a5d0dd8dfbc05460ce2e07c/bmi160.c#L1441"&gt;this&lt;/a&gt;. THen first I have to write which register I want to read? I think that it is that you address the register to read and perform a reading from it, am I wrong? Thus I would have to make a call to &lt;code&gt;nrf_driver_spi_transfer&lt;/code&gt; specifying the register to be written, like this &lt;code&gt;APP_ERROR_CHECK(nrf_drv_spi_transfer(&amp;amp;spi_BMI160, &amp;amp;reg_addr, 1, rxData, bytesNumberRx));&lt;/code&gt; right?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How do I specify my register address for SPI driver interface?</title><link>https://devzone.nordicsemi.com/thread/96495?ContentTypeID=1</link><pubDate>Mon, 21 Aug 2017 10:29:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b28caee1-b004-415f-add0-85bb5383ce2b</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;This should be documented in the datasheet of your device. Typically, the first byte transferred is the register address. You have not defined any TX buffer in the call to &lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v14.0.0/group__nrf__drv__spi.html?cp=4_0_0_6_8_29_2_26#gab022e003c9e5f0f946a5ecff0b455405"&gt;&lt;code&gt;nrf_drv_spi_transfer&lt;/code&gt;&lt;/a&gt;, so you will not be able to write anything to the device.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Jørgen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>