Witam!
Posiadam dwa moduly RFM73, ktore udalo mi sie skonfigurowac tak, aby mozna bylo przesylac dane. Jednak jest problem z flagami ukladu odbiorczego. Datasheet nie okresla dokladnie jak powinno sie zachowywac, jednak wg mnie to nie dziala prawidlowo.
Jesli w FIFO RX znajduje sie jedna dana flaga RX_FIFO_EMPTY=0 oraz RX_FIFO_FULL=0. Po wykonaniu komendy odczytu R_RX_PAYLOAD, dana zgodnie z opisem ukladu jest usuwana z rejestru FIFO RX, jednak flagi nie sa uaktualniane. Zrozumialbym takie dzialanie, gdyby nie fakt, ze wczesniej wspomniane flagi sa tylo do odczytu.
Zatem dzieki fladze RX_FIFO_EMPTY, potrafie stwierdzic czy FIFO RX jest puste, a dzieki fladze RX_FIFO_FULL, potrafie stwierdzic czy 3 dane zostaly odebrane. Na podstawie obu rejestrow, moge rowniez okreslic, ze w FIFO RX jest jedna dana lub dwie dane, ale nie potrafie rozroznic kiedy jest jedna a kiedy dwie.
Podsumowujac, to licznik danych w FIFO RX w RFM73 nie uaktulania sie. Po trzykrotnym wykonaniu odbierz dana a nastepnie odczytaj z FIFO RX, RX_FIFO_FULL=1 i zeby moc dalej odbierac trzeba wyslac komende FLUSH_RX.
Sprawdzilem juz 4 moduly RFM73 i wszystkie zachowuja sie tak samo.
W ramach dodtakowych informacji to pracuje w oparciu o Raspberry Pi i napisalem wlasne biblioteki w C.
Bardzo prosze o pomoc.
|