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



Teraz jest 30 lis 2024, o 12:01


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 31 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 23 paź 2020, o 12:17 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2020, o 12:20 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

trzeba sprawdzić po prostu

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2020, o 13:22 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

No właśnie tak zrobię, tylko chiałem się najpierw upewnić przed zbudowaniem tych 30 urządzeń.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2020, o 14:00 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

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ć

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2020, o 15:11 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

ok dzięki. Jest przynajmniej cień szansy więc próbuję. Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2020, o 15:18 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2020, o 16:28 
Offline
Użytkownik

Dołączył(a): 26 mar 2014
Posty: 34
Pomógł: 11

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 paź 2020, o 16:34 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2020, o 11:23 
Offline
Użytkownik

Dołączył(a): 26 mar 2014
Posty: 34
Pomógł: 11

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 ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2020, o 17:41 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2020, o 18:55 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

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ą

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2020, o 20:16 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

No przecież nie mam kilku stykówek, a płytki w Chinach są tańsze niż stykówki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2020, o 21:21 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

acid255 napisał(a):
a płytki w Chinach są tańsze niż stykówki

hehehe no coś w tym jest

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2020, o 21:37 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2020, o 21:34 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

Projekt wykonany:

Obrazek


Teraz to co tygrysy lubią najbardziej :) - kodzik



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2020, o 21:40 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Fajnie wygląda, super,
Hmmm zastanawia mnie ta "elektrownia" na plytce hehehe, tosz przy subwooferach w klasie D takie są hehehe



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2020, o 08:40 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

aj tam, to jest prototyp więc dałem co mam w szafce



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2020, o 23:07 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

Proszę o pomoc. Dlaczego nie nie działa mi SPI sprzętowe, a na programowym wszystko śmiga. Moja konfiguracja SPI to:
Składnia: [ Pobierz ] [ Ukryj ]
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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2020, o 13:18 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

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.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2020, o 13:46 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2020, o 17:33 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

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?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2020, o 17:42 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

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 ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2020, o 17:59 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

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 ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2020, o 19:35 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

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.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2020, o 20:34 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

i wszystko bardzo ładnie działa. Dziękuję Panie Mirku raz jeszcze.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2020, o 19:00 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2020, o 20:04 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

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ą ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2020, o 08:02 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

To może prościej zapytam. Czy wywołanie funkcji odbiorczej
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
może doprowadzić do zawieszania się procka ? ( przy założeniu, że na SPI są dwa urządzenia).
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:

Składnia: [ Pobierz ] [ Ukryj ]
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:
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 lis 2020, o 12:01 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

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 :D . Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2020, o 12:08 
Offline
Użytkownik

Dołączył(a): 25 mar 2014
Posty: 84
Pomógł: 0

Jeszcze jedno pytanko ( w tym roku :D ). 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:

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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 31 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników 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