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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-05-09T16:36:11+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=3074&amp;mode</id>
<entry>
<author><name><![CDATA[zoom]]></name></author>
<updated>2013-05-09T16:36:11+01:00</updated>
<published>2013-05-09T16:36:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36615#p36615</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36615#p36615"/>
<title type="html"><![CDATA[Re: ATmega8L problem z I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36615#p36615"><![CDATA[
Procesor jest taktowany wewnętrznie 1MHZ, tzn po prostu nic w fusach dotyczących taktowania nie zmieniałem, więc mam tyle ile jest jako domyślne.<br /><br />Faktycznie, po ustawieniu za pomocą I2c_setbitrate() częstotliwości na 100kHz wszystko działa. Aczkolwiek dziwne, bo częstotliwość na linii SCL znów zmierzona analizatorem wynosi teraz niby 27kHz. Co jak co, ale najważniejsze, że w końcu działa!<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 32 minutach ]</span></strong><br /><br />Ustawiłem fusy tak, by z wewnętrznego RC mieć taktowanie procka 8MHz.<br />Zmieniłem ustawienia w eclipsie też na 8000000 i wszystko śmiga ok i częstotliwość SCL teraz faktycznie jest 100kHz.<br />Dzięki mirekk36 za pomoc!!!:-)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=685">zoom</a> — 9 maja 2013, o 16:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-05-09T15:59:06+01:00</updated>
<published>2013-05-09T15:59:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36609#p36609</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36609#p36609"/>
<title type="html"><![CDATA[Re: ATmega8L problem z I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36609#p36609"><![CDATA[
Dobrze ale przede wszystkim jaką częstotliwością taktujesz procka ?<br /><br />wiesz - bo nie ma sensu rozpatrywać przypadku dlaczego działa jak usunę stop bo to NIENORMALNA sytuacja, więc zajmijmy się sytuacją POPRAWNĄ <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />a zatem zacznij też od ustawienia prędkości 100 kHz na I2C funkcją I2c_setbitrate() .... ona jest w aktualizacjach jeśli nie masz jej na DVD<br /><br />bo jeśli taktujesz procka więcej niż 8MHz to znowu może być zonk bez ustawienia prędkości. Domyślną prędkością i pewną dla wszystkich scalaków jest właśnie 100 kHz i od tego zacznij - to też podstawa<br /><br />pamięci SMD w sumie nie musisz całej wylutowywać tylko dwie nóżki nieco do góry podnieść SDA i SCL lutownicą <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> albo i ścieżkę ciachnąć nożykiem tak aby później jedną kroplą cyny połączyć<br /><br />zobaczysz że wszystko w końcu ruszy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tak jak ma działać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 maja 2013, o 15:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zoom]]></name></author>
<updated>2013-05-09T14:32:30+01:00</updated>
<published>2013-05-09T14:32:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36606#p36606</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36606#p36606"/>
<title type="html"><![CDATA[Re: ATmega8L problem z I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36606#p36606"><![CDATA[
EEPROMA może faktycznie odłączę, ale mam w smd, więc mi się nie spieszy, muszę być pewny że trzeba. Bo lutownica zwykła;p<br /><br />Co do sekwencji i kolizji. Wszystko powinno być ok. Przecież udało mi się poprawnie zaprogramować rejestr konfiguracyjny i czas RTC. I również bez problemu te wartości odczytuję i są poprawne. No tylko tyle, że wiem to dzięki analizatorowi, bo procek po STOPIE tkwi w miejscu i nic już z odczytanymi wartościami nie mogę zrobić.<br /><br />Używam tej wersji oprogramowania bez ustawień bitrate, więc prędkości transmisji w żaden sposób nie konfigurowałem. Częstotliwość na linii SCL wynosi wg analizatora 62kHz. Choć nie wiem, czy to ważne.<br /><br />Poniżej jeszcze sekwencja odczytu danych z noty RTC, żeby rozwiać z tym związane wątpliwości.<br /><a href="http://forum.atnel.pl/_obrazki/o/685/fc7309d5153aa251b500a1f89eae1d1b.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/685/fc7309d5153aa251b500a1f89eae1d1b.png" alt="Obrazek" /></a><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 47 minutach ]</span></strong><br /><br />Myślałem, że to może ten ostatni warunek:<br /><br />while (!(TWCR&amp;(1&lt;&lt;TWSTO)));<br /><br />ale teraz go usunąłem i nadal to samo.<br />Tak jakby ustawianie bitu TWSTO blokowało procka.<br />Usunąłem TWSTO z linijki<br />TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTO);<br />i chodzi. Wiem, że tak zostać nie może, tylko właśnie chciałem pokazać, że przez ustawianie TWSTO coś się dzieje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=685">zoom</a> — 9 maja 2013, o 14:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-05-09T14:14:52+01:00</updated>
<published>2013-05-09T14:14:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36605#p36605</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36605#p36605"/>
<title type="html"><![CDATA[Re: ATmega8L problem z I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36605#p36605"><![CDATA[
No ok teraz lepiej to wygląda - rzeczywiście pulupy są ok, zasilanie też takie samo ...<br /><br />hmm a tak na szybko może odłącz pamięć EEPROM ... może jakaś kolizja ?<br /><br />aha no i najważniejsze ja pisałem te procedury do  PCF8583 - musisz sprawdzić czy jest podobna sekwencja dla twojego RTC w nocie PDF ... jeśli chodzi o odczyt całego bufora ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 maja 2013, o 14:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zoom]]></name></author>
<updated>2013-05-09T14:01:10+01:00</updated>
<published>2013-05-09T14:01:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36602#p36602</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36602#p36602"/>
<title type="html"><![CDATA[Re: ATmega8L problem z I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36602#p36602"><![CDATA[
Dziękuję za szybką reakcję.<br />Domyślam się, że funkcje są ok, bo już byłyby poprawki dostępne, a niestety nie ma.. Więc gdzieś u mnie problem.<br />Pull-up'y są, napięcie to samo do procka i RTC.<br />I tak jak mówię, wszystko da się zapisać, odczytać z układu, na analizatorze widać pięknie transmisję. Tylko właśnie po napotkaniu stop jest problem.<br /><br />Poniżej schemat.<br /><a href="http://forum.atnel.pl/_obrazki/o/685/07d73ee5f92c9b3a2a1e2c02f6dfd01f.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/685/07d73ee5f92c9b3a2a1e2c02f6dfd01f.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=685">zoom</a> — 9 maja 2013, o 14:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-05-09T13:45:28+01:00</updated>
<published>2013-05-09T13:45:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36601#p36601</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36601#p36601"/>
<title type="html"><![CDATA[Re: ATmega8L problem z I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36601#p36601"><![CDATA[
przyczyny szukać w sprzęcie bo masz pewnie problem sprzętowy i to bez dwóch zdań. OCZUWIŚCIE że MUSI być ten STOP <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> a funkcje z książki działają bardzo dobrze, jak nie to - jeszcze raz powiem problem sprzętowy.<br /><br />Zatem jak zadajesz takie pytanie to schemat panie kolego - schemat ....<br /><br />zresztą od razu zapytam<br /><br />1. Masz rezystory podciągające SDA i SCL do VCC ? bo jak nie to już masz ZONK'a<br /><br />2. zasilasz RTC i procek tym samym napięciem czy różnym ? bo jak różnym a nie masz konwersji poziomów to już masz ZONK'a<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 maja 2013, o 13:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zoom]]></name></author>
<updated>2013-05-09T13:26:27+01:00</updated>
<published>2013-05-09T13:26:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36599#p36599</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36599#p36599"/>
<title type="html"><![CDATA[ATmega8L problem z I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3074&amp;p=36599#p36599"><![CDATA[
Witam!<br />Otóż w swoim projekcie potrzebuję skomunikować się z układem DS1307 (RTC) poprzez I2C.<br />Do tego wykorzystuję kody z książki Pana Mirka.<br /><br />Problem w tym, że coś jest jakby nie tak z funkcją TWI_stop() - do momentu tej funkcji, wszystko w programie działa i zostaje wysłane do DS-a, przy odbiorze wszystko też ładnie chodzi i układ RTC podaje poprawnie godzinę (wiem to tylko dzięki temu, że mam prosty analizator stanów i na nim widzę transmisję).<br />Niestety kiedy dochodzi do funkcji TWI_stop(), to program się zatrzymuje, tak jakby ostatni warunek w tej funkcji nigdy nie został spełniony. Kiedy usunąłem z końca procedury TWI_read_buf() linijkę TWI_stop(), program działał bez problemu.<br /><br />poniżej kod procedury TWI_stop():<br />[syntax=c]void TWI_stop(void) {<br />TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTO);<br />while ( !(TWCR&amp;(1&lt;&lt;TWSTO)));<br />}[/syntax]<br /><br />Gdzie szukać przyczyny?<br />Bo jednak ten warunek na końcu wydaje się być poprawny, a jednak zawiesza program.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=685">zoom</a> — 9 maja 2013, o 13:26</p><hr />
]]></content>
</entry>
</feed>