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

[Rozwiązano] Jak uruchomić SPI4 na uC F767 dla komunikacji z NRF24L01?

kulfi27 04 Kwi 2018 23:21 1020 7
REKLAMA
  • #1 17149710
    kulfi27
    Poziom 10  
    Posty: 57
    Ocena: 2
    Witam, jak w temacie staram się uruchomić SPI4 na uC F767 dla komunikacji z NRF24L01 niestety bez pozytywnego rezultatu, to znaczy
    moduł komunikacyjny działa bez problemowo z uC f429 mikro kontrolery kompatybilne pin to pin, konfiguracje samego SPI4 prawie można skopiować z f429 do f767 z małymi poprawkami, z tym że na uC f767 moduł nie działa możne ktoś mi podpowie gdzie leży błąd, wygenerowałem nawet kod w CMx i nie widzę żeby tam było coś więcej

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    no i funkcja odbierająca i wysyłająca

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 17149759
    excray
    Poziom 41  
    Posty: 5502
    Pomógł: 739
    Ocena: 657
    Spróbuj tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 17149795
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #4 17149943
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    kulfi27 napisał:
    konfiguracje samego SPI4 prawie można skopiować z f429 do f767 z małymi poprawkami

    Skopiować można, ale w tych mikrokontrolerach są zupełnie inne implementacje SPI. Obstawiam, że Twoim głównym problemem jest wspomniany wcześniej brak rzutowania.
  • #5 17150092
    Owiec_
    Poziom 8  
    Posty: 56
    Ocena: 25
    @Marek_Skalski
    Czy przypisywanie musi być w pętli?
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Nie można przypisać tego po pętli raz? Pytam bo mój problem polega na tym, że na analizatorze dostaje na linii MISO poprawne dane, a funkcja zwraca mi zawsze 0. Rzutuje na część 8 bitową tak jak w innym poście zaleca @freddie ale wciąż się męczę z tym.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #6 17150179
    Konto nie istnieje
    Poziom 1  
  • #7 17151225
    kulfi27
    Poziom 10  
    Posty: 57
    Ocena: 2
    Dziękuje za odpowiedz :)
    @Freddie Chopin
    Oczywiście zdaję sobie sprawę że SPI w f7 ma więcej bajerów i samej konfiguracji jest trochę więcej choć nazwy rejestrów te same co w f4 więc sama konfiguracja za wiele się nie zmieniła no chyba że coś pominąłem i może tu jest problem.
    @Marek_Skalski
    Jak zapewne zauważyłeś pisałem że na f4 moduł działa bez problemu nie przedstawiłem tutaj całej funkcji odczytu czy nawet nadawania z Rnf24l01 bo jak napisałeś problem prawdopodobnie leży w samej obsłudze SPI czyszczenie bufora FIFO i rzutowanie danych, zaraz przeprowadzę testy i zobaczę.
  • #8 17158947
    kulfi27
    Poziom 10  
    Posty: 57
    Ocena: 2
    Problem rozwiązany dziękuje za pomoc pomogło rzutowanie i ustawienie progu zapełnia FIFO komunikacja działa.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik starał się uruchomić interfejs SPI4 na mikrokontrolerze F767 do komunikacji z modułem NRF24L01, jednak napotkał problemy, mimo że ten sam moduł działał poprawnie z F429. W odpowiedziach zasugerowano, aby upewnić się, że FIFO jest czyszczone przed transmisją oraz że dane są odpowiednio rzutowane na typ bajtowy. Wskazano również na różnice w implementacji SPI między tymi mikrokontrolerami. Po przeprowadzeniu testów i zastosowaniu rzutowania oraz ustawieniu progu zapełnienia FIFO, problem został rozwiązany, a komunikacja działa poprawnie.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA