Làm cách nào để xuất tín hiệu âm thanh qua GPIO?


12

Có cách nào để phát tín hiệu âm thanh qua GPIO và có bất lợi nào với cách này không?


1
Một phương pháp rất thú vị để xuất bất kỳ tín hiệu âm thanh nào qua bất kỳ chân I / O kỹ thuật số nào bằng phần cứng tối thiểu là: romanblack.com/BTc_ache.htmlm
slebetman

Câu trả lời:


9

Các kênh giắc âm thanh (trái và phải) được cung cấp bởi GPIO điều khiển bằng PWM (kênh 0 theo GPIO 12 hoặc 18 và kênh 1 của GPIO 13 hoặc 19).

Vì vậy, nếu bạn kết nối mạch thích hợp với các GPIO đó, bạn sẽ nhận được âm thanh.

Xem BCM2835 Thiết bị ngoại vi ARM để biết chi tiết về thiết bị ngoại vi GPIO và PWM.


EDITED ĐỂ THÊM

Một số nền tảng

Trên các Pis gần đây, đầu ra giắc âm thanh được cung cấp bởi các kênh PWM 0 và 1. Kênh PWM 0 được cung cấp cho GPIO40 được kết nối với kênh bên phải (âm thanh nổi) và kênh PWM 1 được đưa đến GPIO45 được kết nối với (âm thanh nổi) kênh trái.

Các kênh PWM này cũng có thể được cung cấp cho GPIO người dùng có thể truy cập.

Kênh PWM 0 có thể được định tuyến đến GPIO12 và GPIO18.

Kênh PWM 1 có thể được định tuyến đến GPIO13 và GPIO19.

Bạn định tuyến PWM đến GPIO bằng cách đặt chế độ GPIO cụ thể như sau:

  • GPIO12 - đặt chế độ ALT0
  • GPIO13 - đặt chế độ ALT0
  • GPIO18 - đặt chế độ ALT5
  • GPIO19 - đặt chế độ ALT5

Xem trang 102 của tài liệu tham khảo thông số Broadcom ở trên.

Có nhiều cách khác nhau để thiết lập chế độ GPIO.

Tiện ích lợn của tôi sử dụng lệnh M.

Ví dụ: lợn m 18 5 sẽ đặt GPIO18 ở chế độ ALT5.


Tôi có cần sử dụng cả hai kênh không? và tại sao có hoặc ở đó, giả sử tôi đang sử dụng Pi 3 và số GPIO có phần cứng PWM là bao nhiêu? Theo đó , chỉ có một chân có PWM, đó là chân 12 (GPIO18).
Trevor

@IlDivinCodino Bạn có thể sử dụng một hoặc hai kênh. Âm thanh nổi đòi hỏi hai, đơn âm một. Câu trả lời của tôi đề cập đến GPIO có thể sử dụng, Hoặc có nghĩa là bạn có thể sử dụng GPIO (hoặc cả hai nếu bạn có thể tìm thấy lý do để làm như vậy).
joan

Thư viện pigpio của @ joan (IIRC) cho phép PWM qua các chân tùy ý - Tôi tự hỏi có bao nhiêu kênh âm thanh bạn có thể có được theo cách đó.
Chris H

1
@ChrisH pigpio PWM định thời DMA bị hạn chế ở chỗ chỉ có thể tạo ra một số tần số cố định với một số bước giới hạn giữa tắt và bật hoàn toàn. Điều đó tốt cho rất nhiều ứng dụng, nhưng có lẽ không phải là âm thanh (Tôi không biết cách sử dụng PWM để tạo âm thanh nên đây là một phỏng đoán của tôi).
joan

2
@joan, Đó là tần số riêng biệt sẽ là một vấn đề (chu kỳ nhiệm vụ 50:50 có lẽ là tốt nhất cho âm lượng tối đa). Vì vậy, nó sẽ tốt cho một báo động nhưng không cho phát lại chung. Tôi có thể có một cơ hội để chơi với nó vào cuối tuần.
Chris H

2

Đúng như câu trả lời của Joan đã gợi ý, âm thanh analog của Pi chỉ có thế. Adaf Berry có một bài viết mô tả chi tiết về mạch này để sử dụng với Pi Zero (đi kèm mà không có nó), xem tại đây .


bạn nên có một mô tả cho bài viết, chỉ cần đặt liên kết không phải là một cách tốt để trả lời trong stackexchange. Đôi khi các liên kết có thể chết.
Trevor

1
1. tranh luận nó sẽ chỉ là dai dẳng như câu hỏi của bạn). Ý tưởng là không lặp lại thông tin được cung cấp ở đó và không đóng cả hai câu hỏi dưới dạng trùng lặp với nhau (vì chúng không phải, imho).
Ghanima
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.