จะส่งสัญญาณเสียงผ่าน GPIO ได้อย่างไร?


12

มีวิธีการส่งสัญญาณเสียงผ่าน GPIO หรือไม่และมีข้อเสียกับวิธีนี้หรือไม่?


1
วิธีการหนึ่งที่น่าสนใจมากของการแสดงผลสัญญาณเสียงใด ๆ ผ่านทางขา I / O ใดดิจิตอลโดยใช้ฮาร์ดแวร์ที่น้อยที่สุดคือ: romanblack.com/BTc_alg.htm
slebetman

คำตอบ:


9

ช่องสัญญาณเสียง (ซ้ายและขวา) มีให้โดย GPIO ที่ขับเคลื่อนด้วย PWM (ช่อง 0 ด้วย GPIO 12 หรือ 18 และช่อง 1 โดย GPIO 13 หรือ 19)

ดังนั้นหากคุณเชื่อมต่อวงจรที่เหมาะสมกับ GPIO เหล่านั้นคุณจะได้รับเสียง

ดูอุปกรณ์ต่อพ่วง ARM BCM2835สำหรับรายละเอียดเกี่ยวกับอุปกรณ์ต่อพ่วง GPIO และ PWM


แก้ไขเพื่อเพิ่ม

พื้นหลังบางส่วน

ใน Pis เมื่อเร็ว ๆ นี้เอาต์พุตเสียงแจ็คเสียงถูกจัดเตรียมโดย PWM แชนแนล 0 และ 1 PWM แชนแนล 0 จะถูกส่งไปยัง GPIO40 ซึ่งเชื่อมต่อกับช่องสัญญาณ (สเตอริโอ) ที่ถูกต้องและช่องสัญญาณ PWM 1 ถูกส่งไปยัง GPIO45 ซึ่งเชื่อมต่อกับ (สเตอริโอ) ช่องทางซ้าย

ช่องสัญญาณ PWM เหล่านี้อาจถูกส่งไปยัง GPIO ที่ผู้ใช้เข้าถึงได้

ช่องสัญญาณ PWM 0 อาจถูกส่งไปที่ GPIO12 และ GPIO18

ช่องสัญญาณ PWM 1 อาจถูกส่งไปที่ GPIO13 และ GPIO19

คุณกำหนดเส้นทาง PWM ไปยัง GPIO โดยการตั้งค่าโหมด GPIO เฉพาะดังนี้:

  • GPIO12 - โหมดตั้งค่า ALT0
  • GPIO13 - โหมดตั้งค่า ALT0
  • GPIO18 - โหมดตั้งค่า ALT5
  • GPIO19 - โหมดตั้งค่า ALT5

ดูหน้า 102 ของการอ้างอิงข้อมูลจำเพาะของ Broadcom ด้านบน

มีหลายวิธีในการตั้งค่าโหมด GPIO

ยูทิลิตี้สุกรของฉันใช้คำสั่งM

เช่นสุกร m 18 5 จะตั้ง GPIO18 เป็นโหมด ALT5


ฉันต้องใช้ทั้งสองช่องหรือไม่? และทำไมมีหรือไม่บอกว่าฉันใช้ Pi 3 และจำนวน GPIOs ที่มีฮาร์ดแวร์ PWM คืออะไร? ตามนี้มีเพียงหนึ่งพินที่มี PWM นั่นคือพิน 12 (GPIO18)
เทรเวอร์

@IlDivinCodino คุณสามารถใช้หนึ่งหรือสองช่อง สเตอริโอต้องใช้สองแบบโมโนเดียว คำตอบของฉันกล่าวถึง GPIO ที่ใช้งานได้หรือหมายความว่าคุณสามารถใช้ GPIO (หรือทั้งสองอย่างหากคุณสามารถหาเหตุผลได้)
joan

ห้องสมุดpigpio @ joan ของตนเอง (IIRC) อนุญาตให้ PWM มีพินใดก็ได้ - ฉันสงสัยว่าคุณจะได้รับช่องสัญญาณเสียงจำนวนเท่าใด
Chris H

1
@ChrisH pigpio DMA PWM ที่กำหนดเวลาไว้ถูก จำกัด ด้วยจำนวนความถี่คงที่เท่านั้นที่อาจถูกสร้างขึ้นด้วยจำนวนขั้นตอนที่ จำกัด ระหว่างปิดและเปิดอย่างเต็มที่ มันดีสำหรับแอพพลิเคชั่นมากมาย แต่อาจไม่ใช่เสียง (ฉันไม่รู้ว่า PWM ใช้สร้างเสียงได้อย่างไรดังนั้นนี่เป็นการคาดเดาในส่วนของฉัน)
joan

2
@joan มันเป็นความถี่ที่ไม่ต่อเนื่องที่จะเป็นปัญหามากขึ้น (รอบการทำงาน 50:50 น่าจะดีที่สุดสำหรับปริมาณสูงสุด) ดังนั้นมันจะดีสำหรับการเตือน แต่ไม่ใช่สำหรับการเล่นทั่วไป ฉันอาจมีโอกาสเล่นกับมันในช่วงสุดสัปดาห์
Chris H

2

เช่นเดียวกับที่โจแอนตอบไว้แล้วเสียงอะนาล็อกของ Pi ก็เป็นเช่นนั้น Adafruit มีบทความที่อธิบายวงจรนี้ในรายละเอียดสำหรับการใช้งานกับพี่ศูนย์ (ที่มาโดยไม่ได้) ดูที่นี่


คุณควรมีคำอธิบายสำหรับบทความเพียงแค่ใส่ลิงค์ไม่ใช่วิธีตอบที่ดีใน stackexchange บางครั้งการเชื่อมโยงอาจจะตาย
เทรเวอร์

2
1) มันไม่เพียง แต่ใส่ลิงค์มันให้บริบท (แม้ว่าจะเป็นเพียงเล็กน้อยตามที่ฉันยอมรับ), 2) การเชื่อมโยงเน่าไม่น่าจะมีปัญหาเพราะมันเป็นลิงค์ภายในภายใน raspberrypi.SE ไม่ใช่ลิงก์ภายนอก เถียงว่ามันจะขัดขืนเหมือนคำถามของคุณ) ความคิดคือการไม่ทำซ้ำข้อมูลที่ให้ไว้ที่นั่นและไม่ได้ปิดทั้งสองคำถามเป็นแบบคู่ต่อกัน (เพราะไม่ใช่ imho)
Ghanima
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.