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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 9 maja 2025, o 12:54


    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 ] [ Zaznacz wszystko ]
    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: 3228
    Lokalizacja: Kraków - obok FAB5 ATMEL'a
    Pomógł: 91

    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.

    _________________
    http://www.jaglarz.info



    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ł: Google [Bot] i 0 gości


    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