-
31. Data: 2014-11-12 23:14:15
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: "J.F." <j...@p...onet.pl>
A propos NTP - czy ktos analizowal jak to dziala i rozumie ?
Bo nie rozumiem jak on sobie radzi z laczami niesymetrycznymi, gdy np
pakiet w jedna strone idzie 0.1s, a w druga 2.1s ..
Mimo tych 4 znacznikow czasu 0 - na moj gust to nie ma mozliwosci
wykrycia o ile pakiety sa niesymetryczne.
J.
-
32. Data: 2014-11-12 23:18:00
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: Marek <f...@f...com>
On Wed, 12 Nov 2014 22:20:25 +0100, Atlantis <m...@w...pl>
wrote:
> > albo timer jest wstrzymywany gdy przerwanie jest obsługiwane.
> Jak to sprawdzić?
W avr nie wiem, niech się jakiś spec od tych mcu wypowie. Twój kod
nie wygląda aby blokował timer. Raczej stawiam na źle skonfigurowany
timer. No właśnie jak go ustawiłeś, tak na oko wychodzi, że aby
uzyskać 10ms przerwanie przy 12.5MHz trzeba ustawić prescaler /8 i
output compare na 15625.
--
Marek
-
33. Data: 2014-11-12 23:20:05
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: Jakub Rakus <s...@o...pl>
On 12.11.2014 22:20, Atlantis wrote:
>> albo timer jest wstrzymywany gdy przerwanie jest obsługiwane.
>
> Jak to sprawdzić?
>
Po pierwsze sprawdź czy masz dobrze skonfigurowany timer, czy na pewno
dobrze policzyłeś wartość, którą wpisujesz do OCR (bo z tego co widzę z
wcześniejszego litingu, to używasz trybu CTC dla Timer0).
Po drugie sprawdź czy sygnał zegarowy, którym taktujesz proca ma
odpowiednio częstotliwość.
W przerwaniu toggluj jakiś pin i zobacz na oscyloskopie jaką masz f.
Albo jeszcze lepiej skonfiguruj timer tak, żeby sam zmieniał stan na
wyjściu OCn, jeśli masz jakieś wolne.
--
Pozdrawiam
Jakub Rakus
-
34. Data: 2014-11-12 23:24:44
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: Atlantis <m...@w...pl>
W dniu 2014-11-12 23:18, Marek pisze:
> No właśnie jak go ustawiłeś, tak na oko wychodzi, że aby uzyskać 10ms
> przerwanie przy 12.5MHz trzeba ustawić prescaler /8 i output compare
> na 15625.
Jak już mówiłem, w tej chwili timer jest ustawiony na przerwanie co 20ms
- chciałem odsunąć je od siebie tak bardzo, jak to tylko możliwe.
Niestety omawiany timer jest ośmiobitowy - jedyny szesnastobitowy został
wykorzystany do zliczania zewnętrznych impulsów. Na etapie projektowania
hardware'u nie myślałem jeszcze o wyposażeniu urządzenia w RTC. Gdybym
wtedy o tym pomyślał, to wybrałbym jakiś inny MCU. ;)
Timer jest ustawiony na prescaler 1024 i output compare 243.
-
35. Data: 2014-11-12 23:32:13
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: Atlantis <m...@w...pl>
W dniu 2014-11-12 23:20, Jakub Rakus pisze:
> Po pierwsze sprawdź czy masz dobrze skonfigurowany timer, czy na pewno
> dobrze policzyłeś wartość, którą wpisujesz do OCR (bo z tego co widzę z
> wcześniejszego litingu, to używasz trybu CTC dla Timer0).
Konfiguracja została wyliczona za pomocą programu mkAVRcalculator i
sprawdzona za pomocą jakiegoś webowego przelicznika. Prescaler ustawiony
na 1024, w rejestrze OCR0A wpisana wartość 243.
> Po drugie sprawdź czy sygnał zegarowy, którym taktujesz proca ma
> odpowiednio częstotliwość.
Dysponuję raczej "takim sobie" częstotliwościomierzem domowej roboty.
Na linii CLKOUT wskazuje 12.500xx MHz. Ostatnie dwie cyfry lekko
fluktuują, ale ma to zapewne związek z niedoskonałością samego miernika.
Z tego samego powodu nie byłem w stanie dokładnie zmierzyć
częstotliwości machania pinem - częstotliwościomierz pokazywał wartość
wahającą się pomiędzy 25Hz i 20Hz. Podejrzewam jednak, że to też było
winą miernika.
Zapomniałem dodać, że dysponuję dwoma egzemplarzami tego urządzenia.
Dryf występuje na obydwu.
-
36. Data: 2014-11-12 23:43:02
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Atlantis <m...@w...pl> napisał(a):
> Konfiguracja została wyliczona za pomocą programu mkAVRcalculator i
> sprawdzona za pomocą jakiegoś webowego przelicznika. Prescaler ustawiony
> na 1024, w rejestrze OCR0A wpisana wartość 243.
Tylko skąd my mamy wiedzieć co Ty tam powyliczałeś :) Podaj wartości
rejestrów, w szczególności TCCR0. Czy ten timer działa w trybie CTC? Co się
ma dziać przy osiągnięciu wartości 243 przez licznik, oprócz samego faktu
wygenerowania przerwania?
Nieśmiało podejrzewam, że zacząłeś testować NTP bez sprawdzenia poprawności
konfiguracji timera.
> Dysponuję raczej "takim sobie" częstotliwościomierzem domowej roboty.
> Na linii CLKOUT wskazuje 12.500xx MHz. Ostatnie dwie cyfry lekko
> fluktuują, ale ma to zapewne związek z niedoskonałością samego miernika.
> Z tego samego powodu nie byłem w stanie dokładnie zmierzyć
> częstotliwości machania pinem - częstotliwościomierz pokazywał wartość
> wahającą się pomiędzy 25Hz i 20Hz. Podejrzewam jednak, że to też było
> winą miernika.
Bardzo polecam zaopatrzyć się w coś, co mierzy częstotliwość. Ja mam
AVT-2269 oraz oscyloskop z taką funkcją.
> Zapomniałem dodać, że dysponuję dwoma egzemplarzami tego urządzenia.
> Dryf występuje na obydwu.
Moim zdaniem na obu Twój licznik liczy do wartości 255.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 44 days, 4 hours, 45 minutes and 6 seconds
-
37. Data: 2014-11-12 23:47:03
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: Atlantis <m...@w...pl>
W dniu 2014-11-12 23:43, Grzegorz Niemirowski pisze:
> Tylko skąd my mamy wiedzieć co Ty tam powyliczałeś :) Podaj wartości
> rejestrów, w szczególności TCCR0. Czy ten timer działa w trybie CTC? Co
> się ma dziać przy osiągnięciu wartości 243 przez licznik, oprócz samego
> faktu wygenerowania przerwania?
TCCR0A |= (1 << WGM01);
TCCR0B |= ( (1 << CS02) | (1 << CS00) );
OCR0A = 243;
TIMSK0 |= (1 << OCIE0A);
> Bardzo polecam zaopatrzyć się w coś, co mierzy częstotliwość. Ja mam
> AVT-2269 oraz oscyloskop z taką funkcją.
Mój miernik częstotliwości to właśnie coś w stylu AVT-269. Zresztą te
dwie fluktuujące cyfry na końcu wyświetlanej częstotliwości nie powinny
mieć żadnego wpływu. Kalkulator po ich zmianie nie proponuje nawet innej
konfiguracji timera...
-
38. Data: 2014-11-12 23:51:31
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: Marek <f...@f...com>
On Wed, 12 Nov 2014 23:24:44 +0100, Atlantis <m...@w...pl>
wrote:
> Timer jest ustawiony na prescaler 1024 i output compare 243.
0.02/(1/(12500000/1024)) = 244.140625
jak widzisz niedokładność już jest tutaj. Jeśli ma być precyzyjnie to
tylko 16 bit timer. Można 8 bit i dodatkowa zmienna jako licznik (do
16525) ale wtedy to nonsens bo przerwanie będzie co 0.64 us. Nie
wyrobi się.
--
Marek
-
39. Data: 2014-11-12 23:57:27
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: Atlantis <m...@w...pl>
W dniu 2014-11-12 23:51, Marek pisze:
> 0.02/(1/(12500000/1024)) = 244.140625
>
> jak widzisz niedokładność już jest tutaj. Jeśli ma być precyzyjnie to
> tylko 16 bit timer. Można 8 bit i dodatkowa zmienna jako licznik (do
> 16525) ale wtedy to nonsens bo przerwanie będzie co 0.64 us. Nie wyrobi
> się.
Tylko taka niedokładność nie spowoduje 80 sekund opóźnienia po godzinie
i 10 minutach pracy...
Z niedoskonałości zdaję sobie sprawę. Do ich niwelowania miał właśnie
służyć klient NTP.
-
40. Data: 2014-11-13 00:02:52
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Atlantis <m...@w...pl> napisał(a):
> TCCR0A |= (1 << WGM01);
> TCCR0B |= ( (1 << CS02) | (1 << CS00) );
> OCR0A = 243;
> TIMSK0 |= (1 << OCIE0A);
Dzięki, wygląda poprawnie.
> Mój miernik częstotliwości to właśnie coś w stylu AVT-269. Zresztą te
> dwie fluktuujące cyfry na końcu wyświetlanej częstotliwości nie powinny
> mieć żadnego wpływu. Kalkulator po ich zmianie nie proponuje nawet innej
> konfiguracji timera...
Takie fluktuacje nie powinny mieć miejsca, częstotliwość nie może pływać z
odchyleniem 10%. Może coś nie tak z sygnałem zegarowym? Używasz wewnętrznego
generatora RC czy kwarca? Wymieniałeś kwarc? Swoją drogą dobrze poszukać
kwarcu, który będzie miał częstotliwość dającą się odpowiednio podzielić.
Dlatego w handlu są kwarce o częstotliwościach w rodzaju 3,6864 MHz.
Może trzeba by skopiować projekt i w tej kopii powoli wywalać kolejne rzeczy
aż zostanie sam timer? Bo może coś przeszkadza, jakieś inne przerwanie.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 44 days, 5 hours, 2 minutes and 18 seconds