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



Teraz jest 10 mar 2025, o 17:16


Strefa czasowa: UTC + 1





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

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

Witam. Ciągle walczę z ujarzmieniem "zwierza" zwanego MIFARE+RFM69C na wspólnym programowym SPI. Problem jest mianowicie taki że komunikacja procesora (ATMEGA8) z RFM69C działa do puki nie przyłożę karty MIFARE do czytnika. Następuje wtedy zonk, czyli "blokada" komunikacji z RFM69C, natomiast czytnik ciągle działa i bez problemu odczytuje kartę (w każdej chwili). Wygląda na to jakby był problem z sterowaniem wyjściami CS, biblioteka do RFM69C pochodzi z książki Pana Mirka więc tam sterowanie CS RFM69C jest zrobione. Natomiast bibliotekę do MIFARE zapożyczyłem gdzieś z internetu, i tam też jest zrobione sterowanie wyjściem CS dla MIFARE. No chyba że ja nie rozumiem idei sterowania tymi CS-ami ... RFM69C prześle co tam trzeba dezaktywuje CS, MIFARE zrobi swoje i też dezaktywuje swoje CS no więc w czym problem ? Moim zdaniem nie powinno tutaj być konfliktu a jednak coś się ta komunikacja sypie że po przyłożeniu karty kontakt z RFM69C pada na amen :/ Mógłby mi ktoś wyoślić jak to powinno prawidłowo wyglądać, no chyba że popełniam gdzieś indziej błąd ? Na koniec dodam że każdy z osobno układów działa więc niema mowy o zamienionych pinach czy coś.

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


Najważniejsze fukcje z bibioteki MIFARE:
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 plik main.c w skrócie:
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: 29 gru 2016, o 09:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć
Z tego co piszesz to wynika, że źle sterujesz pinami CS.
To nie moduły pracujące jako "slave" mają dezaktywować swoje wejścia tylko procesor ma nimi sterować i decydować w którym momencie rozmawia z danym modułem.

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2016, o 10:13 
Offline
Użytkownik

Dołączył(a): 26 lut 2014
Posty: 288
Lokalizacja: Gdańsk
Pomógł: 13

Musisz oddzielnie ( z poziomu programu) sterować liniami CS. Czyli "ręcznie" aktywować i dezaktywować urządzenie, z którym w ty momencie chcesz się porozumieć.



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

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

Wiadomo że to procesor musi sterować tymi liniami i tak jest ... To co nie wystarcza sterowanie tymi pinami w samych bibliotekach w tych podstawowych funkcjach "wysyłania i odczytu" i trzeba tym sterować gdzieś mainie jeszcze ? Próbowałem coś takiego zrobić i efektu brak :/

W plikach nagłówkowych MIFARE I RFM mamy:

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


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


Próbowałem chociażby czegoś takiego i kompletnie to niczego nie zmienia...
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: 29 gru 2016, o 12:24 
Offline
Użytkownik

Dołączył(a): 26 lut 2014
Posty: 288
Lokalizacja: Gdańsk
Pomógł: 13

Nie, no wystarczy w bibliotece. Po prostu wcześniej nie widziałem tego.
A jak masz podłączone urządzenia? W sensie port i pin



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2016, o 12:27 
Offline
Użytkownik

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

Sprawdzałem to przed chwilę kolejny raz jeszcze czy fizycznie jest napewno dobrze i jest dokładnie 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  
PostNapisane: 29 gru 2016, o 12:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1168
Lokalizacja: Kraków
Pomógł: 93

A sprawdź, czy po odczycie karty zwalniane jest SPI. Może tu być problem. Ale to tylko sugestia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2016, o 13:13 
Offline
Użytkownik

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

Nie wiem czy to dobrze robię ale umyśliłem taki sposób na sprawdzenie tego:

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


Wyświetlam ją na lcd i efekt jest taki ze cały czas widać 1 .. hmm nie zależnie czy to jest przed przyłożeniem karty czy już po.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2016, o 13:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1168
Lokalizacja: Kraków
Pomógł: 93

Mogę się mylić, ale wygląda na to, że procek cały czas "gada" z odbiornikiem kart. Czyli nie działa makro MIFARE_DEACTIVATE? A przed użyciem karty, kiedy działa komunikacja z RFM69C, co się wyświetla? Wtedy też 1?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2016, o 13:46 
Offline
Użytkownik

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

dokładnie też wyświetla się 1 ... więc nie czaje ... chyba że to sprawdzenie błędnie działa ?



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

Dołączył(a): 26 lut 2014
Posty: 288
Lokalizacja: Gdańsk
Pomógł: 13

Nie wiem czy dobrze widzę, ale nie masz chyba ustawionego pinu SS procesora jako wyjście, a chyba powinno być ustawione do poprawnego działania.



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

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

Co ma do tego pin SS procesora jak to PROGRAMOWE SPI a ustawienie kierunku pinów CS dla MIFARE I RFM69C jest w void spi_init(void) na górze



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

Dołączył(a): 26 lut 2014
Posty: 288
Lokalizacja: Gdańsk
Pomógł: 13

Wybacz, nie zauważyłem tego i byłem pewien, że chodzi o sprzętowe SPI ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2016, o 12:10 
Offline
Użytkownik

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

Spoko ... Jedyny sposób pokraczny i całkowicie z d*py, gdzie to jakkolwiek działa "razem" jest taki:

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


Chociaż i tak to nie działa idealnie bo po pierwsze RFM69 nadal "pada" ale tylko jak nie działa drugi układ z RFM (odbiornik) jak przyłoży się kartę do MIFARE. A druga sprawa jest taka że i tak tracą się "pakiety" dużo bardziej niż w przypadku gdy MIFARE jest odłączony ... więc i tak nadal się gryzą mimo tego pokracznego sposobu...Ehhhh



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

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