<?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=17977&amp;mode" />

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17977&amp;mode</id>
<entry>
<author><name><![CDATA[michael.873]]></name></author>
<updated>2020-11-03T21:34:11+01:00</updated>
<published>2020-11-03T21:34:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=229643#p229643</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=229643#p229643"/>
<title type="html"><![CDATA[Re: Expander MCP23017 I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=229643#p229643"><![CDATA[
Witam<br />Widzę że wątek już ma kilka lat ale właśnie usiłuję odpalić układ MCP tak jak w temacie<br />czy można prosić autora o fragment kodu jak ustawiać porty jako wejścia i wyjścia i jak to odczytywać i zapisywać tez używam biblioteki Mirka MK_I2C i o ile ogarnąłem sobie już pcf-y to z tym MCP jakoś mi nie idzie<br />wszystko mam podłączone raczej na 99% dobrze tylko tych rejestrów nie ogarniam <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />piny A1 A2 A3 -&gt; VCC<br />diody podłączone katodami do układu <br />wiec teoretycznie powinno wszystko się zaświecić a tu nic <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br />[syntax=c]void mcp23017_write( uint8_t SLA, uint8_t ADDR, uint8_t data ) {<br /><br />i2c_start();<br />i2c_write( SLA );<br />i2c_write( ADDR );<br />i2c_write( data );<br />i2c_stop();<br />}[/syntax]<br />[syntax=c]#include &quot;MK_I2C/mk_i2c.h&quot;<br /><br />#define I2C_KHZ400<br /><br />int main (void){<br /><br />// ustawienie prędkoci i2c<br />i2cSetBitrate( I2C_KHZ );<br /><br />_delay_ms(15);<br /><br /><br />mcp23017_write( 0x4E, 0x00, 0x00 );<br />mcp23017_write( 0x4E, 0x12, 0x00 );<br /><br />while (1){}<br /><br />}[/syntax]<br /><br /><br />Proszę o pomoc<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11107">michael.873</a> — 3 lis 2020, o 21:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wat1970]]></name></author>
<updated>2017-03-25T21:00:17+01:00</updated>
<published>2017-03-25T21:00:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185593#p185593</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185593#p185593"/>
<title type="html"><![CDATA[Re: Expander MCP23017 I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185593#p185593"><![CDATA[
Fajny scalaczek też mam na stercie karteczkę z napisem dotknać-przetestować <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Dla ciekawości jego brat MCP23018 jest ciut szybszy w razie potrzeby <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> potrafi gadać po I2C z prędkością 3.4 MHz. Miłej zabawy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2179">wat1970</a> — 25 mar 2017, o 21:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karl9955]]></name></author>
<updated>2017-03-25T19:04:28+01:00</updated>
<published>2017-03-25T19:04:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185586#p185586</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185586#p185586"/>
<title type="html"><![CDATA[Re: Expander MCP23017 I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185586#p185586"><![CDATA[
Działa! <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Dla potomnych, skucha była w adresie pominąłem bit R/W zatem wysyłając &quot;zapytanie&quot; do urządzenia slave należy użyć bitu kontrolnego o wartości |0|1|0|0|A2|A1|A0|R/W| np dla A2 podłączonego do VCC i A1=A0 podłączonego do GND. |0|1|0|0||1|0|0|0| czyli adres to 0x48<br />0x4 pozostaje bez zmian, pozostałe 4 bity mogą przyjmować wartości z przedziału &lt;0;E&gt;<br />edit:  <img src="https://forum.atnel.pl/images/smilies/icon_exclaim.gif" alt=":!:" title="Wykrzyknik" /> <br />bez wartości gdzie na najmłodszym bicie występuje 1. Może przyjąć np 0000 0010 0100 0110 1000 1010 1100 1110 tylko te 8 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12052">karl9955</a> — 25 mar 2017, o 19:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ELEKTRON105]]></name></author>
<updated>2017-03-25T17:50:29+01:00</updated>
<published>2017-03-25T17:50:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185578#p185578</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185578#p185578"/>
<title type="html"><![CDATA[Re: Expander MCP23017 I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185578#p185578"><![CDATA[
Na początek popraw sposób w jaki zamieściłeś swój kod i skorzystaj z SYNTAX. To ważne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2242">ELEKTRON105</a> — 25 mar 2017, o 17:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karl9955]]></name></author>
<updated>2017-03-25T17:57:44+01:00</updated>
<published>2017-03-25T17:26:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185576#p185576</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185576#p185576"/>
<title type="html"><![CDATA[Expander MCP23017 I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17977&amp;p=185576#p185576"><![CDATA[
Witam, zacząłem pisać własną bibliotekę do w.w. expandera MCP. Otóż mam wielki problem z połączeniem układ nie reaguje. Ale zacznijmy od fundamentów.. <br /><br />A0=A1 -&gt; podłączone do VCC, A2 -&gt; GND więc ustawiłem adres jako 0x43h . Następnie podłączyłem diody poprzez rezystor 220om do portu A. W programie wykorzystuje &quot;Mirkową&quot; bibliotekę do obsługi I2C. W inicjalizacji ustawiam port A jako wyjście poprzez zapisanie do rejestru IODIRA wartości 0x00h, następnie na połowie portu ustawiam stan wysoki, na drugiej połowie niski (czyli teoretycznie 4 diody się zapalają, a 4 są zgaszone). W tym celu zmieniam rejestr GPIOA na wartość 0xF0h. <br /><br />Sercem jest ATmega328p do której również podłączony jest LCD2x16 też przez I2C o adresie 0x40h który działa. Dodatkowo przy expanderze dołożyłem 2x 4.7k om dla linii SDA i SCL choć już te linie są podciągnięte na adapterze przy LCD.<br /><br />Gdzie może być bubel i czym się różnią 2 rejestry GPIOx i OLATx wg. mnie przy zapisie działają tak samo a przy odczycie? Pozdrawiam<br /><br /><br />Ciało funkcji inicjalizującej<br /><br />[syntax=cpp]// w pliku nagłówkowym<br />#define address 0x43<br /><br />void MCP23017_init() {<br />i2cSetBitrate( I2C_rate ); // testowane różne wartości 100-400 kHz<br /><br />TWI_start();<br />TWI_write(address);<br />TWI_write(0x00);<br />TWI_write(0x00);<br />TWI_stop();<br /><br />TWI_start();<br />TWI_write(address);<br />TWI_write(0x12);<br />TWI_write(0xF0);<br />TWI_stop();<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12052">karl9955</a> — 25 mar 2017, o 17:26</p><hr />
]]></content>
</entry>
</feed>