www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik WAV File via RS232 auf CPLD streamen und mittels Rechteckspannung ausgeben


Autor: david (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hab mir hier schon einige Texte zur Tonerzeugung via PWM 
durchgelesen.
Trotzdem verstehe ich einiges nicht.

Ich gebe über die serielle Schnittstelle 115200 Baud die PCM Rohdaten 
eines WAV Files mit 11khz und 8 Bit Auflösung auf ein CPLD Board mit 
angeschlossenenm Lautsrecher. Das Board ist das Pollin CPLD Board.
Den RS232 Code hab ich auch hier aus dem Forum.
process(clk, s_rs232_dat_out)
  begin
    if rising_edge(clk) then 
      PWM_Accumulator  <=  ("0" & PWM_Accumulator(7 downto 0)) + ("0" &  s_rs232_dat_out);
    end if;
  end process;


led(8 downto 1) <= s_rs232_dat_out(7 downto 0);
audio_out <= PWM_Accumulator(8);

Mein Takt ist 16 Mhz. Es Funktioniert auch alles, es klingt nur sehr 
krauselig.

Ich ändere jetzt je nach dem was von der RS232 kommt, einfach die 
Frequenz auf den Lautsprecher, je nach dem wieviel ich aufaddiere.
Bei 8 Bit wave File, Auflösung 2^0 = 1 --> 62 khz   und max = 2^8 = 256 
--> 8 Mhz

So, das ist das erste was ich nicht verstehe. Was passiert genau mit dem 
Lautsprecher dass er einen Ton ausgibt obwohl der Freuquenzbreich so 
hoch ist ? Normal dürfe da ja nix mehr rauskommen.
Weil das ist ja jetzt nicht so wie bei PWM, da werden ja VERSCHIEDENE 
analoge werte generiert durch das Ti/Tp verhältnis. Aber hier ist ja das 
Verhältnis immer gleich.

Das nächste ist, wenn ich jetzt mit 11 khz streame kommt ja alle 90 ns 
ein neuer wert, den ich mit einer bestimmten Frequenz ausgeben muss. 
Jetzt muss doch die Frequenz sehr hoch sein, damit se in dem kurzem 
Zeitfenster eine paar Schwingungen fahren kann oder ?
Weil wenn ich den Takt auf 4 Mhz reduziere, dann hör ich nix mehr.
Mit dem Verfahren geb ich Töne als direkte Frquenz aus.


Was anderes ist doch PWM, hier hab ich nur eine Frequenz z.B. 200khz und 
ändere nur das Impuls Pausen verhältnis. Damit bekomme ich einen 
analogen wert, und durch die ver. Abfolgde der Werte ergibt sich ein 
Sound. Wäre das die bessere Idee ? bez. den krachenden Ton , den ich mit 
ersterem Verfahren habe.

Warum muss ich die PWM Frequenz dann mit einem Tiefpass rausfiltern, hab 
ich aus den ganzen Beitragen zum Thema nicht verstanden.


Das sind jetzt viele Fragen, sind aber alle durch das lesen der anderen 
Beiträge entstanden. Ich hoffe durch die Beantwortung schließt sich der 
Kreis auch für andere Leser.

Viele grüße david

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeig mal den ganzen Code...
Un die Beschaltung...

> Was passiert genau mit dem Lautsprecher dass er einen Ton ausgibt obwohl
> der Freuquenzbreich so hoch ist? Normal dürfe da ja nix mehr rauskommen.
Ich tippe, du hast eine asymmetrische Lautsprecherankopplung, so dass du 
eine Art PWM wegen einer längeren Aus- bzw. Einschwingdauer der 
Lautsprechermembran hast. Hört sich sicher urig an...  :-o

> wenn ich jetzt mit 11 khz streame kommt ja alle 90 ns ein neuer wert
Das solltest du aber nochmal nachrechnen... :-/

Autor: Andy Müller (andz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Des geht so ned...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.