Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Połączenie dwóch urządzeń o różnych ustawieniach do SPI - STM32

01 Mar 2019 12:17 375 5
  • Poziom 13  
    Witam,
    Realizuję projekt z wykorzystaniem STM32F103VET6 (programowany w Keil uVision 5.24.2.0). Do magistrali SPI2 dołączyłem dwa urządzenia (LCD i RFID), które mają różne ustawienia CPOL/CPHA, więc przed ich obsługą trzeba te ustawienia zmieniać. Problem w tym, że w takim przypadku urządzenia nie działają. Jeśli usunę z programu obsługę jednego urządzenia to drugie działa poprawnie. Oczywiście używam linii CS.

    Funkcje zmieniające parametry SPI wygladaja następująco:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Poniżej struktura programu. W funkcji main, w głównej pętli realizuję:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    I w takiej konfiguracji ani LCD, ani RFID nie działają właściwie.
    Czy ktoś miał podobny problem? Jaka powinna być procedura zmiany ustawień magistrali SPI2, żeby nie było problemów z komunikacją.
  • Specjalista - Mikrokontrolery
    Przed rekonfiguracją musisz poczekać na koniec transmisji, wycofać NSS, a następnie zapisać 0 do rejestru CR1 (wyłączając SPI).Potem dopiero możesz ustawić nową konfigurację. Bez SPL rekonfiguracja zajmuje 3 linijki kodu.
  • Poziom 40  
    Nie wiem, czy w ogóle jest potrzebna ta zmiana. CPA=0, CPOL=0 jest w większości przypadków kompatybilne z CPHA=1, CPOL=1
  • Poziom 13  
    Podpiąłem jeszcze linie tej magistrali pod oscyloskop. Problemem chyba nie jest konfiguracja SPI, tylko wyświetlacz, ponieważ wysyła jakąś odpowiedź na linii MISO, pomimo stanu wysokiego na CS. Używam wyświetlacza WF43MTIBEDRNB firmy Winstar. Może ktoś miał podobne doświadczenia z tym wyświetlaczem? Wyświetlacz miał ułatwić wyświetlanie, ponieważ posiada logikę (procesor PIC24), ale co chwila napotykam na jakieś problemy związane z jego obsługą. Począwszy od tego, że w karcie katalogowej było błędnie opisane połączenie linii SPI.
  • Poziom 1  
  • Poziom 13  
    Właśnie łącze bufory na wszystkie linie.