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



Teraz jest 18 kwi 2024, o 02:32


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 108 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4
Autor Wiadomość
PostNapisane: 7 lut 2013, o 13:25 
Offline
Użytkownik

Dołączył(a): 01 lis 2012
Posty: 42
Pomógł: 0

Dzięki za wzkazówki. Miałem taką funkcje w bibliotece pod nosem tylko jakoś bałem się jej użyć:)
Teraz przeszedłem do etapu testowania układów RFM i wpadłem w niezły kanał bo nie mam jak sprawdzić poprawności działania ponieważ nie mam 2 masterów z uartem , ani żadnych diód sygnalizacyjnych. No nic będę błądził po omacku. Pierwsza sprawa to mam następującą funkcję do odpioru danych. I nie wiem czy ona wygeneruje mi przerwanie na porcie IRQ czy muszę to sam obsłużyć? Bo przerwanie INT0 mam ustawione ale nic się nie dzieje. Oto kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Czy może ustawienie bitów rejestru RFM70_IRQ_STATUS_RX_DR generuje impuls przerwania?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lut 2013, o 14:15 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Najpierw konfigurujesz mikrokontroler i RFM, potem czekasz, aż moduł wygeneruje przerwanie. W przerwaniu wstawiasz flagę, którą sprawdzasz w pętli głównej. Jak jest ustawiona to dopiero odczytujesz dane.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2013, o 13:27 
Offline
Użytkownik

Dołączył(a): 01 lis 2012
Posty: 42
Pomógł: 0

OK, jakoś zadziałało. Tylko mam problem z jednym układem Slave. To znaczy nie wysyła danych mimo takiego samego programu i budowy co drugi Slave. Nie wiem w czym leży problem, układ sprawdzałem kilka krotnie pod względem poprawności połączeń na płytce. Czy problemem mogą być fusebity. Nie ruszałem ich ale przy programowaniu przez AVRDUDE funkcja safemode nieraz mi wyżucała że jakieś fusy zostały zmienione i czy przywrucić? Po sprawdzeniu fusuów mam takie wartości:
Obrazek

A co lepsze ten układ co działa całkiem jest pomieszany bo te wartości ma takie: 0000 ff, 0000 ff
Gdzie szukać błędów?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2013, o 16:41 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Te 0000 to adresowanie i jest tu bez znaczenia.
Prosto z fabryki fusebity dla ATMEGA88P(A) są następujące:
lfuse 62
hfuse DF
efuse F9

Natomiast w tym co odczytałeś lfuse FF i hfuse FF to nie powinien działać, a nawet dać się zaprogramować. Tak jakby się odłączył
Może odczytaj wszystko na raz:
Kod:
C:\tmp_mkavrcalc\atb_ft232_isp\avrdude -p atmega88p -c ATB-FT232R -P ft0 -B 4800  -U lfuse:r:"lfuse.hex":i -U hfuse:r:"hfusei.hex":i -U efuse:r:"efuse.hex":i

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2013, o 17:16 
Offline
Użytkownik

Dołączył(a): 01 lis 2012
Posty: 42
Pomógł: 0

Dziwna sprawa bo mimo to już wszystko działa i komunikacja z procesorami jest możliwa. Inny problem znalazłem po stronie jednego układu RFM który nie chciał wysyłać. Dziwi mnie też to zachowanie bo gdy odlutowałem połączenie od pinu CE układ zaczął wysyłać a przedtem był na nim stan wysoki. W nocie czytam że stan niski osnacza tryb Standby I a wysoki Standby II w którym to po wpisaniu coś do bufora TX automatycznie powinna odbyś się transmisja. A teraz mam czły czas stan niski i transmisja działa, dziwne?
Ale teraz zasanawiam się nad tym jak wygląda ramka gdy nie używam ani potwierdzeń ani Podsieci(Pipes). Czy tam nadal używane są adresy? Jeśli tak to gdzie to przez układ odczytać bo nie znalazłem takiej komórki rejestru oprócz konfiguracji pipes.
Również otrzymałem dziwne pomiary prądu. Miernik pokazał 2mA na jednym i na drugim 1,6mA. A w nocie jest napisane że przy transmisji RFM pobiera 23ma. Czy to jest niewykrywalne dla miernika przez tak krótki czas transmisji?
Jeszcze miałem problem z funkcją set_sleep_mode(); mimo załączonej bibliotek wyrzycało mi nieznaną funkcję i zrobiłem to ręcznie.
SMCR|=(1<<SM0)|(1<<SM1);
SMCR|=(1<<SE);
SMCR&=~(1<<SE);



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2013, o 14:20 
Offline
Użytkownik

Dołączył(a): 01 lis 2012
Posty: 42
Pomógł: 0

Moja praca zbliża się już do ukończenia. Jestem na etapie testowania poboru prądu i zasięgu modułów. I spodkałem się z dziwnymi wartośiami pomiarów. Czy ktoś mógłby wyjaśnić moje spostrzeżenia.
Mam 2 moduły bezprzewodowe. Po uśpieniu mikrokontrolerów w 1 przypadku pobór prądu wynosi 1,55mA a w drugim 1,95mA. Oczywiśie to jest prąd pobierany przez cały układ a nie tylko przez procesor. A gdy wyeliminuje w programie fragment kodu odpowiedzialny za uśpienie i wyłączenie BOD pobór prądu spada w jednym przypadku do 0,95mA a w drugim 1,33mA. Dlaczego?
Oto kod:
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: 28 lut 2013, o 18:21 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Nie usypiasz procesora, bo nie masz instrukcji asemblerowej sleep.
Jednak radzę korzystać z funkcji, bo wyłączanie BODa musi być zgrane czasowo z uśpieniem.
Przykład z wyłączaniem BODa jest pod koniec tego opisu:
http://nongnu.org/avr-libc/user-manual/ ... sleep.html

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2013, o 13:44 
Offline
Użytkownik

Dołączył(a): 06 mar 2013
Posty: 39
Pomógł: 0

Witam, przymierzam się do zrobienia pomiaru temperatury za pomocą DS18B20, używam Atmega32, wyświetleniem na LCD, przesłaniem przez moduły radiowe RFM73 do odbiornika (kolejna atmega32), wyświetleniem na LCD, czy poprawną wartość przesłało, oraz następnie przez RS232 do komputera.

Na razie męczę się z jakąkolwiek komunikacją przez RFM73, jednak musiałbym już powoli wytrawiać płytki PCB (schematy robię w Eagle).
Poniżej zamieszczam schematy dla nadajnika i odbiornika, proszę o wszelkie uwagi, co poprawić, co zmienić.

ObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2013, o 09:40 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

- zasilasz RFM70 z 5V(w nadajniku)
- IC1 ma symbol 7805 (stabilizator serii 78XXna 3,3V nie będzie działał w takiej konfiguracji lepiej dać LM1117-3.3)
- do AREF dodaj kondensator 100nF do masy
- procesorkowi też dodaj mały kondensator elektrolityczny blisko nóżek zasilania
- na linii CSN dodaj rezystor 10k podciągający do 3V3 lub 5V (chodzi o to, żeby RFM70 był nieaktywny gdy procesor jest programowany)
- LCD nie ma potencjometru do regulacji kontrastu
- nie używasz symboli 5V, 3V3, GND z biblioteki supply (supply2)

Widziałeś ten kurs ?
http://atnel.pl/kurs-cadsoft-eagle.html

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2013, o 10:43 
Offline
Użytkownik

Dołączył(a): 06 mar 2013
Posty: 39
Pomógł: 0

Ogólnie zamiast rfm70, powinien być rfm73 ;) w przypadku schematu to ogolnie bez znaczeni

RFM w nadajniku zasilam z 3.3V - moje niedopatrzenie.
Mam stabilizator na 3.3V - jednak nie miałem żadnego w bibliotece, stąd drugi raz dałem 7805 - w praktyce będzie na 100% 3.3V
Co mi daje ten kondestator przy AREF?
Czyli przy nóżkach zasilania procka dać po dwa kondensatory? 100nF i 470uF?
Bez rezystora na linii CSN, bez problemu mi programowało, jest to konieczne?
Potencjometr myślę nie jest konieczny, zawsze mogę ewentualnie na innym module poprawić kontrast
Konieczne jest używanie tych symboli?

Ogólnie przyznam mam bałagan, ale chodzi mi o poprawność układu, a nie np. czy linie są w sposób 'poprawny czytelny' prowadzone ;) ale dziekuję bede poprawiał wg uwag



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2013, o 10:56 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

1. Dla poprawności wartość tego stabilizatora powinieneś zmienić. Eagle zapyta się czy na pewno chcesz to zrobić.
2. Kondensator na AREF wymagany do poprawnej pracy wewnętrznego źródła napięcia odniesienia.
3. Daj 100nF i 47uF - pamiętając by umieścić je blisko tych nóżek procesora na PCB
4. Jak dobrze programowało to spoko. Nie potrzeba rezystora.
5. Jak szkoda potencjometru to dodaj rezystory i nie musisz ich montować, a w razie czego przylutujesz. Jak szkoda miejsca to daj SMD.
6. Używanie symboli nie jest konieczne do zaprojektowania płytki, ale trudniej się sprawdza i założę się, że w ten sposób dłużej schodzi. Ja zawsze wyszukuje raz te symbole, a później kopiuje ile tam razy potrzeba.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2013, o 12:20 
Offline
Użytkownik

Dołączył(a): 06 mar 2013
Posty: 39
Pomógł: 0

ok, potem pozmieniam co się da, dzięki za wskazówki
mam pytanie, odnośnie resetu pin 9 na atmedze. Otóż mam go podłączonego przez rezystor do VCC. ale przy programowaniu (nóżka 5 programatora) nie może on być tak podłączony, tylko bezpośrednio do programatora.
Czy mogę tutaj użyć jakiegoś jumpera, że będę zmieniał, w zależności od potrzeby, czy reset z atmegi połączyć z rezystorem i VCC czy może połączyć z programatorem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2013, o 17:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lut 2013
Posty: 84
Pomógł: 8

Nie potrzebujesz żadnego jumpera, reset zostanie bez problemu wymuszony przez programator.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 wrz 2013, o 21:41 
Offline
Użytkownik

Dołączył(a): 06 mar 2013
Posty: 39
Pomógł: 0

odświeżam temat, bo próbuje uruchomić rfm73, na razie nie za bardzo działa, ale chciałem zapytać o schemat, żeby nie było żadnych wątpliwości co do poprawności. Na razie prezentuję sam nadajnik, na podstawie uwag i błędów odpowiednio poprawiony zrobię odbiornik.
Dziękuję za wszelkie uwagi

ObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 wrz 2013, o 19:16 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

1. Używaj symboli GND, 3V3 i 5V z biblioteki Supply1
2. C4 może być mniejszy
3. Brakuje elektrolita blisko nóżki VCC procesora
4. Jak masz procesor zasilony z 3,3V a LCD z 5V to nie używaj R/W, bo sobie uszkodzisz procesor. Można za to zasilić procesor z 5V, bo RFM73 może pracować w takiej konfiguracji jako, że jego wejścia akceptują poziom napięcia 5V pomimo zasilania z 3,3V.
5. Na płytce nie powinno być masy pod anteną RFM, bo ograniczy to zasięg. Jeśli planujesz dać gniazdo to może nie będzie źle, bo moduł, będzie troszkę wyżej.
6. Po co ten Jumper na linii reset ?

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 wrz 2013, o 06:07 
Offline
Użytkownik

Dołączył(a): 06 mar 2013
Posty: 39
Pomógł: 0

ad 3. Ok dodam,
ad4. LCD zasilałem z 3.3V to były słabo napisy widoczne (chyba, że to kwestia ustawienia potencjometrem i na 3.3V też powinien LCD chodzić?
5. Mam gniazdo, na razie nie wiem jaki zasięg, bo mi komunikacja rfm nie działa, może właśnie przez tą masę pod anteną
6. Żeby programować, wydawało mi się, że automatycznie nie resetuje podczas programowania, ale nie jestem pewien.

Dzięki !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 wrz 2013, o 12:15 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3187
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 89

fala19 napisał(a):
Żeby programować, wydawało mi się, że automatycznie nie resetuje podczas programowania, ale nie jestem pewien.


Resetuje, po to przecież tam jest, zworka zbędna.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 wrz 2013, o 21:10 
Offline
Użytkownik

Dołączył(a): 06 mar 2013
Posty: 39
Pomógł: 0

kiedyś na stykowej właśnie miałem linię bez jumpera i mi nie chciał się zaprogramować, musiałem usunąć linię zasilania i programowanie ruszyło,
dlatego wolę mieć takie zabezpieczenie



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: 108 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO