Jedną z bardzo interesujących metod wyprowadzania dowolnego sygnału audio przez dowolny cyfrowy pin we / wy przy użyciu minimalnego sprzętu jest: romanblack.com/BTc_alg.htm
slebetman
Odpowiedzi:
9
Kanały jack audio (lewy i prawy) są dostarczane przez GPIO sterowane PWM (kanał 0 przez GPIO 12 lub 18, a kanał 1 przez GPIO 13 lub 19).
Więc jeśli podłączysz odpowiednie obwody do tych GPIO, otrzymasz dźwięk.
W ostatnim Pizu wyjście jack audio jest zapewnione przez kanały PWM 0 i 1. Kanał PWM 0 jest podawany do GPIO40, który jest podłączony do prawego kanału (stereo), a kanał PWM 1 jest podawany do GPIO45, który jest podłączony do (stereo) lewy kanał.
Te kanały PWM można dodatkowo zasilać dostępnym dla użytkownika GPIO.
Kanał 0 PWM może być kierowany do GPIO12 i GPIO18.
Kanał PWM 1 może być kierowany do GPIO13 i GPIO19.
Kierujesz PWM do GPIO, ustawiając określony tryb GPIO w następujący sposób:
GPIO12 - ustaw tryb ALT0
GPIO13 - ustaw tryb ALT0
GPIO18 - ustaw tryb ALT5
GPIO19 - ustaw tryb ALT5
Zobacz str. 102 powyższego opisu specyfikacji Broadcom.
Czy muszę korzystać z obu kanałów? i dlaczego są lub istnieją, powiedzmy, że używam Pi 3 i jaka jest liczba GPIO, które mają sprzętowy PWM? Zgodnie z tym , tylko jeden pin ma PWM, czyli pin 12 (GPIO18).
Trevor,
@IlDivinCodino Możesz użyć jednego lub dwóch kanałów. Stereo wymaga dwóch, mono jeden. Moja odpowiedź wspomina o użytecznym GPIO, Lub oznacza, że możesz użyć dowolnego GPIO (lub obu, jeśli znajdziesz powód, aby to zrobić).
joan
Własna biblioteka pigpio @ joan (IIRC) pozwala na PWM przez dowolne piny - zastanawiam się, ile kanałów audio można by uzyskać w ten sposób.
Chris H
1
@ChrisH pigpio DMA z pomiarem czasu PWM jest ograniczony, ponieważ można wygenerować tylko określoną liczbę częstotliwości z ograniczoną liczbą kroków od wyłączenia do pełnego włączenia. To jest w porządku dla wielu aplikacji, ale prawdopodobnie nie audio (nie wiem, jak PWM jest używany do generowania dźwięku, więc to zgaduję z mojej strony).
joan
2
@joan, to dyskretne częstotliwości byłyby większym problemem (cykl pracy 50:50 jest prawdopodobnie najlepszy dla maksymalnej głośności). Byłoby to dobre na alarm, ale nie na ogólne odtwarzanie. Mogę mieć szansę zagrać z nim w weekend.
Chris H
2
Tak jak sugeruje odpowiedź Joan, analogowe wyjście audio Pi jest właśnie takie. Adafruit ma artykuł opisujący szczegółowo ten zespół obwodów do użytku z Pi Zero (który jest bez niego), patrz tutaj .
powinieneś mieć opis artykułu, po prostu umieszczenie linku nie jest dobrym sposobem na odpowiedź w stosie wymiany. Kiedyś link może umrzeć.
Trevor,
2
1) nie tylko umieszcza link, ale daje kontekst (choć tylko trochę, jak przyznaję), 2) zgnilizna linku nie jest prawdopodobnie problemem, ponieważ jest to link wewnętrzny w raspberrypi.SE, a nie link zewnętrzny (dlatego też argumentować, że będzie tak samo uparty jak twoje pytanie). Chodziło o to, aby nie powtarzać zawartych tam informacji i nie zamykać obu pytań jako duplikatów (ponieważ nie są, imho).
Odpowiedzi:
Kanały jack audio (lewy i prawy) są dostarczane przez GPIO sterowane PWM (kanał 0 przez GPIO 12 lub 18, a kanał 1 przez GPIO 13 lub 19).
Więc jeśli podłączysz odpowiednie obwody do tych GPIO, otrzymasz dźwięk.
Szczegółowe informacje na temat urządzeń peryferyjnych GPIO i PWM można znaleźć w BCM2835 Peryferia ARM .
EDYTOWANE, ABY DODAĆ
Trochę tła
W ostatnim Pizu wyjście jack audio jest zapewnione przez kanały PWM 0 i 1. Kanał PWM 0 jest podawany do GPIO40, który jest podłączony do prawego kanału (stereo), a kanał PWM 1 jest podawany do GPIO45, który jest podłączony do (stereo) lewy kanał.
Te kanały PWM można dodatkowo zasilać dostępnym dla użytkownika GPIO.
Kanał 0 PWM może być kierowany do GPIO12 i GPIO18.
Kanał PWM 1 może być kierowany do GPIO13 i GPIO19.
Kierujesz PWM do GPIO, ustawiając określony tryb GPIO w następujący sposób:
Zobacz str. 102 powyższego opisu specyfikacji Broadcom.
Istnieją różne sposoby ustawiania trybu GPIO.
Narzędzie My Pigs korzysta z polecenia M.
Np. Świnie m 18 5 przestawią GPIO18 w tryb ALT5.
źródło
Tak jak sugeruje odpowiedź Joan, analogowe wyjście audio Pi jest właśnie takie. Adafruit ma artykuł opisujący szczegółowo ten zespół obwodów do użytku z Pi Zero (który jest bez niego), patrz tutaj .
źródło