<?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>I2C initialization on registers level</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/72148/i2c-initialization-on-registers-level</link><description>Hello, 
 I work with the ATE using Algocraft WN series programmer. 
 It has directly access to GPIO registers through SWD interface with WRITE / READ / COMPARE commands. 
 I already succeed to toggle and read states on GPIO pins. 
 Now I need to initialize</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 23 Mar 2021 17:17:16 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/72148/i2c-initialization-on-registers-level" /><item><title>RE: I2C initialization on registers level</title><link>https://devzone.nordicsemi.com/thread/301529?ContentTypeID=1</link><pubDate>Tue, 23 Mar 2021 17:17:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:27ff6c72-c0a1-4c72-9e9f-17fc423620cb</guid><dc:creator>Leonid.K.</dc:creator><description>&lt;p&gt;Looks like you right.&lt;/p&gt;
&lt;p&gt;It should be&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img height="163" src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1616519802126v1.png" width="373" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;It works now.&lt;/p&gt;
&lt;p&gt;Thanks a lot.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C initialization on registers level</title><link>https://devzone.nordicsemi.com/thread/301522?ContentTypeID=1</link><pubDate>Tue, 23 Mar 2021 16:30:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5ca2be80-dd2f-4e34-9556-0bf8049e1ac6</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Did you verify that the PSEL registers got set correctly? I&amp;#39;m not sure about how your masks work, but my point was that you need to set the registers to 0x0000001E and 0x00000007 to get correct behavior.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C initialization on registers level</title><link>https://devzone.nordicsemi.com/thread/301111?ContentTypeID=1</link><pubDate>Mon, 22 Mar 2021 06:55:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3f388ac6-d3fe-4f4e-9ca3-7154a2ee59a1</guid><dc:creator>Leonid.K.</dc:creator><description>&lt;p&gt;So,&amp;nbsp;on pic 1 shown how it should be,&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/1.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;and here what I have by a first running after working code:&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/3566.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;Please pay attention to low SCK level (why?) and NACK with the same slave address.&lt;/p&gt;
&lt;p&gt;The repeated run causes to falling LOW the SDA line.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C initialization on registers level</title><link>https://devzone.nordicsemi.com/thread/301105?ContentTypeID=1</link><pubDate>Mon, 22 Mar 2021 05:43:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7b22af8d-87db-4dad-b701-568b58c9d8c9</guid><dc:creator>Leonid.K.</dc:creator><description>&lt;p&gt;The SCL line goes HIGH, and&amp;nbsp;SDA line remains LOW.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If I run code specially written for I2C, I see correct lines activities.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C initialization on registers level</title><link>https://devzone.nordicsemi.com/thread/301102?ContentTypeID=1</link><pubDate>Mon, 22 Mar 2021 05:07:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e9e6f2f2-e00a-4f5d-9854-76dc514b5528</guid><dc:creator>Leonid.K.</dc:creator><description>&lt;p&gt;Dear Jorgen,&lt;/p&gt;
&lt;p&gt;Thanks a lot for your answer.&lt;/p&gt;
&lt;p&gt;But it still doesn&amp;#39;t work for me.&lt;/p&gt;
&lt;p&gt;I did exactly what you mentioned:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1616389546682v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;But still don&amp;#39;t see any activity on SDA, SCL lines.&lt;/p&gt;
&lt;p&gt;May be something else need?&lt;/p&gt;
&lt;p&gt;Best regards.&lt;/p&gt;
&lt;p&gt;Leonid.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C initialization on registers level</title><link>https://devzone.nordicsemi.com/thread/301085?ContentTypeID=1</link><pubDate>Sun, 21 Mar 2021 15:40:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3aa4f98b-0697-4ef4-b0e1-1dbbe3a3769e</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;span&gt;0xBFFFFFFF&amp;nbsp;and 0xFFFFFF7F&amp;nbsp;is not valid values in the&amp;nbsp;PSELSDA/PSELSCL registers. These registers should be set to the GPIO pin number (0x7 and 0x1E in your case), of 0xFFFFFFFF in case the pin is Disconnected:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/nrf51_5F00_twi_5F00_pin_5F00_registers.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The address register should also be set before starting the transfer.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I verified that these commands works with nrfjprog:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;nrfjprog --memwr 0x40003500 --val 0x00000000
nrfjprog --memwr 0x50000778 --val 0x00000302
nrfjprog --memwr 0x5000071c --val 0x0000060C
nrfjprog --memwr 0x40000528 --val 0x00000009
nrfjprog --memwr 0x4000350c --val 0x1E
nrfjprog --memwr 0x40003508 --val 0x7
nrfjprog --memwr 0x40003524 --val 0x01980000
nrfjprog --memwr 0x40003500 --val 0x00000005
nrfjprog --memwr 0x40003588 --val 0x00000055
nrfjprog --memwr 0x40003008 --val 0x00000001&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This generates the following output on the pins:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/twi_5F00_register_5F00_transfer.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;br /&gt;Jørgen&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C initialization on registers level</title><link>https://devzone.nordicsemi.com/thread/299585?ContentTypeID=1</link><pubDate>Sat, 13 Mar 2021 10:28:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5c78a7dd-bea8-47a1-91fc-779382818103</guid><dc:creator>Leonid.K.</dc:creator><description>&lt;p&gt;I tried following:&lt;/p&gt;
&lt;p&gt;//# TWI DISABLE&lt;/p&gt;
&lt;p&gt;#prog -o cmd -c write -t h40003500 -l 4 --data h00000000 --mask h00000007&lt;br /&gt;#prog -o cmd -c compare -t h40003500 -l 4 --data h00000000 --mask h00000007&lt;/p&gt;
&lt;p&gt;//# SET IO PINS CONFIGURATION SDA (P30)&lt;/p&gt;
&lt;p&gt;#prog -o cmd -c write -t h50000778 -l 4 --data h00000302 --mask h0003070F&lt;br /&gt;#prog -o cmd -c compare -t h50000778 -l 4 --data h00000302 --mask h0003070F&lt;/p&gt;
&lt;p&gt;//# SET IO PINS CONFIGURATION SCL (P7)&lt;br /&gt;#prog -o cmd -c write -t h5000071c -l 4 --data h0000060C --mask h0003070F&lt;br /&gt;#prog -o cmd -c compare -t h5000071c -l 4 --data h0000060C --mask h0003070F&lt;/p&gt;
&lt;p&gt;//# Classify SPI0 and TWI0 as region 0&amp;nbsp; peripheral&lt;br /&gt;#prog -o cmd -c write -t h40000528 -l 4 --data h00000009 --mask h00000009&lt;br /&gt;#prog -o cmd -c compare -t h40000528 -l 4 --data h00000009 --mask h00000009&lt;/p&gt;
&lt;p&gt;//# SET PIN FOR SDA (PSELSDA)&lt;br /&gt;#prog -o cmd -c write -t h4000350c -l 4 --data hBFFFFFFF --mask hFFFFFFFF&lt;br /&gt;#data -o set -c out -t file -f \images\TWI0_TWI_PSELSDA.bin&lt;br /&gt;#prog -o cmd -c read -m ram -s h0 -t h4000350c -l 4&lt;/p&gt;
&lt;p&gt;Here I read 0xFFFFFFFF instead of expected 0x&lt;span&gt;BFFFFFFF&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;//# SET PIN FOR SCK (PSELSCL)&lt;br /&gt;#prog -o cmd -c write -t h40003508 -l 4 --data hFFFFFF7F --mask hFFFFFFFF&lt;br /&gt;#data -o set -c out -t file -f \images\TWI0_TWI_PSELSCL.bin&lt;br /&gt;#prog -o cmd -c read -m ram -s h0 -t h40003508 -l 4&lt;/p&gt;
&lt;p&gt;Here I read 0xFFFFFFFF instead of expected 0x&lt;span&gt;FFFFFF7F&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;# TWI frequency settings&lt;br /&gt;#prog -o cmd -c write -t h40003524 -l 4 --data h01980000 --mask h07F80000&lt;br /&gt;#prog -o cmd -c compare -t h40003524 -l 4 --data h01980000 --mask h07F80000&lt;/p&gt;
&lt;p&gt;//# TWI ENABLE&lt;br /&gt;#prog -o cmd -c write -t h40003500 -l 4 --data h00000005 --mask h00000007&lt;br /&gt;#prog -o cmd -c compare -t h40003500 -l 4 --data h00000005 --mask h00000007&lt;/p&gt;
&lt;p&gt;//# Start TWI transmit sequence&lt;br /&gt;#prog -o cmd -c write -t h40003008 -l 4 --data h00000001 --mask h00000001&lt;br /&gt;#prog -o cmd -c compare -t h40003008 -l 4 --data h00000001 --mask h00000001&lt;/p&gt;
&lt;p&gt;//# TWI SLAVE ADDRESS&lt;br /&gt;#prog -o cmd -c write -t h40003588 -l 4 --data h00000055 --mask h0000007F&lt;br /&gt;#prog -o cmd -c compare -t h40003588 -l 4 --data h00000055 --mask h0000007F&lt;/p&gt;
&lt;p&gt;Sure I don&amp;#39;t see by scope any lines activities.&lt;/p&gt;
&lt;p&gt;What wrong?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C initialization on registers level</title><link>https://devzone.nordicsemi.com/thread/296707?ContentTypeID=1</link><pubDate>Sun, 28 Feb 2021 15:47:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:46fbc4ea-5d2e-4f6e-a45d-00e1330fd3b5</guid><dc:creator>Nguyen Hoan Hoang</dc:creator><description>&lt;p&gt;you can download the data sheet from&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/index.jsp"&gt;https://infocenter.nordicsemi.com/index.jsp&lt;/a&gt;. &amp;nbsp;It contains all the information you need.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>