logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

atmega128A - Moduł odbiornika cyfrowego RFM01 - odbiór danych

prociomen007 20 Lis 2014 12:24 972 3
REKLAMA
  • #1 14148287
    prociomen007
    Poziom 18  
    Witam, potrzebuję do piwnego urządzenia opartego o mikrokontroler atmega128A dołożyć możliwość odbioru danych na niewielką odległość ( przesyłanych drogą radiową ). Zakupiłem w tym celu komplet RFM01/RFM02. Zagłębiam się teraz w ich specyfikacje techniczne i mam problem z ustaleniem pewnej rzeczy. We wszystkich odnalezionych prze zemnie przykładach odbiór z użyciem bufora FIFO polega na poniższym algorytmie

    1. czekaj na ustawienie lini IRQ
    2. odbierz dane z FIFO
    3. wyzeruj IRQ

    Niby wszystko fajnie i prosto ale moja atmega wykonuje masę innych rzeczy i nie może sobie zwyczajnie w pętli czekać na linię IRQ. Powoduje to powstanie w mojej głowie kilku pytań na które nie mogę znaleźć rozwiązania.

    1.
    Załóżmy że FIFO odebrało dane i ustawiło linię IRQ. Mikrokontroler jest jednak zajęty i nie zwraca sobie na to uwagi, robi co ma robić i dopiero kiedy znajduje chwilę wolnego czasu sprawdza tą linie i odczytuje FIFO. Niby wszystko fajnie i ładnie ale kiedy mikrokontroler nie mógł odczytać FIFO nadajnik cały czas nadawał. Czy dopóki FIFO się nie zwolni z danych nowe będą ignorowane? Czy FIFO cały czas się po prostu będzie nadpisywać i muszą być odczytane od razu kiedy linia IRQ przejdzie w stan wysoki?

    2. Można by linią IRQ wywoływać przerwania w mikrokontrolerze i wtedy szybciutko sczytywać zawartość FIFO i wracać do programu.

    Może istnieje jeszcze jakaś inna możliwość aby rozwikłać ten problem. Główny ból to to że mikrokontroler w moim przypadku NIE może czekać na zgłoszenie odbioru bajtu przez ustawienie się IRQ.

    Ile bajtów pomieści FIFO?
  • REKLAMA
  • #2 14148311
    Pepi_23
    Poziom 15  
    Witam.

    Rozwiazanie drugie jest jedynym, sensownym i domyślnym rozwiązaniem. Synał nIRQ powinien zostać podłączony do wejścia przerwań mikrokontrolera.
    Pamięć FIFO modułu RFM01 ma pojemność 16 Bajtów.

    Pozdrawiam.
  • REKLAMA
  • #3 14153088
    jony15
    Poziom 24  
    Witam nie wiem w jakim języku programujesz ale polecam ten temat Link w linku masz kod na up, kiedyś za pomocą tego tematu udało mi się odpalić te moduły ( wprawdzie na 886MHz ).
REKLAMA