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



Teraz jest 21 maja 2026, o 06:30


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 26 sie 2014, o 01:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Witam, jako że nie mam zielonej książki Mirka, próbuje we własnym zakresie ogarnąć moduły RFM73. Utknąłem juz na samym początku. Próbuje odczytać rejestry w tym module, z noty wynika, że powinienem wysłać komendę odczytu czyli 0x00 a następnie wprowadzić adres wybranego rejestru. Wiec wybieram sobie rejestr 0x07 o nazwie "status".
Czy skrócony kod odczytu jest prawidłowy?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Funkcja do transmisji przez spi jednocześnie wysyła i odbiera dane - taka jak w BB w rozdziale o spi.
Chciałbym by co sekundę był przełączanie bank i jednocześnie wyświetlać tą informację na LCD, niestety cały czas pokazuje mi wartość 0. Gdy odczytać cały rejestr 07 dostaje wynik 14 czyli taki jaki powinien być po reszcie w tym rejestrze. Zastanawiam się dlaczego nie zmienia mi się ten bank. W necie pdf pisze ze wysyłanie danych 0x53 powoduje przełączanie banków. Nie wiem też czy powinienem wystawiać na początku stan niski na pinie CSN (podpięty pod pin SS w uC)., a po transmisji danych przywraca stan wysoki. Gdy tak robię uzyskuje jakieś inne dane. Może ktoś pomóc z tymi modułami?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sie 2014, o 19:39 
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

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


Na stronie HopeRF są przykłady, ale na mikrokontoler PIC. Nie powinno to jednak być problemem. Podstawowe funkcje transmisji po SPI się zmienią, a reszta będzie taka sama.

PS.
Zamiast 0x50 stosuj nazwy. W tych przykładach w pliku h masz już gotowe definicje komend i rejestrów.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2014, o 16:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Dzięki za pomoc :) ogólnie powiem Ci mój sposób tez zaczął działać, choć ten podany prze Ciebie jest lepszy, w sumie taki sam jak z przykładów firmy Hopfer.

Problemem jest samo SPI, muszę odłączyć całkiem moduł żeby zaprogramować uC i dodatkowo jest bardzo wrażliwe. Ogólnie odczyt i zapis działa.

Teraz chciałbym "sztucznie" wysłać modułowi jakieś dane do bufora odbiorczego żeby sprawdzić czy funkcje odczytu i zapisu (czyli wysyłanie i odbieranie) działają. I jest problem, bo na LCD widnieje piękne "0". Co sugeruje jakby nie zapisywały się dane.


ponizsze funkcje są z biblioteki ogolnodostepnej na necie

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: 27 sie 2014, o 17:02 
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

Atmegowiec napisał(a):
Problemem jest samo SPI, muszę odłączyć całkiem moduł żeby zaprogramować uC i dodatkowo jest bardzo wrażliwe. Ogólnie odczyt i zapis działa.
A masz pin CSN podciągnięty zewnętrznym rezystorem do +5V?

Musisz odróżnić rejestr od komendy. Nie ma rejestru RFM73_CMD_W_TX_PAYLOAD.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2014, o 19:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Krauser napisał(a):
A masz pin CSN podciągnięty zewnętrznym rezystorem do +5V?

Nie mam, hmm, spróbuję, ale tak czy tak raczej z wpietym rfm73 nie da sie zabardzo tego zaprogramowac, ale masz racje powinna ta nadwrazliwość zniknąć.

tak, rozróżniam komendy od rejestrów, moze nie wyraziłem się z byt precyzyjnie. Czy ten mod ma szansze działac? Czy to nie jest takie proste ;/ ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2014, o 20:17 
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

U mnie nie zauważyłem żadnego błędnego działania podczas programowania pomimo współdzielenia MISO, MOSI i SCK i w sumie oprócz programatora i modułu nic więcej nie mam. Procesor jest zasilony z 5V, a moduł RFM73 z 3,3V i są połączone bezpośrednio.

Komendy różnią się tym od rejestrów, że coś się dzieje. Mają adres wyższy niż 0x20 (co trochę sugeruje, że są do zapisu) i działają inaczej. O RFM73_CMD_W_TX_PAYLOAD wiadomo tyle, że służy do wpisywania kolejnych bajtów próba odczytu to kolejne wpisanie czegoś, ale kto powiedział, że na MISO coś się w ogóle pojawia. Inaczej działa RFM73_CMD_R_RX_PAYLOAD jak wpisujesz kolejne bajty to odbierasz zawartość FIFO.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2014, o 21:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

hmm to już nie wiem wywnioskowałem z pdf i bibliotek przykładowych ze wykorzystując te komendy można zapisywać do bufora dane. Nie wiem może spróbuje jeszcze poczytać, to coś znajdę. a tak nawiasem... Moduły rfm12B to tak samo trzeba biblioteki robić, czego można użyć żeby nie było tylu cyrków jak z tym? oprócz BT bo drogo wychodzi no i połączenie z jednym urządzeniem tylko.

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


tu jest przykład wysyłania wiadomosci z biblioteki i tak patrze to w sumei to jest tak włąsnie wpisywane ze wpisywana jest komenda potem bufor do wtysłąnia i długosc, wiec skopiowałem to i zapisałem w ten sposób dane i ponownie próbuje to odczytać i same zera ;/ nie ma mozliwosci sprawdzenia czy nasze dane rzeczywiscie tam siedzą?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2014, o 20:49 
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

Dobrze wnioskowałeś, ale zapis FIFO to jedno a odczyt to drugie. To co zapiszesz zostanie wysłane, a to co możesz odczytać to odebrane drogą radiową dane.

Atmegowiec napisał(a):
czego można użyć żeby nie było tylu cyrków jak z tym?

Transceivery RFM - czego użyć żeby nie żałować? ;)

Generalnie im nowszy moduł tym lepszy, bo ma więcej funkcji i jest prostszy do oprogramowania.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2014, o 16:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

dzieki za odpowiediz, masz jakies typy odnoście tych bardziej "łatwych w programowaniu" ?i w miare ta nich? bo wizicon prawie 100 zł le fakt tam wszystko "samo działa" prawie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 wrz 2014, o 18:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Witam, jednak ciagle się z tym męczę, cały czas jest problem z odczytem zwykłych rejestrów, a bez 100% pewnosci nie ud sie chyba nic zrobić.
Problem jest taki jak wcześniej: są zwracane nieprawidłowe wartości niż by to wynikało z danych w nocie pdf, przykładowo wysyłając komendę odczytu rejestru:
0x00, mam wynik 15 ( w nocie wartość początkowa rejestru to 8)
0x01, mam wynik 63 ( w nocie wartość początkowa rejestru to 63)
0x02, mam wynik 63 ( w nocie wartość początkowa rejestru to 3 )
itd.

Edit:
-wartości sa poprawne, trzeba po uruchomieniu sprzętu dodatkowo zresetować "mechanicznie" moduł radiowy...
I teraz pytanie czy to normalne zachowanie?
Jesli tak jest to trzeba by było wymyślić jak go zresetowac programowo, hmm, jakies pomysły? mi sie od razu pomysłało ze mozna by napisac funkcje ktora na poczatku programu odczyta wartosci rejestrów i zpisze do tabeli a potem tylko zwyczajnie je przywracac w razie potrzeby.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 wrz 2014, o 23:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Odbiornik po wykryciu danych powinien wyświetlić ich wartość na lcd, niezależnie gdy dane będą większe od zer (w zamyśle bufor odbiorczy zapełniony) dioda powinna sie zaświecić. Z koleji moduł nadawczy zwyczajnie zapisuje co kikanascie ms do bufora nadawczego "1". No i brak połączenia :( ob moduły reagują na odczytywanie innych rejestrów. Czy według Was kod jest poprawny?
programowo u mnie sprawa stoi tak:

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


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


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


Śmieszne jest to ze odłaczyłem GND od modułu a on dalej jest pod napieciem... i dioda sygnalizuje prawidłowy odczyt rejestru statusu.. czemu tak?.. gdy odepnę z koleji VCC od modułu to gaśnie z kilka sekund dopiero. Jakim cudem bez podłączonej masy ten ukłąd działa?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 paź 2014, o 21:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Jakby ktoś był ciekawy osiągów rfm73S to w mieszkaniu jest to 10m. W terenie otwartym w linii prostej (gdy moduły się widzą) jest jakieś 80 metrów dość pewnego sygnału. Jednakże zaraz po przekroczeniu tej granicy następuje w sumie natychmiastowe zerwanie sygnału. O ile z zasięgu w pionie w mieszkaniu jestem zadowolony to zasięg w poziomie mnie rozczarował - 10m - w zasadzie z przeszkód to mogę tylko wymienić okno.
Obecnie nadajnik działa już czwarty dzień, wyliczyłem ze powinien teoretycznie wytrzymać ok. 20 dni - zobaczymy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 paź 2014, o 20:12 
Offline
Użytkownik

Dołączył(a): 17 sty 2013
Posty: 327
Lokalizacja: Białystok
Pomógł: 14

Mi udało się uzyskać 15m przerywanego połączenia w pomieszczeniu, 11m pewnego połączenia przez 2 ścianki z karton-gipsu. W pionie zasięg jest ok (1 piętro)



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: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO