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


von Luca B. (lucabert)


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:
1
9.5 Play/Decode
2
This is the normal operation mode of VS1011e. SDI data is decoded. Decoded samples are converted to analog domain by the internal DAC.
3
If no decodable data is found, SCI HDAT0 and SCI HDAT1 are set to 0 and analog outputs are muted.
4
When there is no input for decoding, VS1011e goes into idle mode (lower power consumption than during decoding) and actively monitors
5
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:
1
// Laut Doku, soll man den vor dem Abspielen immer setzen!
2
  vsSetClock();
3
// Dazu setze ich die Lautstärke, denn ansonsten (bei Knopfbetätigen) wird nicht gesetzt!
4
  vsSetVolume(currentVolume);
5
// Und nun ein bißchen stumme Daten als Init...
6
  for(i = 0; i < 2048;)
7
  {
8
    if(bit_is_set(VS_PIN, VS_DREQ_PIN))
9
    {
10
      vsSendData(0);
11
      i++;
12
    }
13
    displayCurrentTime();
14
  }
15
16
  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

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
Noch kein Account? Hier anmelden.