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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2024-04-25T22:22:32+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=28&amp;t=24638&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2024-04-25T22:22:32+01:00</updated>
<published>2024-04-25T22:22:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238042#p238042</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238042#p238042"/>
<title type="html"><![CDATA[Re: Moduł BH1750 podłączenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238042#p238042"><![CDATA[
<div class="quotetitle">xentis napisał(a):</div><div class="quotecontent"><br />Jeśli tę z bluebooka to niestety muszę Cię rozczarować......<br /></div><br /><br />Tak potwierdzam - zawsze zapominam poprawić tego drobiazgu w sofcie do pobrania - ale w końcu się zmobilizuję <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />wystarczy jednak w niej zrobić drobną podmianę w makrach ustawiających stan wysoki, czyli takie coś w pliku &quot;i2c_soft.h&quot;<br /><br />[syntax=c]#define I2C_SDL_LO      PORT(SDAPORT) &amp;= ~(1&lt;&lt;SDA)<br />#define I2C_SDL_HI      PORT(SDAPORT) |= (1&lt;&lt;SDA)  <br /><br />#define I2C_SCL_LO      PORT(SCLPORT) &amp;= ~(1&lt;&lt;SCL)<br />#define I2C_SCL_HI      PORT(SCLPORT) |= (1&lt;&lt;SCL)[/syntax]   <br /><br /><br />zamienić na taką postać gdzie operujemy rejestrem kierunku:<br /><br />[syntax=c]#define I2C_SDL_LO      DDR(SDAPORT) |= (1&lt;&lt;SDA)   // stan niski wystawiany fizycznie na pin<br />#define I2C_SDL_HI      DDR(SDAPORT) &amp;= ~(1&lt;&lt;SDA)  // stan wysoki poprzez rezystor podciągający<br /><br />#define I2C_SCL_LO      DDR(SCLPORT) |= (1&lt;&lt;SCL)  // stan niski wystawiany fizycznie na pin <br />#define I2C_SCL_HI      DDR(SCLPORT) &amp;= ~(1&lt;&lt;SCL)  // stan wysoki poprzez rezystor podciągający[/syntax]<br /><br />aha no i funkcję  i2c_init() z bluebooka też trzeba poprawić:<br /><br />[syntax=c]// Inicjalizacja komunikacji I2C<br />void i2c_init(void) {<br />DDR(SDAPORT) |= (1&lt;&lt;SDA);  // tu jest źle<br />DDR(SCLPORT) |= (1&lt;&lt;SCL);  // tu jest źle<br />I2C_SDL_HI;<br />I2C_SCL_HI;<br />}[/syntax]<br /><br />na taką gdzie piny SDA i SCL zostają wejściami po resecie procka a wyłączamy wewnętrzne podciąganie<br /><br />[syntax=c]// Inicjalizacja komunikacji I2C<br />void i2c_init(void) {<br />PORT(SDAPORT) &amp;= ~(1&lt;&lt;SDA);  // teraz jest dobrze<br />PORT(SCLPORT) &amp;= ~(1&lt;&lt;SCL);  // teraz jest dobrze<br />I2C_SDL_HI;<br />I2C_SCL_HI;<br />}[/syntax]<br /><br />natomiast biblioteka z naszego sklepu jest od początku poprawnie zrobiona:<br /><br /><!-- m --><a class="postlink" href="https://sklep.atnel.pl/pl/p/0581_0582-MK-I2C-AVR-Biblioteka-C/244" >https://sklep.atnel.pl/pl/p/0581_0582-M ... teka-C/244</a><!-- m --> <br /><br /><img src="https://obrazkiforum.atnel.pl/54/af365ebc4a5bd957bdf1403490f606e0.png" alt="Obrazek" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 kwi 2024, o 22:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2024-04-25T17:47:36+01:00</updated>
<published>2024-04-25T17:47:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238041#p238041</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238041#p238041"/>
<title type="html"><![CDATA[Re: Moduł BH1750 podłączenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238041#p238041"><![CDATA[
<div class="quotetitle">Jarecki napisał(a):</div><div class="quotecontent"><br />Będę wykorzystywał softwareowy I2C ale to Mirka biblioteka więc pewnie będzie działać ok <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div>Jeśli tę z bluebooka to niestety muszę Cię rozczarować. Ale tak na prawdę łatwo to poprawić zgodnie z tym co napisałem wcześniej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 25 kwi 2024, o 17:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2024-04-24T21:28:04+01:00</updated>
<published>2024-04-24T21:28:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238040#p238040</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238040#p238040"/>
<title type="html"><![CDATA[Re: Moduł BH1750 podłączenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238040#p238040"><![CDATA[
<div class="quotetitle">xentis napisał(a):</div><div class="quotecontent"><br />Zależy jak AVR będzie obsługiwał I2C. Na module wejścia I2C są podciągnięte do 3,3V. AVR zasilany 5V, napięcie powyżej 3V powinien bez problemu rozpoznać jako logiczne 1. Więc od tej strony jest OK. Natomiast pytanie czy na AVR będziesz korzystać ze sprzętowego modułu I2C czy programowego. Niestety duża ilość spotykanych programowych implementacji I2C ma poważny błąd w działaniu. Ponieważ uC podczas banglowania pinami wykorzystuje pin jako wyjście i wystawia stan wysoki na wyjściu bądź niski. A przecież wystawiając stan wysoki podasz na moduł BH 5V! Według specyfikacji standardu I2C, uC podczas banglowania pinem stan wysoki musi wymuszać rezystor podciągający, czyli AVR winien ustawić pin w stan wejścia z wysoką impedancją, a stan niski ustawiać pin jako wyjście w stanie 0. <br />Podsumowując, jeśli AVR będzie w sposób właściwy gadał po I2C to możesz podłączyć bezpośrednio, czyli albo sprzętowy moduł I2C procka, albo poprawna biblioteka programowa, tylko uwaga: podciąganie lini I2C tylko do 3,3V które masz już na module, NIE możesz podciągać linii dodatkowo do 5V.<br /></div><br /><br />Dzięki, cenne uwagi. Będę wykorzystywał softwareowy I2C ale to Mirka biblioteka więc pewnie będzie działać ok  <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=2511">Jarecki</a> — 24 kwi 2024, o 21:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2024-04-19T20:34:44+01:00</updated>
<published>2024-04-19T20:34:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238036#p238036</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238036#p238036"/>
<title type="html"><![CDATA[Re: Moduł BH1750 podłączenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238036#p238036"><![CDATA[
Zależy jak AVR będzie obsługiwał I2C. Na module wejścia I2C są podciągnięte do 3,3V. AVR zasilany 5V, napięcie powyżej 3V powinien bez problemu rozpoznać jako logiczne 1. Więc od tej strony jest OK. Natomiast pytanie czy na AVR będziesz korzystać ze sprzętowego modułu I2C czy programowego. Niestety duża ilość spotykanych programowych implementacji I2C ma poważny błąd w działaniu. Ponieważ uC podczas banglowania pinami wykorzystuje pin jako wyjście i wystawia stan wysoki na wyjściu bądź niski. A przecież wystawiając stan wysoki podasz na moduł BH 5V! Według specyfikacji standardu I2C, uC podczas banglowania pinem stan wysoki musi wymuszać rezystor podciągający, czyli AVR winien ustawić pin w stan wejścia z wysoką impedancją, a stan niski ustawiać pin jako wyjście w stanie 0. <br />Podsumowując, jeśli AVR będzie w sposób właściwy gadał po I2C to możesz podłączyć bezpośrednio, czyli albo sprzętowy moduł I2C procka, albo poprawna biblioteka programowa, tylko uwaga: podciąganie lini I2C tylko do 3,3V które masz już na module, NIE możesz podciągać linii dodatkowo do 5V.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 19 kwi 2024, o 20:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2024-04-19T17:19:01+01:00</updated>
<published>2024-04-19T17:19:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238035#p238035</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238035#p238035"/>
<title type="html"><![CDATA[Moduł BH1750 podłączenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24638&amp;p=238035#p238035"><![CDATA[
Cześć, potrzebuję podłączyć czujnik BH1750 do mikrokontroler AVR zasilane go napięciem 5V.<br />Moduł BH jest na płytce PCB z wbudowanym stabilizatorem napięcia do 3,3V.<br />Pytanie czy na liniach I2C muszę robić konwersję napięć?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 19 kwi 2024, o 17:19</p><hr />
]]></content>
</entry>
</feed>