GPIO üzerinden ses sinyalleri nasıl verilir?


12

Ses sinyallerini GPIO üzerinden çıkarmanın bir yolu var mı ve bu şekilde bir dezavantajı var mı?


1
Minimum donanım kullanarak herhangi bir dijital I / O pin üzerinden herhangi bir ses sinyali çıkışı için çok ilginç bir yöntem şudur: romanblack.com/BTc_alg.htm
slebetman

Yanıtlar:


9

Ses jakı kanalları (sol ve sağ) PWM ile çalışan GPIO (GPIO 12 veya 18 ile kanal 0 ve GPIO 13 veya 19 ile kanal 1) tarafından sağlanır.

Bu GPIO'ya uygun devreleri bağlarsanız ses elde edersiniz.

GPIO ve PWM çevre birimleri ile ilgili ayrıntılar için BCM2835 ARM Çevre Birimleri bölümüne bakın .


EKLENDİ

Bazı arka plan

Son Pis'te ses jakı çıkışı PWM kanalları 0 ve 1 tarafından sağlanır. PWM kanalı 0, (stereo) sağ kanala bağlı GPIO40'a beslenir ve PWM kanalı 1, (stereo) 'ya bağlı GPIO45'e beslenir sol kanal.

Bu PWM kanalları ayrıca kullanıcı tarafından erişilebilir GPIO'ya da beslenebilir.

PWM kanalı 0, GPIO12 ve GPIO18'e yönlendirilebilir.

PWM kanalı 1, GPIO13 ve GPIO19'a yönlendirilebilir.

Belirli bir GPIO modunu aşağıdaki gibi ayarlayarak PWM'yi bir GPIO'ya yönlendirirsiniz:

  • GPIO12 - ALT0 modunu ayarla
  • GPIO13 - ALT0 modunu ayarla
  • GPIO18 - ALT5 modunu ayarla
  • GPIO19 - ALT5 modunu ayarla

Yukarıdaki Broadcom spesifikasyon referansının 102. sayfasına bakınız.

GPIO modunu ayarlamanın çeşitli yolları vardır.

Benim domuz yarar kullanan M komutu.

Örneğin m 18 5 domuzları GPIO18'i ALT5 moduna ayarlayacaktır.


Her iki kanalı da kullanmam gerekiyor mu? ve neden var ya da orada, diyelim ki Pi 3 kullanıyorum ve donanım PWM'si olan GPIO sayısı nedir? Göre , bu , bu pim 12 (GPIO18), sadece bir pim, PWM sahip bulunmaktadır.
Trevor

@IlDivinCodino Bir veya iki kanal kullanabilirsiniz. Stereo iki mono mono gerektirir. Cevabım kullanılabilir GPIO'dan bahsediyor veya Ya GPIO'yu (ya da bunu yapmak için bir neden bulabilirseniz her ikisini de kullanabileceğiniz anlamına gelir).
joan

@ joan'ın kendi (IIRC) pigpio kütüphanesi, keyfi pinler üzerinden PWM'ye izin verir - bu şekilde kaç ses kanalı alabileceğinizi merak ediyorum.
Chris H

1
@ChrisH pigpio DMA zamanlamalı PWM, kapalı ve tamamen açık arasında sınırlı sayıda adımla yalnızca sabit sayıda frekans üretilebileceği için sınırlandırılmıştır. Bu birçok uygulama için iyi, ama muhtemelen ses değil (PWM'in ses üretmek için nasıl kullanıldığını bilmiyorum, bu yüzden bu benim açımdan bir tahmin.
joan

2
@joan, Daha fazla sorun olacak ayrı frekanslar (maksimum hacim için 50:50 görev döngüsü muhtemelen en iyisidir). Bu yüzden bir alarm için iyi olurdu, ancak genel çalma için değil. Hafta sonu onunla oynama şansım olabilir.
Chris H

2

Joan'ın cevabının da söylediği gibi, Pi'nin analog ses çıkışı tam da bu. Adafruit, Pi Zero (onsuz) ile birlikte kullanılmak üzere bu devreyi ayrıntılı olarak açıklayan bir makaleye sahiptir, buraya bakın .


makale için bir açıklama olmalıdır, sadece bağlantı stackexchange cevaplamak için iyi bir yol değildir koymak. Bazen bağlantı ölebilir.
Trevor

2
1) sadece bağlantıyı koymakla kalmıyor, bağlamı da (kabul ettiğim kadar az olsa da) veriyor, 2) bağlantı çürümesi raspberrypi'de dahili bir bağlantı olduğu için muhtemelen bir sorun değil. Sorunun kadar kalıcı olacağını iddia et). Fikir orada verilen bilgileri tekrar etmemek ve her iki soruyu da birbiri gibi ikiye katlamak değildi (çünkü onlar imho değildir).
Ghanima
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.