Einfache Soundausgabe (I2S, PWM, DAC,.)

Gast #2042858
Lesenswert?

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
Gast #2044630
Lesenswert?

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.
Gast #2045230
Lesenswert?

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?
Gast #2045245
Lesenswert?

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.
Gast #2045282
Lesenswert?

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
Gast #2050566
Lesenswert?

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..

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren