-         

Ergebnis 1 bis 8 von 8

Thema: Lautsprecher an Portt mit TBA820M

  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von PCMan
    Registriert seit
    05.08.2006
    Ort
    Munich
    Beiträge
    311

    Lautsprecher an Portt mit TBA820M

    Anzeige

    Hi Forum,
    ich möchte an einen Mega8 (1Mhz intern getaktet) einen Lautsprecher (4Ohm) anschließen. Wie mach ich das?
    Ne schmarrn, so wollte ich die Frage garnicht stellen
    Ich habe schon folgendes Versucht: Ich erzeuge an einem Port ein Signal:
    Code:
    #include <stdlib.h>
    #include <avr/io.h>
    #include <util/delay.h>
    #include <math.h>
    
    #define SND_A_PORT PORTB
    #define SND_A_DDR  DDRB
    #define SND_A_DD   DDB0
    #define SND_A_PIN  PB0
    
    void _delay_s(uint8_t sek){
    	for (int i=0; i!=sek; i++){
    	 _delay_ms(200);
    	 _delay_ms(200);
    	 _delay_ms(200);
    	 _delay_ms(200);
    	 _delay_ms(200);
    	}
    }
    
    
    int main(void)
    {
     SND_A_PORT &= ~(1<<SND_A_PIN);    
     SND_A_DDR |= (1<<SND_A_DD);      
     _delay_s(1);
     for(;;){
    	 SND_A_PORT |= (1<<SND_A_PIN); //high
    	 _delay_ms(3);
    	 SND_A_PORT &= ~(1<<SND_A_PIN);  //low
    	 _delay_ms(3);
     }
    }
    1) Wenn ich das Signal an eine Emitterschaltung mit einem Transistor gebe klappt das zwar, aber der Ton ist viel zu leise.

    2) Gemäß dem Datenblatt des TBA820M (NF Amplifyer) (http://www.fieros.de/philips/tba820m.pdf) habe ich eine Testschaltung aufgebaut. CB=220pF, RF=33Ohm, R2=100Ohm. Zu R1 in Reihe habe ich noch einen 10µF Elko geschaltet. Das klappt auch prima, aber ich höre, bevor ich ein Signal ausgebe ein deutliches Rattern oder Schwingen im Lautsprecher. Woher kommt das? Wahrscheinlich irgendwo vom µC. Gibt es eine Möglichkeit, solche ungewünschte Geräusche abzudämpfen? Weiterhin würde ich auch gerne die Lautstärke etwas herabsetzen, wenn ich R1 aber modifiziere ändert sich nicht merklich was. Habt ihr da auch eine Idee?

    Viele Grüße,
    Simon

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Das Rattern und Schwingen könnte auch über die Stromversorgung kommen, müsstest du dir aber mit einem Oszi ansehen. Ansonst den µC mit entsprechenden Kondensatoren an den Spannungspin versorgen.
    Die Lautstärke einstellen kannst du mit einem Poti 10k. Eine Seite auf den Ausgang des µC, die andere Seite auf GND und den Schleifer auf den Eingang des TBA.

    Hubert

  3. #3
    Erfahrener Benutzer Begeisterter Techniker Avatar von PCMan
    Registriert seit
    05.08.2006
    Ort
    Munich
    Beiträge
    311
    Ah bin ich trottelig. Ich brauche ja, um die Lautstärke variieren zu können nicht verschiedene Wiederstände sondern einen Spannungsteiler da wo R1 ist. Poti.
    Das Geräusch: also die Spannungsversorgung des µC habe ich wie im Wiki vorgenommen, mit dem Spannungs-IC 78S05. Könnte ich das Geräusch auch unterbinden, wenn ich beim Systemstart den Poortpin einfach gleich auf High/Low ziehe und ihn in dem Zustand lasse?
    vG Simon

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Das mit den Kondensatoren am 7805 habe ich erwähnt weil es sehr oft vergessen oder unterbewertet wird.
    Den Pin fix auf Low legen könnte was bringen.
    Hubert

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von PCMan
    Registriert seit
    05.08.2006
    Ort
    Munich
    Beiträge
    311
    Hi Hubert G.,
    ich werde es mal testen und das Ergebnis dann hier posten.
    VG Simon

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von PCMan
    Registriert seit
    05.08.2006
    Ort
    Munich
    Beiträge
    311
    Hi,
    mit dem Poti und dem Ausgang auf Low das klappt. Aber eines verstehe ich überhaupt nicht: ich verwende zur Erzeugung eines Signals folgenden Code:
    Code:
    #include <stdlib.h>
    #include <avr/io.h>
    #include <util/delay.h>
    #include <math.h>
    
    
    void _delay_s(uint8_t sek){
    	for (int i=0; i!=sek; i++){
    	 _delay_ms(200);
    	 _delay_ms(200);
    	 _delay_ms(200);
    	 _delay_ms(200);
    	 _delay_ms(200);
    	}
    }
    
    
    	
    	/*SND_A_PORT &= ~(1<<SND_A_PIN);   //EN auf Low
    	SND_A_DDR |= (1<<SND_A_DD);      //Ausgang*/
    
    
    
    
    int main(void)
    {
     
    	DDRB |= (1<<DDB0); //PB0 als Ausgang
    	PORTB &= ~(1<<PB0); //PB0 auf Low
    
     
     _delay_s(5);
     for(;;){
    	 PORTB ^= (1 << PB0); //Toggle
    	 _delay_ms(2);
    	}
    }
    Der Ton klingt nicht sauber.
    Wenn ich aber DDRB |= (1<<DDB0); auskommentiere, dann klingt der Ton wunderbar. Unlogisch?

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Nein, nicht unlogisch. Wenn der Pin als Ausgang gesetzt ist, dann wird er hart von 0 auf 1 und zurück gesetzt. Kommentierst du das aus ist der Pin als Eingang gesetzt und du schaltest nur den PullUp mit etwa 50k ein und aus. Dadurch ist das Signal etwas runder und klingt schöner. Wenn du dir das mit einem Oszi ansiehst, wäre dir das sofort klar.
    Hubert

  8. #8
    Erfahrener Benutzer Begeisterter Techniker Avatar von PCMan
    Registriert seit
    05.08.2006
    Ort
    Munich
    Beiträge
    311
    Hi Hubert,
    würde mir das gerne ansehen, leider verfüge ich nicht über einen Oszi. Kannst du mir so ein Bild irgendwie erstellen? Okay, wenn's viel zu umständlich ist, dann musst du das nicht machen
    Die Geschichte mit den Pullups habe ich mir scxhon gedacht, aber mir war nicht klar, dass das ein "schöneres Signal" erzeugt. Wenn ich wie gesagt ein paar mal piepsen lassen möchte, *MUSS* ich den Port dann als Ausgang benutzen, oder kann ich ihn quasi über diese Pullup-Variante vergewaltigen, ohne dass der µC kaputt gehen könnte? Oder mal 50k Widerstände einbauen und die "Ausgangs-Variante" versuchen?
    Viele Grüße,
    Simon

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •