ATNEL tech-forum https://forum.atnel.pl/ |
|
Pytanie dotyczące układu NRF24L01 https://forum.atnel.pl/topic23397.html |
Strona 1 z 2 |
Autor: | acid255 [ 23 paź 2020, o 12:17 ] |
Tytuł: | Pytanie dotyczące układu NRF24L01 |
Proszę o informację na następujący problem: Chciałbym zbudować 30szt. układów ( na NRF24L01 ) , które będą wysyłać pewną ramkę do powiedzmy "routera" opartego na NRF24L01. Ów '"router" będzie zbierał te informację i wysyłał dane do komputera przez RS232. Ramki będą wysyłane losowo co około 5 sekund. Moje pytanie brzmi - czy taka duża ilość układów NRF będzie prawidłowo działała. Dodam że wszystkie układy mają działać na jednym kanale. Całość będzie oparta o bibliotekę Atnel. Pozdrawiam. |
Autor: | mirekk36 [ 23 paź 2020, o 12:20 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
trzeba sprawdzić po prostu |
Autor: | acid255 [ 23 paź 2020, o 13:22 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
No właśnie tak zrobię, tylko chiałem się najpierw upewnić przed zbudowaniem tych 30 urządzeń. |
Autor: | mirekk36 [ 23 paź 2020, o 14:00 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Na początek sprawdź np na 5-ciu - czy przede wszystkim twój soft działa poprawnie. A później dodawaj. Ale przy interwałach co 5 s to chyba nie powinno być problemów nawet jeśli raz na jakiś czas zdarzy się kolizja to i tak przy automatycznych retransmisjach wszystko powinno się udać ... tak myślę, ale bez sprawdzenia empirycznie to można tylko gdybać |
Autor: | acid255 [ 23 paź 2020, o 15:11 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
ok dzięki. Jest przynajmniej cień szansy więc próbuję. Pozdrawiam. |
Autor: | Szofer [ 23 paź 2020, o 15:18 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Dodaj sobie w ramce danych 1bajt i traktuj go jako ID urządzenia, pętla odpytuje każde po kolei, na 100% działa, możesz zrobić jedna globalna komendę do przygotowania danych do wysyłki w urządzeniach, trzymasz już gotowe dane w buforze do wysłania i jak przyjdzie zapytanie z odpowiadającym ID wysyłasz |
Autor: | Mario17 [ 23 paź 2020, o 16:28 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Zamiast dodawać do ramki danych dodatkowy bajt ID, można by nadać każdemu z 30 urządzeń inny adres na pipe0, a na pipe1, jeden wspólny adres np. dla komend przygotowania danych itp. Wtedy urządzenie zbiorcze przeleci tylko po adresach i odpyta urządzenia, a gotowe ramki będą odsyłane automatycznie, razem z potwierdzeniami ACK. Przy ustawieniu maksymalnej liczby retransmisji (15), w razie braku odpowiedzi można zgłosić błąd, ze z którymś urządzeniem jest coś nie tak. |
Autor: | Szofer [ 23 paź 2020, o 16:34 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Mario17 napisał(a): Zamiast dodawać do ramki danych dodatkowy bajt ID, można by nadać każdemu z 30 urządzeń inny adres na pipe0, a na pipe1, jeden wspólny adres np. dla komend przygotowania danych itp. Wtedy urządzenie zbiorcze przeleci tylko po adresach i odpyta urządzenia, a gotowe ramki będą odsyłane automatycznie, razem z potwierdzeniami ACK. Przy ustawieniu maksymalnej liczby retransmisji (15), w razie braku odpowiedzi można zgłosić błąd, ze z którymś urządzeniem jest coś nie tak. Kolego napisałeś to samo co ja tylko w innej konfiguracji, pozatym możesz dodać x urządzeń ogranicza wielkość zmiennej, dodać time out, no cuda, cuda można pisać w kodzie
|
Autor: | Mario17 [ 24 paź 2020, o 11:23 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Tak, zgadza się. Chciałem tylko pokazać możliwość zrealizowania tego o czym Ty pisałeś ale za pomocą samych funkcjonalonści modułów, bo po co dodawać zmienną ID i potem ją filtrować softowo, kiedy to samo załatwia sprzętowo 5bajtowy adres modułu. Ale to już jak kto woli i czego wymaga dana sytuacja |
Autor: | acid255 [ 24 paź 2020, o 17:41 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
prototypy płytek zamówione. Jak to poskładam zajmę się pisaniem kodu i z pewnością skorzystam z Waszych porad. Obecnie mam takie urządzenia, które działają po wifi i można powiedzieć że to wszystko działa, ale zdarza się , że któreś z urządzeń nie podłączy się do routera i tracę od nie dane, dlatego chcę to wszystko zmienić na NRF. |
Autor: | mirekk36 [ 24 paź 2020, o 18:55 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
to nie zrobiłeś najpierw jakiegoś prototypu na jakichś zestawach albo nawet na stykówkach ? lekka masakra - no ale jak się lubi tracić kaskę to kto komu zabroni ? Ja tam zawsze wolę zrobić prototypa podstawowego na tym co mam pod ręką |
Autor: | acid255 [ 24 paź 2020, o 20:16 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
No przecież nie mam kilku stykówek, a płytki w Chinach są tańsze niż stykówki |
Autor: | mirekk36 [ 24 paź 2020, o 21:21 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
acid255 napisał(a): a płytki w Chinach są tańsze niż stykówki hehehe no coś w tym jest |
Autor: | Szofer [ 24 paź 2020, o 21:37 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
pozaty lutowane polaczenia sa o miliony % lepsze niż stykowka, nie jeden z nas się o tym juz przekonał pozdrawiam . Wysłane z mojego SM-T555 przy użyciu Tapatalka |
Autor: | acid255 [ 17 lis 2020, o 21:34 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Projekt wykonany: Teraz to co tygrysy lubią najbardziej - kodzik |
Autor: | Szofer [ 17 lis 2020, o 21:40 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Fajnie wygląda, super, Hmmm zastanawia mnie ta "elektrownia" na plytce hehehe, tosz przy subwooferach w klasie D takie są hehehe |
Autor: | acid255 [ 18 lis 2020, o 08:40 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
aj tam, to jest prototyp więc dałem co mam w szafce |
Autor: | acid255 [ 21 lis 2020, o 23:07 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Proszę o pomoc. Dlaczego nie nie działa mi SPI sprzętowe, a na programowym wszystko śmiga. Moja konfiguracja SPI to: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. W układzie mam podłączoną ATMEGĘ32 do NRFa jak w przedstawionym kodzie - czyli inaczej mam tylko aSS ( bo ATMEGA ma SS pod PB4, ale to mam już podpięte pod czytnik RFID, który też działa pod SPI). Układ mi się zawiesza przy inicjalizacji NRFa. |
Autor: | mirekk36 [ 22 lis 2020, o 13:18 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
acid255 napisał(a): bo ATMEGA ma SS pod PB4, ale to mam już podpięte pod czytnik RFID, Panie kochany to zajrzyj sobie do PDFa byle procka AVR i zobacz, że to nie ważne co ty masz podpięte czy nie - pod pin SS sprzętowego SPI. To MUSI być pin ustawiony jako wyjście do sterowania sygnałem CS i koniec. Więc już wiesz dlaczego ci nie działa sprzętowe SPI. |
Autor: | acid255 [ 22 lis 2020, o 13:46 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
czyli jak mam dwa urządzenia SPI to i tak SS musi być podpięte do pierwszego i drugiego ? A jak się w takim przypadku ustawia urządzenie które będzie w tej chwili obsługiwane ? Byłem przekonany że SS właśnie do tego służy. |
Autor: | acid255 [ 22 lis 2020, o 17:33 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
mirekk36 napisał(a): nie ważne co ty masz podpięte czy nie - pod pin SS sprzętowe skoro jest nieważne bo określam, że aSS ma być na PB3 to dlaczego jak robię USE_SOFT_SPI 0 to mi procek wisi tuż po inicjalizacji NRFa?
|
Autor: | mirekk36 [ 22 lis 2020, o 17:42 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
acid255 napisał(a): czyli jak mam dwa urządzenia SPI to i tak SS musi być podpięte do pierwszego i drugiego ? To oznacza, że nie rozumiesz jeszcze jak działa SPI, a więc doprecyzuję - pin SS MUSI być skonfigurowany gdy robisz SPI MASTER w AVR. I może on służyć do wyboru pierwszego urządzenia SPI na magistrali a jak masz drugie albo więcej to już sobie sam definiujesz kolejne piny CSx do ich wyboru. I tak wszystkimi pinami CSx łącznie z tym SS przecież sam musisz programowo działać - czyli zmieniać ich stany w odpowiednim momencie bo procek za ciebie tego nie zrobi. Tak to działa w AVR ok? ------------------------ [ Dodano po: 4 minutach ] acid255 napisał(a): skoro jest nieważne bo określam, że aSS ma być na PB3 to dlaczego jak robię USE_SOFT_SPI 0 to mi procek wisi tuż po inicjalizacji NRFa? Bo coś sobie mieszasz nie czytając noty PDF. Biblioteka definiuje piny głównie ze względu na SPI soft ... a od strony sprzętowej nie masz wyjścia i już ci to pisałem wyżej, a ty znowu, że sobie jakiś PB3 ustawiasz. To sobie ustawiaj i później się dziw że nie działa. Masz w nocie jak BYK napisane które piny to: MOSI, MISO, SCK i SS i nie zmienisz tego dla sprzętowego SPI. A nauczka dla ciebie na przyszłość taka, żeby najpierw przetestować wszystko na zestawie uruchomieniowym albo na stykówce - i może teraz zrozumiesz dlaczego pisałem o tym w tym poście: post229529.html#p229529 bo tu nie chodzi tylko o cenę płytki ale i o czas... No ale ... jeszcze troszkę podziałasz to sam dojdziesz że miałem rację czy tego chcesz czy nie |
Autor: | acid255 [ 22 lis 2020, o 17:59 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
mirekk36 napisał(a): acid255 napisał(a): czyli jak mam dwa urządzenia SPI to i tak SS musi być podpięte do pierwszego i drugiego ? pin SS MUSI być skonfigurowany gdy robisz SPI MASTER w AVR. I może on służyć do wyboru pierwszego urządzenia SPI na magistrali a jak masz drugie albo więcej to już sobie sam definiujesz kolejne piny CSx do ich wyboru. I tak wszystkimi pinami CSx łącznie z tym SS przecież sam musisz programowo działać - czyli zmieniać ich stany w odpowiednim momencie bo procek za ciebie tego nie zrobi.Dziękuję Panie Mirku za wyjaśnienie. Teraz już rozumiem - definiuję dwa porty uC jako wyjścia (np. PB3 - NRF CS i PB4 RFID CS ) i jeśli używam NRFa to na linii PB3 wystawiam stan niski, a po transmisji stan wysoki, a jeśli chcę użyć RFIDa to na PB4 wystawiam niski a potem wysoki. Czy o to tak działa ? |
Autor: | mirekk36 [ 22 lis 2020, o 19:35 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
dokładnie tak - użycie tych pinów zależy już od programisty, atmel nakazuje tylko bezwzględnie skonfigurować przynajmniej jeden pin CS właśnie ten SS aby uruchomić w ogóle sprzętowy moduł SPI. |
Autor: | acid255 [ 22 lis 2020, o 20:34 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
i wszystko bardzo ładnie działa. Dziękuję Panie Mirku raz jeszcze. |
Autor: | acid255 [ 26 lis 2020, o 19:00 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Działało fajnie, ale jak dane z karty RFID czytam zbyt często to się procek zawiesza. Odczyt karty następuje przy odbiorze kodu z NRFa ( np. AT+READ - wysyłam kilka razy komendę i po jakimś czasie odczyt karty już jest niemożliwy ). Przy odłączonym RFIDzie dane mogą być bardzo szybko przesyłane, ale przy dwóch urządzeniach na SPI już zaczyna się kaszana. Najgorsze to to, że nie mam możliwości przejść RFIDem np. na I2C, bo wtedy pewnie by działało normalnie. Obsługa SPI musi działać prawidłowo bo mogę odczytawać kartę i nadawać NRFem, ale odstęp czasu musi być duży ( parę sekund ). Zauważyłem, też że zawieszanie następuję jak układ z RFIDem zaczyna coś czytać z NRFa. |
Autor: | mirekk36 [ 26 lis 2020, o 20:04 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Ty to tak opisujesz - te problemy, jakbyś wziął procek, podłączył jakoś tam wszystko - no i zaczęła się kaszana. Sam to przeczytaj i spróbuj pomyśleć czy komukolwiek mógłbyś coś pomóc po takim opisie problemu. To tak jakby u ciebie nie było żadnego kawałka kodu źródłowego napisanego przez ciebie - tylko nie wiem - zalęgły się tam same jakieś IF'y i coś robią i kaszanią |
Autor: | acid255 [ 27 lis 2020, o 08:02 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
To może prościej zapytam. Czy wywołanie funkcji odbiorczej język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. mirekk36 napisał(a): To tak jakby u ciebie nie było żadnego kawałka kodu źródłowego napisanego przez ciebie . Przecież to nawet lepiej bo jeśli są tylko dwie biblioteki to nie ma możliwości abym to ja coś namieszał. Ja wywołuję tylko te "kolbeki" i przecież to powinno hulać. Cała reszta w main.c oprócz inicjalizacji to coś takiego: język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
a w tej funkcji parsującej NRF jest tylko: |
Autor: | acid255 [ 27 lis 2020, o 12:01 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Na chwilę obecną zrezygnowałem z odpytywania NRFa, a po prostu co 2sekundy wysyłam informację że jest aktywny. Mój "router" jak taką flagę odbierze to uznaje, że NRF żyje. Czasami trzeba się pocieszyć takim półśrodkiem . Pozdrawiam. |
Autor: | acid255 [ 22 gru 2020, o 12:08 ] |
Tytuł: | Re: Pytanie dotyczące układu NRF24L01 |
Jeszcze jedno pytanko ( w tym roku ). Nie chcę grzebać w ustawieniach biblioteki NRF więc wolę zapytać czy któreś z ustawień ma jakiś wpływ na odbieranie danych ? Bo mam taką dziwną sytuację, że działa mi 10 urządzeń nadawczych i odbiornik zbiera mi z nich informację. Zdarza się jednak ( raz na jakiś czas ) że przy nadawaniu jednego z urządzeń odbiornik przestaje odbierać dane ( jakby jakiś bufor się przepełniał czy co ). Zrobiłem w pętli głównej sprawdzenie diodą LED czy pętla się wykonuje i wygląda na to, że procesor się nie zawiesza tylko przestaje reagować na calbacki odbiorcze ( obojętnie z jakiego nadajnika ). Ramki jakie wysyłam nadajnikiem nie mają więcej niż 15 znaków + NULL. Funkcja odbioru jest banalna bo wygląda tak: |
Strona 1 z 2 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |