Chciałbym wiedzieć, do czego odnosi się „funkcja alternatywna” w kontekście portów IO mikrokontrolera.
Nie muszę wiedzieć, jak go aktywować podczas łączenia się z peryferiami, ale chciałbym wiedzieć, co to dokładnie jest i dlaczego go potrzebujemy.
Chciałbym wiedzieć, do czego odnosi się „funkcja alternatywna” w kontekście portów IO mikrokontrolera.
Nie muszę wiedzieć, jak go aktywować podczas łączenia się z peryferiami, ale chciałbym wiedzieć, co to dokładnie jest i dlaczego go potrzebujemy.
Odpowiedzi:
Wiele pinów mikrokontrolera ma różne funkcje. Funkcja „normalna” odnosi się do GPIO, wejścia / wyjścia ogólnego przeznaczenia . W takim przypadku możesz użyć tych pinów bezpośrednio, pisząc i czytając z odpowiednich rejestrów.
Funkcje „alternatywne” odnosiłyby się do innych funkcji, które mogą obejmować I 2 C, SPI, USART, CCP, PWM, Zegar, ADC itp. Sposób kontrolowania pinów w funkcji alternatywnej zależy od urządzeń peryferyjnych, ale to ogólnie sprowadza się do zapisywania i odczytywania rejestrów funkcji specjalnych (SFR); urządzenie peryferyjne zajmuje się resztą.
Która funkcja jest standardowa po RESETIE zależy ( nie zawsze jest to GPIO!) I można ją znaleźć w odpowiednim arkuszu danych. Przez większość czasu możesz wybrać funkcję, której chcesz używać w locie, aby przełączać się między urządzeniami peryferyjnymi.
Używając jednego pinu dla kilku urządzeń peryferyjnych, możesz tworzyć mikrokontrolery o bardzo wielu funkcjach. Ponieważ jednak przez większość czasu chcesz mieć to urządzenie peryferyjne na tym pinie przez cały czas (i nie chcesz przełączać funkcji w locie), nie możesz używać wszystkich urządzeń peryferyjnych w jednym programie, a przynajmniej nie w tym samym czas. Z drugiej strony i tak nie jest to często potrzebne.
Jak podkreśla Connor , „funkcja alternatywna” może odnosić się również do czegoś innego, w nieco innym kontekście: tutaj nie chodzi o to, jaką funkcję umieścisz na pinie, ale o to, którego pinu używasz dla funkcji. Nazywa się to Pin Select peryferyjnych i zasadniczo oznacza, że możesz wybrać pin, którego używa twoje urządzenie peryferyjne. Możesz na przykład wykonać RS232 na RA1 i RA2 lub na RB1 i RB2.
Zobacz odpowiedź Connora, aby uzyskać bardziej szczegółowy opis (i głosuj za niego za to).
Oprócz odpowiedzi @CamilStaps istnieje jeszcze inny kontekst, w którym „alternatywna funkcja pin” jest często używanym terminem.
Niektóre mikrokontrolery mają opcję przełączania wewnętrznych urządzeń peryferyjnych między kilkoma zestawami linii we / wy. W ten sposób możesz uniknąć problemów, jeśli chcesz używać wewnętrznych modułów (SPI, I2C itp.), Które mają przypisane funkcje do tego samego zestawu pinów.
Ogólnie istnieje rejestr kontrolny, który określa, do którego zestawu pinów są mapowane różne urządzenia peryferyjne.
Wiem, że pracowałem z mikrokontrolerem, który miał tę funkcję, ale niech mnie diabli, jeśli pamiętam konkretny numer części.
Edycja: Znaleziono - Jest dostępny w wielu częściach PIC24 i dsPIC:
Nazywają to „wybieraniem pinów peryferyjnych”, ale jest to w zasadzie mechanizm do konfigurowania alternatywnych funkcji pinów.