<?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 reading issue</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/63480/twi-reading-issue</link><description>Hello, 
 I am using a nRF DK (nRF52832 - PCA10040 - SDK 15) to communicate with a custom electronic device developed by my own company (which integrates an 1-Wire slave). The communication protocol is 1-Wire so I use a Single-Channel 1-Wire Master called</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 11 Aug 2020 08:03:20 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/63480/twi-reading-issue" /><item><title>RE: TWI reading issue</title><link>https://devzone.nordicsemi.com/thread/263944?ContentTypeID=1</link><pubDate>Tue, 11 Aug 2020 08:03:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ec82b7e5-0973-4b5c-ad2f-872ff53a27fe</guid><dc:creator>MattHrlt</dc:creator><description>&lt;p&gt;Hello Picsil, I can&amp;#39;t share all my code (see &lt;a href="https://www.maximintegrated.com/en/design/technical-documents/app-notes/3/3684.html"&gt;this&lt;/a&gt;) but I would explain my modifications. Maybe this is due to the custom 1Wire devices I use. First, you could try to follow the DS2482 datasheet and then, if there is an issue, test my solution.&lt;/p&gt;
&lt;p&gt;Example from the datasheet &amp;quot;1Wire Read Byte&amp;quot; (Case C)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1597131208395v1.png" alt=" " /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="text-decoration:underline;"&gt;According to the datasheet, your code should follow this sequence&lt;/span&gt; :&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;NB : my ROM address is&amp;nbsp;551964D90200000082 and my command 2D64081DFB00E7000A010102E771 returns 4 bytes.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I will use this notation :&amp;nbsp;&lt;br /&gt;W = Write -&amp;gt; Byte wryte&lt;br /&gt;R = Read -&amp;gt; Byte read&lt;br /&gt;B = Busy -&amp;gt; Read until 1WB has changed to 0&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;W - B4 (CMD_1WRS)&lt;br /&gt;B&lt;br /&gt;W - A5, 55 (ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 19&lt;span&gt;&amp;nbsp;(ROM)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;B&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;W - A5, 64&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, D9&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 02&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 00&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 00&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 00&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 82&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 2D&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 64&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 08&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 1D&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, FB&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 00&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, E7&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 00&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;0A&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;01&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;01&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;02&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;E7&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;71&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - 96 (CMD_1WRB)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - E1, E1 (CMD_SRP,&amp;nbsp;RGT_READ_D)&lt;br /&gt;&lt;strong&gt;R (Read byte 1)&lt;/strong&gt;&lt;br /&gt;W - 96&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - E1, E1&amp;nbsp;(CMD_SRP,&amp;nbsp;RGT_READ_D)&lt;br /&gt;&lt;strong&gt;R&amp;nbsp;(Read byte 2)&lt;/strong&gt;&lt;br /&gt;W - 96&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - E1, E1&amp;nbsp;(CMD_SRP,&amp;nbsp;RGT_READ_D)&lt;br /&gt;&lt;strong&gt;R&amp;nbsp;(Read byte 3)&lt;/strong&gt;&lt;br /&gt;W - 96&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - E1, E1&amp;nbsp;(CMD_SRP,&amp;nbsp;RGT_READ_D)&lt;br /&gt;&lt;strong&gt;R&amp;nbsp;(Read byte 4)&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Using this, the 4 bytes returned were incorrect. I had to change the sequence&lt;/span&gt; :&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;W - E1, F0 (CMD_SRP, RGT_STATUS)&lt;/span&gt;&lt;br /&gt;B&lt;br /&gt;&lt;span&gt;W - B4 (CMD_1WRS)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;B&lt;/span&gt;&lt;br /&gt;&lt;span&gt;W - A5, 55 (ROM)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;B&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;W - A5, 19&lt;/span&gt;&lt;span&gt;&amp;nbsp;(ROM)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;B&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;W - A5, 64&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, D9&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 02&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 00&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 00&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 00&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 82&amp;nbsp;(ROM)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - E1, F0 (CMD_SRP,&amp;nbsp;RGT_STATUS)&lt;br /&gt;B&lt;br /&gt;W - A5, 2D&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 64&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 08&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 1D&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, FB&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 00&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, E7&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5, 00&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;0A&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;01&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;01&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;02&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;E7&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - A5,&amp;nbsp;71&amp;nbsp;(CMD)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - E1, F0 (CMD_SRP,&amp;nbsp;RGT_STATUS)&lt;br /&gt;B&lt;br /&gt;W - E1, F0 (CMD_SRP,&amp;nbsp;RGT_STATUS)&lt;br /&gt;B&lt;br /&gt;W - 87, 80 (CMD_1WSB, STATUS_DIR)&lt;br /&gt;B&lt;br /&gt;W - E1, F0 (CMD_SRP,&amp;nbsp;RGT_STATUS)&lt;br /&gt;B&lt;br /&gt;W - 96 (CMD_1WRB)&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - E1, E1 (CMD_SRP,&amp;nbsp;RGT_READ_D)&lt;br /&gt;&lt;strong&gt;R (Read byte 1)&lt;/strong&gt;&lt;br /&gt;W - 96&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - E1, E1&amp;nbsp;(CMD_SRP,&amp;nbsp;RGT_READ_D)&lt;br /&gt;&lt;strong&gt;R&amp;nbsp;(Read byte 2)&lt;/strong&gt;&lt;br /&gt;W - 96&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - E1, E1&amp;nbsp;(CMD_SRP,&amp;nbsp;RGT_READ_D)&lt;br /&gt;&lt;strong&gt;R&amp;nbsp;(Read byte 3)&lt;/strong&gt;&lt;br /&gt;W - 96&lt;br /&gt;B&amp;nbsp;&lt;br /&gt;W - E1, E1&amp;nbsp;(CMD_SRP,&amp;nbsp;RGT_READ_D)&lt;br /&gt;&lt;strong&gt;R&amp;nbsp;(Read byte 4)&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;The code from Maxim Integrated is a good start. Depending on the 1W devices you want to communicate with.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Hope it will help you,&lt;br /&gt;&lt;br /&gt;Matthieu&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWI reading issue</title><link>https://devzone.nordicsemi.com/thread/263907?ContentTypeID=1</link><pubDate>Mon, 10 Aug 2020 18:27:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c3d2b8cd-1661-4ecd-9a61-eb592f3c53a0</guid><dc:creator>picsil</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/matthrlt"&gt;MattHrlt&lt;/a&gt; Would you mind sharing the working version of your code above or at least the part you corrected? I&amp;#39;ll be implementing the -800 version of this chip in the next few days as well with the nRF9160.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWI reading issue</title><link>https://devzone.nordicsemi.com/thread/260830?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2020 14:03:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d0c94915-2b9a-4b6a-8bae-5c1ac6c24f6a</guid><dc:creator>MattHrlt</dc:creator><description>&lt;p&gt;Hi Jorgen,&lt;/p&gt;
&lt;p&gt;Thanks for your answer. This has helped me realise that my problem was due to&amp;nbsp;a wrong DS2482 configuration (when I want to write a command and read several bytes).&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt;Matthieu&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWI reading issue</title><link>https://devzone.nordicsemi.com/thread/258945?ContentTypeID=1</link><pubDate>Wed, 08 Jul 2020 08:52:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a91229f9-74b9-4e25-a2dd-99a394be977e</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Did you check the TWI bus with a logic analyzer, to see if the shifted data is output by the DS2482, or if it is read wrong somehow by the nRF52832? If the data on the bus is incorrect, you need to check with Maxim why the device outputs the shifted data.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Jørgen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>