Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 26 lut 2026, o 05:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 30 kwi 2015, o 20:25 
Offline
Nowy

Dołączył(a): 20 kwi 2015
Posty: 5
Pomógł: 0

Cześć.

Nie wiem, czy mogę tutaj prosić o pomoc - nie jestem szczęśliwym posiadaczem książki - zastanawiam się nad jej kupnem, oraz paru zabawek (usbasp czy moduły wifi). Niemniej z powodów ograniczonego budżetu w tym miesiącu nabyłem elementy niezbędne do prototypowania + RPi - mam dzięki temu komputer sterujący, jak i programator w jednym :D W całości piszę na RPi pod ssh i tam też programuje układy. Postanowiłem zrobić siec mikrokontrolerów, które będą sterowane i odpytywane przez RPi, który będzie wyniki składował w bazie danych, dawał interface www, łączył się przez telefon etc. Zrobiłem zatem magistrale uart (docelowo ma to być rs485). Na początku na 2 Atmega8 i jednym RPi - jednak podczas wysyłania ciągu z atmegi do rpi i jego odbioru potem, okazało się, że tracę pewne dane. Problemem było ustawienie złej ilości bitów stopu. Jak ustawiłem dobrze, to teraz każdy znak, jest odbierany i wysyłany - problem, że czasami atmega odpowiada krzakami, zamiast znaku. Czasami wyśle kilkadziesiat znaków i jest ok, a czasami i już po 3-4 jest kicha i potem znów wraca do zdrowia. Podłączyłem diodę, którą migam, jak znak jest literą. Znak x robi mi echo tego co napisałem. Widzę, że jak piszę np. test przy wpisywaniu s nie miga i faktycznie zamiast s dostaje jednoznakowego krzaka. Próbuję to robić z jedną i z dwoma atmegami - non stop to samo. W atmedze mam 8 mhz rezonator wewnętrzny. Przesyłam kod - prosiłbym o zerknięcie, czy może programowo coś źle robie ? Jak nie to z czego może wynikać takie zachowanie ?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2015, o 20:30 
Offline
Użytkownik

Dołączył(a): 26 lut 2014
Posty: 227
Lokalizacja: LDZ
Pomógł: 22

Problemem najprawdopodobniej jest rezonator wewnętrzny, a raczej jego dokładność. Sprawdź na jakimś kwarcu czy będzie dobrze bo kod wygląda ok.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2015, o 21:06 
Offline
Użytkownik

Dołączył(a): 29 wrz 2014
Posty: 28
Pomógł: 5

Całkiem możliwe, że właśnie wewnętrzny rezonator jest niedokładny. Miałem podobnie przy komunikacji ATtiny2313 z terminalem Putty przez USB(czasem "krzaki" czasem "coś normalnego"). Problemem było złe wykalibrowanie wewnętrznego kwarca(mimo, że reszta ustawień była w porządku). Pan Mirek w BB na temat UART-a opisuje ten problem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2015, o 21:15 
Offline
Nowy

Dołączył(a): 20 kwi 2015
Posty: 5
Pomógł: 0

Chciałem zastosować kwarc "uartowy", ale nie miałem, to stwierdziłem, że te 8Mhz da mi taki sam błąd jak na krysztale ... Powiem, wam, że wiedziałem, że nie zaleca się pracy na wewnętrznym, ale sądziłem, że przy małych prędkościach jakoś ujdzie ;) Niemniej zdeterminowaliscie mnie i wylutowałem z jakiejś starej płytki 12Mhz i.. działa ... bez zarzutu ... Dzięki za pomoc - to jesnak kwestia kwarcu - chyba już zawsze będę korzystał z zewnętrznego ... Nic - teraz pchnę swój projekt do przodu ;) Dzięki !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2015, o 08:01 
Offline
Użytkownik

Dołączył(a): 11 wrz 2013
Posty: 709
Zbananowany użytkownik

Pomógł: 23

Heheheh.
Po pierwsze nie ma czegoś takiego jak wewnętrzny kwarc :D.
Po drugie tu nie chodzi o niedokładność taktowania samego procka, a o niedokładność w stosunku do prędkości USART-a.
Dla ATMegi8 wszystko jest w tabelkach od str. 154 DS-a.

--
Pozdrawiam.
Grzegorz...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2015, o 08:53 
Offline
Nowy

Dołączył(a): 20 kwi 2015
Posty: 5
Pomógł: 0

Może nie ma wewnętrznego kwarcu, ale jest oscylator ;) Co do tabelki to wiem o niej i błąd dla 8Mhz jest taki sam, jak dla 12Mhz, problem z dokładnością tego oscylatora, bo z tego wynika, że nie działa on zawsze równo ( ten wewnętrzny).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2015, o 19:41 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

A jak u ciebie wygląda dokładność przy 250000kbps ?
Może przez przypadek oscylator był ustawiony na 1 MHz, i to wygenerowało problemy.

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO