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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-07-25T16:48:40+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=18869&amp;mode</id>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-07-25T16:48:40+01:00</updated>
<published>2017-07-25T16:48:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192579#p192579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192579#p192579"/>
<title type="html"><![CDATA[Re: oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192579#p192579"><![CDATA[
możesz ewentualnie zrobić funkcję kalibracji w samym programie, i np wartość OSCAL jaka wyjdzie w kalibracji zapisać do EEPROMU badź flash (jak to Mirek pokazał w yellowbooku).<br />Samą funkcję kalibracji można zrobić na różne sposoby, w oparciu o transmisję uart (jak w ćwiczeniu z bluebooka odnośnie UARTA) albo zrobić sobie (bądź wykorzystać  posiadany) wzorcowy generator który podczas kalibracji można podać na wejście licznika i program zwiększając bądź zmniejszając wartość OSCAL będzie dążył do tego by wartość zliczonych impulsów w jednostce czasu się zgadzała. Zapewne sposobów na taką kalibrację znajdzie się jeszcze wiele...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 25 lip 2017, o 16:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2017-07-25T13:32:14+01:00</updated>
<published>2017-07-25T13:32:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192567#p192567</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192567#p192567"/>
<title type="html"><![CDATA[Re: oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192567#p192567"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Udało mi się skalibrować zgodnie z tym:<br /><!-- m --><a class="postlink" href="http://www.atmel.com/Images/Atmel-2555-" >http://www.atmel.com/Images/Atmel-2555-</a><!-- m --> ... AVR053.pdf<br /></div><br /><br />Ja nie powiedziałem że się nie da z kalibrować tylko że to się i tak rozjedzie z biegiem czasu (no chyba że to ma zadziałać tylko chwilę )<br />co do zapisu to niestety ale dla każdego procesora musisz ustawić OSCCAL indywidualnie na początku funkcji main.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 25 lip 2017, o 13:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matej1410]]></name></author>
<updated>2017-07-25T11:31:33+01:00</updated>
<published>2017-07-25T11:31:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192564#p192564</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192564#p192564"/>
<title type="html"><![CDATA[Re: oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192564#p192564"><![CDATA[
Udało mi się skalibrować zgodnie z tym:<br /><!-- m --><a class="postlink" href="http://www.atmel.com/Images/Atmel-2555-Internal-RC-Oscillator-Calibration-for-tinyAVR-and-megaAVR-Devices_ApplicationNote_AVR053.pdf" >http://www.atmel.com/Images/Atmel-2555- ... AVR053.pdf</a><!-- m --><br />Mam na tacy podaną wartość jaką należy wpisać do rejestru OSCCAL. Urządzenia chodzą równiusieńko. <br />Problem jest teraz inny. Jak wpisywać te różne wartości do poszczególnych egzemplarzy urządzenia? Za wszelką cenę chciałbym, aby program wgrany do procesora był taki sam dla każdego egzemplarza.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1912">matej1410</a> — 25 lip 2017, o 11:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2017-07-25T06:51:06+01:00</updated>
<published>2017-07-25T06:51:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192556#p192556</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192556#p192556"/>
<title type="html"><![CDATA[Re: oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192556#p192556"><![CDATA[
I będą się rozjeżdżać nawet po ustawieniu rejestru OSCCAL ponieważ generator wewnętrzny nie jest do takich zastosowań (duża rozbieżność pod wpływem zasilania temperatury i to w każdej atmedze inaczej ) nawet na kwarcu będzie się rozjeżdżać co prawda dużo mniej ale będzie ba nawet na RTC tylko tu już w skali miesiąca .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 25 lip 2017, o 06:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matej1410]]></name></author>
<updated>2017-07-24T18:25:46+01:00</updated>
<published>2017-07-24T18:25:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192538#p192538</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192538#p192538"/>
<title type="html"><![CDATA[Re: oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192538#p192538"><![CDATA[
<div class="quotetitle">tonygryps napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent">i jeśli chcesz mieć zbliżone parametry budowanych urządzeń to wykorzystaj do tego kwarc.<br /></div><br /><br />A jeśli zależy ci na tym aby wszystkie te urządzenia resetowały się w tym samym czasie to musisz podejść całkowicie inaczej to tematu .<br />Ja bym to zrobił tak jedno urządzenie jako master i te by odliczało czas poza tym obustronna komunikacja między masterem a resztą urządzeń.<br />master odpytywał by slave a w razie braku odpowiedzi reset. można też użyć układów RTC ale to też będzie się rozjeżdzać chyba że zrobisz synchronizację z serwerem czasu.</div><br /><br />Niestety nie ma takiej możliwości urządzenia będą pracowały w odległości kilkudziesięcu metrów od siebie.<br />Urządzenia resetują się w tym samym czasie. Rozjeżdżają się w miarę inkrementacji zmiennej licznikowej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1912">matej1410</a> — 24 lip 2017, o 18:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2017-07-24T18:05:10+01:00</updated>
<published>2017-07-24T18:05:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192535#p192535</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192535#p192535"/>
<title type="html"><![CDATA[Re: oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192535#p192535"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />i jeśli chcesz mieć zbliżone parametry budowanych urządzeń to wykorzystaj do tego kwarc.<br /></div><br /><br />A jeśli zależy ci na tym aby wszystkie te urządzenia resetowały się w tym samym czasie to musisz podejść całkowicie inaczej to tematu .<br />Ja bym to zrobił tak jedno urządzenie jako master i te by odliczało czas poza tym obustronna komunikacja między masterem a resztą urządzeń.<br />master odpytywał by slave a w razie braku odpowiedzi reset. można też użyć układów RTC ale to też będzie się rozjeżdzać chyba że zrobisz synchronizację z serwerem czasu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 24 lip 2017, o 18:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-07-24T16:40:44+01:00</updated>
<published>2017-07-24T16:40:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192525#p192525</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192525#p192525"/>
<title type="html"><![CDATA[Re: oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192525#p192525"><![CDATA[
Ale nie wiem czy wiesz, częstotliwość wewnętrznego oscylatora rc dosyć mocno zależy od temperatury, i zasilania. Wartości w rejestrze OSCAL zazwyczaj są różne, ponieważ na etapie produkcji procka wewnętrzny oscylator ma duże rozrzuty i po wyprodukowaniu rezonator jest dostrajany właśnie poprzez zapisanie takiej wartości OSCAL by mieścił się w założonej dokładności dla takiego oscylatora. A jak się przyjrzysz nocie to zauważysz że dokładnością to one nie grzeszą.<br /> Więc odpowiadając na twoje pytanie: Tak musiałbyś kalibrować każde urządzenie. Oscylatory kwarcowe zostały wymyślone właśnie po to by poprawić stabilność taktowania gdy takowa dokładność jest potrzebna (a w dużej ilości przypadków taka dokładność jest po prostu zbędna) i jeśli chcesz mieć zbliżone parametry budowanych urządzeń to wykorzystaj do tego kwarc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 24 lip 2017, o 16:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matej1410]]></name></author>
<updated>2017-07-24T14:21:31+01:00</updated>
<published>2017-07-24T14:21:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192513#p192513</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192513#p192513"/>
<title type="html"><![CDATA[Re: oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192513#p192513"><![CDATA[
Mikrokontroler taktuję z wewnętrznego oscylatora.<br />Program działa tak, że zrobiłem sobie takiego pseudo watchdoga tzn. jeżeli licznik zliczy do 60 to następuje wywołanie pewnej funkcji, jeżeli licznik zostanie zresetowany np. przez użytkownika i nie doliczy do 60 to zaczyna od zera, i tak w kółko.<br />Problem jest taki, że mam kilka osobnych układów (w każdym ten sam procesor i ten sam program), resetowane są wszystkie naraz i na 100%, zawsze mają wspólny punkt czasowy &quot;Zero&quot;. Obserwuje sobie te zmienne licznikowe dwóch egzemplarzy no i jak nic jeden &quot;Działa wolniej od drugiego&quot;.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 11 minutach ]</span></strong><br /><br />Zauważyłem, że zmianiając wartość OSCCAL niejako udaje mi się przyspieszyć albo opóźnić prace procesora, zgodnie z tym Mirku co pokazałeś w swoim poradniku, ale czy to znaczy, że będzie trzeba badać i kalibrować 1000 urządzeń z osobna, bo każde jest nieskalibrowane?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1912">matej1410</a> — 24 lip 2017, o 14:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-07-24T11:25:50+01:00</updated>
<published>2017-07-24T11:25:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192508#p192508</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192508#p192508"/>
<title type="html"><![CDATA[Re: oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192508#p192508"><![CDATA[
<div class="quotetitle">matej1410 napisał(a):</div><div class="quotecontent"><br />Problem tkwi w tym, że po minucie mam już prawie 2 sekundy rozjazdu pomiędzy nimi (sprawdzone poprzez podglądanie zmiennych poprzez UART).<br /></div><br /><br />Panie panie - jakby to miało zależeć od OSCAL to byś niczego nawet na UART nie zobaczył tylko jakieś śmieci<br /><br />Rzeczywiście źle interpretujesz OSCCAL ponieważ on ma związek TYLKO I WYŁĄCZNIE - z taktowaniem procka za pomocą wewnętrznego oscylatora a ty NAWET nie piszesz w jaki sposób taktujesz procka.... Jeśli z zewnętrznego kwarca - to próba zmiany wartości OSCCAL da ci tyle co nic ...<br /><br />Jeśli zaś masz taktowanie z wewn. oscylatora to opisane przez ciebie objawy mówią tylko o tym, że coś bardzo mocno a wręcz tragicznie mocno przekombinowałeś w projekcie ... opisz  więc co robisz - i jaki jest cel programu żeby można było pomóc jakoś<br /><br />Poza tym KAŻDY egzemplarz procka może mieć i w większości przypadków ma inną wartość OSCCAL i to nie jest nic dziwnego - wręcz normalne bo po to jest ten rejestr żeby fabryka mogła skalibrować wewn. oscylator do prawidłowej pracy<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 lip 2017, o 11:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2017-07-24T10:59:36+01:00</updated>
<published>2017-07-24T10:59:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192505#p192505</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192505#p192505"/>
<title type="html"><![CDATA[Re: oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192505#p192505"><![CDATA[
Poszukaj poradnika Mirka o attiny 10 i analizatorze logicznym jeden z nowszych poradników Mirek dość szeroko tam pokazuje podejście do wewnętrznego oscylatora jak to zmierzyć itp.<br /><br />Poza tym to złe podejście do sprawy bo częstotliwość takiego generatora jest bardzo zależna np od temperatury napięcia zasilania i wielu innych czynników .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 24 lip 2017, o 10:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matej1410]]></name></author>
<updated>2017-07-24T10:26:16+01:00</updated>
<published>2017-07-24T10:26:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192503#p192503</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192503#p192503"/>
<title type="html"><![CDATA[oscylator wewnętrzny Atmega 164PA OSCCAL]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18869&amp;p=192503#p192503"><![CDATA[
Witam.<br /><br />Posiadam dwa układy zawierające w sobie procesorki jak w temacie.<br />Wgrywam do nich ten sam program, mają taką samą konfigurację.<br />Uruchamiam na nich program, w którym pewna zmienna inkrementowana jest w zakresie od 0-59(sekund) z krokiem 1 sekunda.<br />Problem tkwi w tym, że po minucie mam już prawie 2 sekundy rozjazdu pomiędzy nimi (sprawdzone poprzez podglądanie zmiennych poprzez UART).<br /><br />Czytałem o rejestrze OSCCAL. Podłączyłem więc programator do obydwu egzemplarzy i odczytałem wartość tego rejestru.<br />Jedna z nich to 0x52 (dla pierwszego egzemplarza) a dla drugiego 0x92. <br />Zgodnie z informacjami zawartymi w nocie katalogowej różnica w taktowaniu dla tych wartości to aż 1MHz co może dawać te dwie sekundy różnicy pewnie.<br />Zmieniłem zatem wartość jednego z egzemplarzy tak, aby była taka sama jak w drugim, ale dalej jest taki rozjazd czasowy.<br /><br />Proszę o pomoc.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 26 minutach ]</span></strong><br /><br />Chyba źle interpretuję ten OSCCAL. <br />Zrobię tak jak jest w BB w rozdziale &quot;Inicjalizacja kalibracja&quot;. Zobaczymy co będzie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1912">matej1410</a> — 24 lip 2017, o 10:26</p><hr />
]]></content>
</entry>
</feed>