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



Teraz jest 14 gru 2024, o 00:49


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 16 gru 2016, o 14:22 
Offline
Użytkownik

Dołączył(a): 20 lut 2013
Posty: 166
Pomógł: 0

Witam wszystkich! Sytuacja wygląda następująco ... próbuje sobie zrobić "prosty" układ centralki alarmowej. Idea przedstawiona na rysunku poniżej:

Obrazek

Komunikacja w układzie "Nadajnika" ---> Wspólne Programowe SPI dla Mifare (pin CS podciągnięty do plus przez rezystor 10k i podłączony do PD7)i RFM69C (pin CS podciągnięty do plus przez rezystor 10k i podłączony do PB0).

W tym momencie sytuacja wygląda dynamicznie :cry: i wygląda na to jakby szwankowała komunikacja z Mifare i RFM69 i sterowaniem tymi CS, chociaż każdy z tym układów steruje swoim wyprowadzeniem CS w czasie komunikacji więc nie powinno być konfliktów :?: Próbowałem dołożyć do bibliotek (zarówno Mifare jak i RFM69) wyłączanie drugiego układu w czasie gdy ten coś tworzy na SPI, ale nic to nie pomogło.

Zauważyłem taką zależność, że wszystko jest dobrze gdy RFM69 komunikują się "od razu" i niema powtórnego wysyłania danych bo nie zostały odebrane ... Jak nastąpi taka sytuacja to jest kaplica tzn Mifare pada i przestaje odczytywać karty ( sprawdzałem przy użyciu timera programowego i zmiennej jako TOGGLE czy procesor w tym stanie działa i zmienna się zmienia na LCD), więc wygląda jakby padała komunikacja po SPI programowym.

Poniżej zamieszczam schemat jak to jest fizycznie podłączone w obu przypadkach:

Obrazek

Obrazek

Co do bibliotek do do RFM69 to biblioteka z GreenBooka a jeśli chodzi o Mifare to biblioteka znaleziona gdzieś w internecie ale działa bo karty odczytuje tak jak tego potrzebuje, pytanie czy przez tą wspólną magistralę SPI się nie gryzą wzajemnie :?:

Jeśli chodzi o moją radosną twórczość programistyczną to na ten moment wygląda to mniej więcej tak:

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


CENTRALKA ----> main.c

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


Na koniec dodam jeszcze, że obie atmegi taktowane kwarcem 11,0592 Mhz i w obu rfm włączone używanie przerwania INT1. Wcześniej jedna była taktowana 11,0592 a druga wewnętrznym 8Mhz i wyłączone były przerwania od GPIO0 i efekt był taki sam. Więc problem leży gdzieś indziej ... tylko gdzie :?:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 gru 2016, o 15:56 
Offline
Użytkownik

Dołączył(a): 20 lut 2013
Posty: 166
Pomógł: 0

Częściowo sobie sam odpowiem ... pomogło "doraźnie" blokowanie zmienną wysyłania rfm w czasie gdy odczytuje karte mifar i odwrotnie + dodanie ponownej inicjalizacji mifara przed każdym odczytem karty ... gorsza sprawa że rfm potrafią tak stracić komunikację że nadajnik ciągle próbuje nadawać a odpowiedz brak ... czasami jest tak że po kilku wysłaniach centralka w końcu "Zrozumie" i wszystko zwaca na chwilę do normy ... ale przez te długie przestoje "tracą się dane" np. karta jest położona na mifarze i odczytywana co np. 5 sekund ... a i tak przerwy w komunikacji są dłuższe i karta zmieni stan kilka razy a dane do centralki nie zostaną wysłane ...

Zrobiłem już taką próbę że w ogóle odłączyłem mifare. Zamiast karty w nadajniku dodałem zmianę w timerze programowym zmiennej odpowiedzialnej za zmianę wysyłanej do centralki wiadomości ... i sytuacja jest taka sama z tymi przerwami w komunikacji

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: 19 gru 2016, o 18:34 
Offline
Użytkownik

Dołączył(a): 20 lut 2013
Posty: 166
Pomógł: 0

Czynie dalsze próby ale z mizernym efektem ... Sytuacja obecnie wygląda tak, że Wysyłam najpierw wiadomość "powitalną" z nadajnika do centralki, ta jeśli odbierze tą wiadomość to wysyła do nadajnika prośbę o padanie stanu alarmu, nadajnik go do centralki i transmisja jest kończona jak no nadajnika dotrze wiadomość że centralka odebrała stan alarmu. Na początku wszystko jest dobrze ... dane wysyłane są do centralki i ta to odbiera ... ale po kilku, kilkudziesięciu ... różnie to bywa poprawnego przesłania. Następuje wielka przerwa i centralka nie odbiera już ani stanu alarmu ani ponownego rozpoczęcia transmisji od powitania :( Jest ktoś w stanie coś doradzić ... głupi już jestem z tego wszystkiego :cry: . Poniżej daję kod pętla główna i funkcja do obróbki danych odebranych:

Kod nadajnika:

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



Kod centralki:

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: 2 sty 2017, o 19:21 
Offline
Użytkownik

Dołączył(a): 20 lut 2013
Posty: 166
Pomógł: 0

Stwierdziłem że trzeba spróbować jeszcze prościej ... a więc tak... Nadajnik nadaje ciągle do puki centralka nie potwierdzi odbioru danych, wtedy kończy nadawanie do czasu zmiany zmiennej ustaw_alarm (zmiana co 10 sekund) po czym nadaje ponownie i tak na okrągło ... problem w tym że oczywiście pierwszy raz przejdzie i się zatrzymuje ... zmienna ustaw_alarm zmieni się i znowu następuje wysyłani, i jest kaput ... od teraz może nadawać do "usranej śmierci" a centralka i tak nie odbiera tych danych :/

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


Kod centralki:
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: 4 ] 

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