Hi Leute, für mein aktuelles Projekt möchte ich einen einfache Soundausgabe umsetzen. Im Prinzip reichts wenn ich ein klicken (für den Touchscreen) und ein Piepen(als Warnton) ausgeben kann. Der STM32, den ich verwende bietet DAC, I2S und PWM Kanäle. Was davon sollte ich nehmen um möglichst einfach zum Ziel zu kommen? Wie sieht die Peripherie aus? Grüße, Peter
Hallo! Nimm doch einfach einen fertigen Summer Beispiel Reichelt "SUMMER HDB 06" Einfach per Transitor an einen Portpin, einige ms ansteuern: Klicken einege s ansteuern: Piepsen Wenn es verschiedene Tonhöhen werden sollen: Lautsprecher und PWM Grüße!
Oh jee, das sind ja alles so Riesenviecher. Habe mir jetzt diesen hier: http://www.reichelt.de/?ACTION=3;ARTICLE=35918;PROVID=2402 mal rausgesucht, der dürfte noch grad so auf meine Platine passen. Werde den Summer dann über nen Transistor an meinen DAC hängen. Damit sollte es dann möglich sein die Lautstärke zu regulieren. Soweit die Theorie, muss das ganze erstmal austesten. Die Datenblätter von den Dingern sind ja nicht gerade besonders aussagekräftig.
peterguy schrieb: > Werde den Summer dann über nen Transistor an meinen DAC hängen. Damit > sollte es dann möglich sein die Lautstärke zu regulieren. Was bringt dich zu dieser Annahme? Da steht übrigens: Vcc = 4-6,5 VDC
Einen Summer würde ich nie verwenden. Das würde verhindern, eigene Töne zu generieren. Mit einer 8Bit PWM kann man schon eine relativ passable Audio Qualität erreichen und wav-Dateien ausgeben.
Lothar Miller schrieb: > Was bringt dich zu dieser Annahme? > Da steht übrigens: Vcc = 4-6,5 VDC Na ich würde den Summer mit "+" an 12V hängen, an "-" einen Widerstand, an diesen dann den Collector von nem Transistor. Dessen Basis wird von dem µC beschaltet und von Emitter zu Ground kommt auch noch ein Widerstand. Je nach höher der Spannung an der Basis wird die Spannung über dem Emitter-GND Widerstand eingestellt und damit dann der Strom. Soweit die Theorie :-) chris schrieb: > Einen Summer würde ich nie verwenden. Das würde verhindern, eigene Töne > zu generieren. > Mit einer 8Bit PWM kann man schon eine relativ passable Audio Qualität > erreichen und wav-Dateien ausgeben. Das wäre natürlich auch eine gute Lösung. Hast du eine Beispielschaltung parat?
Es ist relativ einfach: In einer Interruptroutine werden mit einer Frequenz von ca. 30kHz Werte in das PWM-Register geladen. Die Werte sind die Abtastwerte aus dem WAV-File. Wenn Du nur Töne erzeugen willst, kannst Du via DDS einen Akku in der Interruptroutine hochzählen. An den PWM-Ausgang kannst Du entweder direkt eine Piezo-Speaker, einen RC-Tiefpass an eine Cinch Buchse, oder einen RC-Tiefpass und einen LM358 mit Lautsprecher anschließen.
Ich habe einfach ein Piezo an einen Port angeschlossen und folgendes geschrieben:
1 | .def Dummy2 = r17 |
2 | .def Dummy3 = r18 |
3 | |
4 | Ton: |
5 | ldi Dummy3,$7F |
6 | Ton1: |
7 | sbi PortD,2 |
8 | ldi Dummy1,$AF |
9 | rcall Delay |
10 | cbi PortD,2 |
11 | ldi Dummy1,$AF |
12 | rcall Delay |
13 | dec Dummy3 |
14 | brne Ton1 |
15 | rcall Delay2 |
16 | |
17 | ldi Dummy3,$7F |
18 | Ton2: |
19 | sbi PortD,2 |
20 | ldi Dummy1,$7F |
21 | rcall Delay |
22 | cbi PortD,2 |
23 | ldi Dummy1,$7F |
24 | rcall Delay |
25 | dec Dummy3 |
26 | brne Ton2 |
27 | ldi Dummy3,$6 |
28 | W1: rcall Delay2 |
29 | dec Dummy3 |
30 | brne W1 |
31 | |
32 | ldi Dummy3,$FF |
33 | Ton3: |
34 | sbi PortD,2 |
35 | ldi Dummy1,$DF |
36 | rcall Delay |
37 | cbi PortD,2 |
38 | ldi Dummy1,$DF |
39 | rcall Delay |
40 | dec Dummy3 |
41 | brne Ton3 |
42 | sbi PortD,2 ; TonBit auf High damit nicht immer Strom fließt |
43 | ret |
44 | |
45 | ; ============================= |
46 | ; Delay |
47 | ; :bei 8 MHz |
48 | ; ----------------------------- |
49 | Delay2: |
50 | push Dummy1 |
51 | push Dummy2 |
52 | |
53 | ldi Dummy1, $30 |
54 | S3: ldi Dummy2, $FF |
55 | S4: dec Dummy2 |
56 | brne S4 |
57 | dec Dummy1 |
58 | brne S3 |
59 | |
60 | pop Dummy2 |
61 | pop Dummy1 |
62 | ret |
63 | |
64 | |
65 | ; ============================= |
66 | ; Delay |
67 | ; :bei 8 MHz |
68 | ; ----------------------------- |
69 | Delay: |
70 | ldi Dummy2,$5 |
71 | S2: dec Dummy2 |
72 | brne S2 |
73 | dec Dummy1 |
74 | brne Delay |
75 | ret |
macht schön düdeldidüd
So, habe jetzt eine super simple Schaltung mit einen Miniaturlautsprecher (vermutlich piezo) gefunden. Der Lautsprecher hat vllt einen Durchmesser von 1cm, is 5mm hoch und hat zwei Beinchen zum Anlöten (THT). Leider habe ich keine Bezeichnung von dem. Was mir jetzt noch fehlt ist eine Bezugsquelle für so einen Lautsprecher, kann mir da jemand einen Typen + Lieferanten nennen? Bei Reichelt gibts da anscheinend nix..
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.