<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=21926&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-01-30T21:03:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=21926&amp;mode</id>
<entry>
<author><name><![CDATA[WoodPaker]]></name></author>
<updated>2019-01-30T21:03:09+01:00</updated>
<published>2019-01-30T21:03:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216278#p216278</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216278#p216278"/>
<title type="html"><![CDATA[Re: I2C Programowe &amp; odczyt z MCP3021]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216278#p216278"><![CDATA[
No i git. Jak widać czasem trzeba komuś/czemuś przylutować żeby zadziałało! <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1425">WoodPaker</a> — 30 sty 2019, o 21:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cezary_888]]></name></author>
<updated>2019-01-30T20:58:35+01:00</updated>
<published>2019-01-30T20:58:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216277#p216277</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216277#p216277"/>
<title type="html"><![CDATA[Re: I2C Programowe &amp; odczyt z MCP3021]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216277#p216277"><![CDATA[
Dziękuję, że się zainteresowałeś tematem.<br />Wkleiłem tylko część kody bez inicjalizacji. Ogólnie cała napisana biblioteka działa z innymi urządzeniami takimi jak np. akcelerometr. Głównym autorem tego rozwiązania jest Autor <em>Blue Book</em>-a. Nie dodałem, że <em>HDEL</em> jest równe <em>_delay_loop_1(3)</em> przy taktowaniu procesora 11,059200 MHz.<br /><br />- Dlaczego <em>&quot;if ( 0x91 &amp; i ) I2C_SDA_HI;&quot;?</em>   -&gt; <em>0x91</em> to adres do odczytu tego urządzenia a <em>i</em> jest maskowaniem kolejnych bitów. Czyli jeśli z maskowania danego bitu otrzymamy <em>1</em> to ustawiamy linię <em>SDA</em> w stan wysoki.<br /><br />- Obawiam się że problem leży w hardware-rze <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> Ale nie zaszkodzi się upewnić czy program jest dobry ponieważ tu jest kosmetyczna różnica w komunikacji w porównaniu z innymi urządzeniami działającymi z wykorzystaniem <em>I2C</em><br /><br />- Przed napisaniem tego postu włączył lutownicę, żeby sprawdzić jeszcze raz połączenia lutowane pomiędzy płytką a układem. Przed skończeniem pisania poprawiłem luty i <span style="text-decoration: underline"><strong>WSZYSTKO DZIAŁA!!!!!!!!</strong></span>. Po prostu była jedna z nóżek od komunikacji źle przylutowana.<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1504">cezary_888</a> — 30 sty 2019, o 20:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[WoodPaker]]></name></author>
<updated>2019-01-30T19:06:08+01:00</updated>
<published>2019-01-30T19:06:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216270#p216270</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216270#p216270"/>
<title type="html"><![CDATA[Re: I2C Programowe &amp; odczyt z MCP3021]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216270#p216270"><![CDATA[
Pierwsze pytanie. Gdzie masz inicjalizacje. Drugie pytanie. Dlaczego &quot;<em>if ( 0x91 &amp; i ) I2C_SDA_HI;</em>&quot;?<br />Tu masz przykład software'owego I2C. Porównaj. Jak dla mnie w programie narobiłeś baboli z tym kiedy ma być stan wysoki, a kiedy niski. Ale to tylko taki rzut okiem przez 5 sekund. Zajrzę do tego po pracy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><a href="http://extremeelectronics.co.in/avr-tutorials/software-i2c-library-for-avr-mcus/"  class="postlink">http://extremeelectronics.co.in/avr-tutorials/software-i2c-library-for-avr-mcus/</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1425">WoodPaker</a> — 30 sty 2019, o 19:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cezary_888]]></name></author>
<updated>2019-01-29T22:31:51+01:00</updated>
<published>2019-01-29T22:31:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216248#p216248</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216248#p216248"/>
<title type="html"><![CDATA[I2C Programowe &amp; odczyt z MCP3021]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21926&amp;p=216248#p216248"><![CDATA[
Witam<br />Jak w temacie próbuję odczytać dane z MCP3021A0T używając programowej interpretacji I2C. Napisałem program w oparciu o BlueBook-a i jakoś nie bardzo działa, choć według mnie jest napisany dobrze . Prośba żeby ktoś zerknął. <br />Obecnie sytuacja wygląda tak że:<br />- gdy bateria na pin AIN nie podaję zasilania odczyt wygląda następująco:<br /><a href="https://obrazkiforum.atnel.pl/1504/e2fee020a72c1dc939f1fda84c76838e.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/1504/e2fee020a72c1dc939f1fda84c76838e.png" alt="Obrazek" /></a><br />- natomiast gdy podłączę sygnał na AIN:<br /><a href="https://obrazkiforum.atnel.pl/1504/dac573d5bbd8d27b05d11040e7198c22.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/1504/dac573d5bbd8d27b05d11040e7198c22.png" alt="Obrazek" /></a><br /><br />Dodam że zasilanie jest 3.27[V] a sygnał na AIN jest 3[V]. Niestety nie mam oscyloskopu żeby podejrzeć co się dzieje na liniach <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br />Poniżej kod programu.<br />[syntax=c]I2C_START();<br />///////////////WYSLANIE ADRESU//////////<br />uint8_t i=0x80, b;<br /><br />do {<br />if ( 0x91 &amp; i ) I2C_SDA_HI;<br />else I2C_SDA_LO;<br /><br />HDEL;<br />I2C_SCL_HI;<br />HDEL;<br />I2C_SCL_LO;<br />} while ( i &gt;&gt;= 1 );<br /><br />I2C_SDA_HI;<br /><br />DDR(SDAPORT) &amp;= ~(1&lt;&lt;SDA);<br />HDEL;<br />I2C_SCL_HI;<br />b = PIN(SDAPORT) &amp; (1&lt;&lt;SDA);<br /><br />HDEL;<br />I2C_SCL_LO;<br />DDR(SDAPORT) |= (1&lt;&lt;SDA);<br />HDEL;<br />//////////////////CZYTANIE DATA_H////////////<br />u08 j;<br />u08 c;<br /><br />I2C_SDA_HI;<br />DDR(SDAPORT) &amp;= ~(1&lt;&lt;SDA);<br /><br />for(j=8;j&gt;0;j--)<br />{<br />HDEL;<br />I2C_SCL_HI;<br />c = PIN(SDAPORT) &amp; (1&lt;&lt;SDA);<br />data_h &lt;&lt;= 1;<br />if(c) data_h |= 1;<br />HDEL;<br />I2C_SCL_LO;<br />}<br /><br />DDR(SDAPORT) |= (1&lt;&lt;SDA);<br /><br /> I2C_SDA_LO;//ACK<br /><br /> HDEL;<br /> I2C_SCL_HI;<br /> HDEL;<br /> I2C_SCL_LO;<br />I2C_SDA_HI;<br /><br />///////////////////CZYTANIE DATA_L////////////////<br />u08 k;<br />u08 h;<br /><br />I2C_SDA_HI;<br />DDR(SDAPORT) &amp;= ~(1&lt;&lt;SDA);<br /><br />for(k=8;k&gt;0;k--)<br />{<br />HDEL;<br />I2C_SCL_HI;<br />h = PIN(SDAPORT) &amp; (1&lt;&lt;SDA);<br />data_l &lt;&lt;= 1;<br />if(h) data_l |= 1;<br />HDEL;<br />I2C_SCL_LO;<br />}<br /><br />DDR(SDAPORT) |= (1&lt;&lt;SDA);<br /><br />I2C_SDA_HI;// wyślij NACK<br /><br />HDEL;<br />I2C_SCL_HI;<br />HDEL;<br />I2C_SCL_LO;<br /><br />I2C_SDA_HI;<br />//////////////////////////////<br />I2C_STOP();<br />///////////////////////////////<br />wynik = (data_h &lt;&lt; 6) | (data_l&gt;&gt;2);<br /><br />wynik1 = (float)wynik*(3.27/1024.0);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1504">cezary_888</a> — 29 sty 2019, o 22:31</p><hr />
]]></content>
</entry>
</feed>