Skocz do zawartości
Komentator

Kurs STM32 F1 HAL - #9 - SPI w praktyce, ekspander IO

Pomocna odpowiedź

W którym pliku mogę znaleźć rozpiskę pinów przypisanych do danych modułów (SPI1, ADC1, GPIOA, itp.)? Do tej pory korzystałem z obrazka znalezionego na internecie, ale jednak chciałbym jakieś bardziej wiarygodnie źródło.

Udostępnij ten post


Link to post
Share on other sites

@Emerid na początku kursu było wspomniane w dokumentacji, tam są wszystkie potrzebne informacje.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

@Gieneq Na stronach 28-33 faktycznie jest opis pinów, ale nie widzę informacji, jak powiązać to z rozmieszczeniem na płytce Nucleo. Chodzi mi o coś podobnego do poniższego rysunku, ale z oficjalnych dokumentów.
 

STM32F103RB_Pinout.gif.f64b74ff4321e7df4d3da6452a96b3dd.gif

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Moje przemyślenia, którymi podzielę się dla potomnych początkujących:

  1. A1, A2 - bity adresu MCP ustawiane napięciowo przy układzie scalonym (w naszym przypadku wiszą w powietrzu, czyli bardziej 0 niż 1, czyli adres : 00)
  2. SPI Control byte (device Opcode), czyli nawiązanie komunikacji z urządzeniem to: 0100 0(A1)(A2)(R/W) - W bicie kontrolnym na dwóch bitach ustawiamy adres A1,A2 urządzenia / R=1 w przypadku odczytu z MCP,  W=0 w przypadku wysyłania informacji do MCP)
  3. Chcąc skomunikować się z MCP wysyłam (Control bit - adres urządzenia oraz kierunek transmisji , adres rejestru, wartość), gdzie adresy rejestrów i bity odpowiadające za poszczególne funkcje opisane są w tabeli poniżej
    image.thumb.png.d5cc17104c70fd3231927fa89b5a2797.png
  4. Chcąc zaprogramować piny jako wyjście musimy ustawić odpowiadające bity w IODIR na 0
    - 1111 1110 = ~0x01 - MCP_PIN_0_OUTPUT
    - 1111 1011 = ~0x04 - MCP_PIN_2_OUTPUT
    - 1101 1011 = ~0x24 - MCP_PIN_5_OUTPUT | MCP_PIN_2_OUTPUT
    - 0101 1011 = ~0xa4 - MCP_PIN_7_SET | MCP_PIN_5_OUTPUT | MCP_PIN_2_OUTPUT
  5. Wyjście pinów MCP ustawiać możemy poprzez wartości wysyłane do rejestru OLAT 
    - 0000 0001  = 0x01 - MCP_PIN_0_SET
    - 0000 0100 =  0x04 - MCP_PIN_2_SET
    - 0010 0100 =  0x24 - MCP_PIN_5_SET | MCP_PIN_2_SET
    - 1010 0100 =  0xa4 - MCP_PIN_7_SET | MCP_PIN_5_SET | MCP_PIN_2_SET
Edytowano przez Emerid
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Mógłby mi ktoś jeszcze wytłumaczyć różnicę między GPIO a OLAT?

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...