<?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>TWI Fails to receive/send</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/21076/twi-fails-to-receive-send</link><description>Hello, 
 I&amp;#39;ve connected an ADXL345 accelerometer sensor via I2C to nrf52 board. I connected SDA &amp;gt; SDA, SCL &amp;gt; SCL, GND &amp;gt; GND and VCC &amp;gt; VDD (3.3V). Here&amp;#39;s my code: 
 twi_init();
	
	do {
 err_code = nrf_drv_twi_rx(&amp;amp;m_twi, 0x53, &amp;amp;sample_data, sizeof</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 05 Apr 2017 13:46:57 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/21076/twi-fails-to-receive-send" /><item><title>RE: TWI Fails to receive/send</title><link>https://devzone.nordicsemi.com/thread/82353?ContentTypeID=1</link><pubDate>Wed, 05 Apr 2017 13:46:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f8b49aa0-44d3-455b-8418-320a5381400a</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Error code 0x03 means &lt;em&gt;&amp;quot;NRF_ERROR_INTERNAL - If an error was detected by hardware.&amp;quot;&lt;/em&gt; This can be caused by many things. Could you try adding a short delay between twi_init and the first tx?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWI Fails to receive/send</title><link>https://devzone.nordicsemi.com/thread/82352?ContentTypeID=1</link><pubDate>Tue, 04 Apr 2017 18:35:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3d75b5b2-13c0-4290-832f-96d323461f9d</guid><dc:creator>XploD</dc:creator><description>&lt;p&gt;I&amp;#39;ve revised my question with new code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWI Fails to receive/send</title><link>https://devzone.nordicsemi.com/thread/82351?ContentTypeID=1</link><pubDate>Tue, 04 Apr 2017 10:39:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c73fcab7-0a30-4bf9-80a8-a311e6e1b4c9</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;According to the &lt;a href="http://www.analog.com/media/en/technical-documentation/data-sheets/ADXL345.pdf#page=19"&gt;datasheet of ADXL345&lt;/a&gt;, it requires the master to write the register address before reading.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWI Fails to receive/send</title><link>https://devzone.nordicsemi.com/thread/82350?ContentTypeID=1</link><pubDate>Tue, 04 Apr 2017 10:28:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:21c311fa-1e3b-4a3c-9dc7-cbaf712d4e9c</guid><dc:creator>djqtsg</dc:creator><description>&lt;p&gt;Is it not true nrf_drv_twi_tx() must be called first before rx?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWI Fails to receive/send</title><link>https://devzone.nordicsemi.com/thread/82349?ContentTypeID=1</link><pubDate>Tue, 04 Apr 2017 09:31:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:44c2af0c-1a5f-4d59-924b-fe2827f411da</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Have you checked what the error code returned from &lt;code&gt;nrf_drv_twi_rx()&lt;/code&gt; is?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWI Fails to receive/send</title><link>https://devzone.nordicsemi.com/thread/82354?ContentTypeID=1</link><pubDate>Tue, 04 Apr 2017 06:46:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:295ab2b0-7bdf-430d-b594-7645ba08cf16</guid><dc:creator>djqtsg</dc:creator><description>&lt;p&gt;Have you studied carefully the sample TWI code? I guess you are making wrong use of API.&lt;/p&gt;
&lt;p&gt;The following is my working code for reading one byte of data from register 0x0A of an I2C device with I2C write/read address I2C_WRITE_ADDR/I2C_READ_ADDR&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;uint8_t reg_addr = 0x0A;	// register address
err = nrf_drv_twi_tx(&amp;amp;m_twi, I2C_WRITE_ADDR, &amp;amp;reg_addr, 1, true);
//APP_ERROR_CHECK(err_code);
if(NRF_SUCCESS != err) {
	...	// return false; ??
}
			
uint8_t p_data[1];
err = nrf_drv_twi_rx(&amp;amp;m_twi, I2C_READ_ADDR, p_data, 1);
if(NRF_SUCCESS != err) {
	...	// return false; ??
}
    return true;
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>