Come emettere segnali audio tramite GPIO?


12

C'è un modo per emettere segnali audio tramite GPIO e c'è qualche svantaggio in questo modo?


1
Un metodo molto interessante per emettere qualsiasi segnale audio tramite qualsiasi pin I / O digitale usando hardware minimo è questo: romanblack.com/BTc_alg.htm
slebetman

Risposte:


9

I canali audio jack (sinistro e destro) sono forniti da GPIO pilotato da PWM (canale 0 da GPIO 12 o 18 e canale 1 da GPIO 13 o 19).

Quindi se colleghi i circuiti appropriati a quei GPIO otterrai audio.

Vedere BCM2835 Periferiche ARM per i dettagli sulle periferiche GPIO e PWM.


MODIFICATO PER AGGIUNGERE

Qualche sfondo

In Pis recenti, l'uscita jack audio è fornita dai canali PWM 0 e 1. Il canale PWM 0 viene inviato a GPIO40 che è collegato al canale (stereo) destro e il canale PWM 1 viene inviato a GPIO45 che è collegato al (stereo) canale sinistro.

Questi canali PWM possono inoltre essere inviati a GPIO accessibile dall'utente.

Il canale PWM 0 può essere indirizzato a GPIO12 e GPIO18.

Il canale PWM 1 può essere indirizzato a GPIO13 e GPIO19.

Inoltra PWM a un GPIO impostando una modalità GPIO particolare come segue:

  • GPIO12 - imposta la modalità ALT0
  • GPIO13 - imposta la modalità ALT0
  • GPIO18 - imposta la modalità ALT5
  • GPIO19 - imposta la modalità ALT5

Vedere pagina 102 del riferimento alle specifiche Broadcom sopra.

Esistono vari modi per impostare una modalità GPIO.

L' utilità My pigs utilizza il comando M.

Ad esempio maiali m 18 5 imposteranno GPIO18 in modalità ALT5.


Devo usare entrambi i canali? e perché ci sono o là, diciamo che sto usando Pi 3 e qual è il numero dei GPIO che hanno PWM hardware? In base a ciò , esiste un solo pin con PWM, ovvero il pin 12 (GPIO18).
Trevor,

@IlDivinCodino È possibile utilizzare uno o due canali. Lo stereo richiede due, uno solo. La mia risposta menziona il GPIO utilizzabile, oppure significa che puoi utilizzare GPIO (o entrambi se riesci a trovare un motivo per farlo).
Giovanni,

La libreria pigpio di @ joan (IIRC) consente PWM su pin arbitrari - Mi chiedo quanti canali audio potresti ottenere in quel modo.
Chris H,

1
@ChrisH pigpio DMA PWM temporizzato è limitato in quanto solo un numero fisso di frequenze può essere generato con un numero limitato di passaggi tra off e full on. Va bene per molte applicazioni, ma probabilmente non per l'audio (non so come PWM viene utilizzato per generare l'audio, quindi questa è un'ipotesi da parte mia).
joan

2
@joan, sono le frequenze discrete che sarebbero più un problema (un ciclo di lavoro 50:50 è probabilmente il migliore per il massimo volume). Quindi sarebbe utile per un allarme ma non per la riproduzione generale. Potrei avere la possibilità di giocarci durante il fine settimana.
Chris H,

2

Proprio come suggerisce già la risposta di Joan, l'uscita audio analogica del Pi è proprio questo. Adafruit ha un articolo che descrive in dettaglio questo circuito per l'uso con il Pi Zero (che viene fornito senza di esso), vedi qui .


dovresti avere una descrizione per l'articolo, basta inserire il link non è un buon modo per rispondere in stackexchange. A volte il link potrebbe essere morto.
Trevor,

2
1) non sta semplicemente inserendo il link, sta dando contesto (anche se solo un po 'come lo ammetto), 2) il rot rot non è probabilmente un problema in quanto è un link interno all'interno di raspberrypi.SE, non un link esterno (quindi sostenere che sarà altrettanto persistente della tua domanda). L'idea era di non ripetere le informazioni fornite lì e di non chiudere entrambe le domande come ingannevoli (perché non lo sono).
Ghanima
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.