mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Immer Einschaltplopp: kann jemand mir eine Bestätigung geben?


Autor: Luca Bertoncello (lucabert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Leute!

Ich überlege immer, wie ich den Einschaltplopp meines Weckers wenigstens 
reduzieren kann...

Heute habe ich zufällig in der Dokumentation des VS1011e dieses 
Paragraph gelesen:
9.5 Play/Decode
This is the normal operation mode of VS1011e. SDI data is decoded. Decoded samples are converted to analog domain by the internal DAC.
If no decodable data is found, SCI HDAT0 and SCI HDAT1 are set to 0 and analog outputs are muted.
When there is no input for decoding, VS1011e goes into idle mode (lower power consumption than during decoding) and actively monitors
the serial data input for valid data.

Also, verstehe ich richtig, daß wenn ich mit dem Abspielen fertig bin, 
wird der Analogoutput auf 0V gesetzt?

Wenn ja, konnte es dann das Problem des Einschaltplopps sein, richtig?

Zur Zeit, in meinem Code, bevor ich den Verstärker wieder laut schalte, 
warte ich ein paar Millisekunden, und gleichzeitig schicke einfach 0 dem 
VS1011e:
// Laut Doku, soll man den vor dem Abspielen immer setzen!
  vsSetClock();
// Dazu setze ich die Lautstärke, denn ansonsten (bei Knopfbetätigen) wird nicht gesetzt!
  vsSetVolume(currentVolume);
// Und nun ein bißchen stumme Daten als Init...
  for(i = 0; i < 2048;)
  {
    if(bit_is_set(VS_PIN, VS_DREQ_PIN))
    {
      vsSendData(0);
      i++;
    }
    displayCurrentTime();
  }

  tdaLoud();

Meint ihr, ich warte eine zu kurze Zeit? Zwischen dem VS1011e und dem 
Verstärker (TDA1554q) gibt es zwei 100nF Kondesatoren (ein pro Kanal).

Ich hätte kein Problem, nach der Schleife und vor der Funktion 
"tdaLoud()" noch eine Wartezeit (_delay_ms(500) zB?) hinzuzufügen, aber 
wenn ich nix schicke, wird bestimmt auch der MP3-Decoder wieder in "idle 
mode" gehen, richtig?

Soll ich einfach diese Schleife verlängern, bzw. so lange 0 schicken, 
bis zB 500mS vergangen sind?
Meint ihr, es konnte helfen?

Dazu: meint ihr, daß "0" eine "decodable data" ist? In der Dokumentation 
ist diese Schleife schon als Beispiel gegeben, wenn man zB vor einem 
Software-Reset warten will.

Ich freue mich auf eure Meinungen!
Luca Bertoncello

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.