Stromlaufplan HifiBerry DAC+

  • Servus Leute,

    EDIT 14.02.2019: siehe auch:

    Stromlaufplan HifiBerry MiniAmp 1.0

    ich habe mich heute mit meiner neuen Errungenschaft, einem HifiBerry DAC+ befasst. Zunächst wollte ich wissen, welche GPIO-Pins vom Raspberry B+ letztlich für die Soundkarte verwendet werden und bei der Gelegenheit habe ich dann das ganze Board weitestgehend durchgemessen und mit der Freeware-Version von Eagle mal nachgezeichnet:

    HifiBerry_schematic.pdf

    Wie in diesem Forum bereits mehrfach erwähnt, enthält diese Soundkarte im Prinzip lediglich den BurrBrown-IC PCM5122, einen 2V RMS Audio Stereo DAC in folgender Konfiguration:
    * I2C-Steuerung, da Pin 17 (MODE1) mit GND verbunden und Pin 18 (MODE2) über 10k-PullUp mit 3V3 verbunden
    * Vref-Mode, weil Pin 10 (VCOM) direkt mit GND verbunden ist
    * 3,3V-Betrieb des Digitalteils (Pin 28 (DVDD) ist mit 3V3 versorgt)

    Das Datenblatt des PCM5122 kann hier heruntergeladen werden.


    Außerdem habe ich noch Fotos von meinem Exemplar gemacht, auf dem ich die Kupferflächen mit dem jeweiligen Signal beschriftet habe. Siehe die beigefügten Bilder:

    HifiBerry oben.JPG
    HifiBerry unten.JPG

    "oben" ist die Oberseite, wenn die Karte auf den Raspberry Pi B+ aufgesteckt wird.

    Auf der Unterseite befindet sich eine ganzflächige GND-Fläche.
    Die Oberseite enthält drei Kupferflächen: GND und 3V3 (siehe Bild) sowie ziemlich in der Mitte eine Fläche mit einer Versorgungsspannung für den Analogteil des ICs (Einbauplatz T1 Pin 1), die über U2 aus den 5V vom Raspberry Pi bereitgestellt wird.


    PS:
    Ich bin jetzt gespannt, ob ich das Ding am Raspberry Pi B+ auch wie gewünscht zum Laufen bringe, bis jetzt habe ich noch nichts Konkretes ausprobiert. Die Karte soll zuerst unter OSMC/Kodi arbeiten, da bei mir im Wohnzimmer noch ein Röhrenfernseher ohne HDMI-Eingang steht (der kommt auch nicht weg, solange er noch läuft, nicht weil ich mir nix anders leisten könnte, sondern weil es mir widerstrebt, funktionierende Dinge wegzuwerfen). Der Standardaudioausgang am Klinkenstecker ist mir jedenfalls zu bescheiden.
    Hinterher natürlich auch noch unter Raspbian mit MPD oder was mir sonst noch so einfällt (Volumio?)...


    Viele Grüße,
    Peter

  • Quote

    Ich bin jetzt gespannt, ob ich das Ding am Raspberry Pi B+ auch wie gewünscht zum Laufen bringe, bis jetzt habe ich noch nichts Konkretes ausprobiert. Die Karte soll zuerst unter OSMC/Kodi arbeiten...

    Die Inbetriebnahme der Soundkarte HifiBerry DAC+ unter OSMC habe ich (nach ersten Fehlschlägen) schließlich streng nach dieser Anleitung des Herstellers vorgenommen.
    Zuerst dachte ich, das apt-get update und apt-get upgrade kannste Dir schenken, hab ja eh das aktuelle Image heruntergeladen. Pfeifendeckel :wallbash:

    Allerdings scheint das Vorgehen nicht mehr ganz aktuell zu sein, da am Ende die aplay -l -Geschichte mit einer Fehlermeldung ausfällt. Mit den neuen OSMC-Varianten kann (nach dem Update mit apt-get!) und nach dem zweiten Reboot in der Anleitung (d.h. nach dem sudo bash-Teil) die Soundkarte in OSMC unter My OSMC --> Himbeere --> Hardware Support direkt eingestellt werden. Nach erfolgter Auswahl von Soundcard Overlay=hifiberry-dac-overlay wird das Feld dac_plus sichtbar, das dann aktiviert werden muss. Nach erneutem Reboot kann dann die HifiBerry DAC+ unter den Audioeinstellungen ausgewählt werden. Die grüne LED auf der Soundkarte leuchtet dann und der Ton wird darüber ausgegeben :D
    Auch aplay -l liefert jetzt eine sehr ähnliche Ausgabe wie in der Anleitung angegeben.

    Gruß Peter

  • Servus Leute,
    Wie in diesem Forum bereits mehrfach erwähnt, enthält diese Soundkarte im Prinzip lediglich den BurrBrown-IC PCM5122, einen 2V RMS Audio Stereo DAC in folgender Konfiguration:
    * I2C-Steuerung, da Pin 17 (MODE1) mit GND verbunden und Pin 18 (MODE2) über 10k-PullUp mit 3V3 verbunden
    * Vref-Mode, weil Pin 10 (VCOM) direkt mit GND verbunden ist
    * 3,3V-Betrieb des Digitalteils (Pin 28 (DVDD) ist mit 3V3 versorgt)
    Viele Grüße, Peter

    Vermute mal, es ist eine I²S-Verbindung; ist aber ähnlich wie I²C..:)
    Denn -wie auch andere Soundkarten für den Raspberry PI A/B (Ohne Plus)- benötigt der HifiBerry zusätzlich die P5-Anschlüsse...:lol:
    Aber habe nun eine andere Frage: Wie auf den Fotos zu sehen ist, hat Peter die stiftleiste nachgerüstet, mit dem der GPIO-Port zusätzlich durchgeschleift wird. Mit welchen Funktionen Pins würde sich der HifiBerry bei andersweitiger Benutzung "beißen"?:helpnew:

  • Servus Physikus,

    es ist schon richtig, die Audiodaten werden vom RPi über den I²S-Bus zum HifiBerry DAC+ übertragen. Dies geschieht konkret über folgende Verbindungen:

    RPi-Stiftleistenpin 12 (GPIO18, PCM_CLK) --> PCM5122.21
    RPi-Stiftleistenpin 35 (GPIO19, PCM_FS) --> PCM5122.23
    RPi-Stiftleistenpin 40 (GPIO21, PCM_DOUT) --> PCM5122.22

    RPi-Stiftleistenpin 38 (GPIO20, PCM_DIN) --> ?
    Zu diesem I²S-Pin des RPi konnte ich messtechnisch keine Gegenstelle auf dem DAC+ (bzw. PCM5122) finden. Ich vermute, dass dies ein Datenkanal für Audiosignale von "außen" zum RPi ist, d.h. ein Audio-Input z.B. für ein Mikrofon. Einen dazu passenden Ausgang gibt es aber beim HifiBerry DAC+ nicht.
    Vielleicht habe ich aber nur schlampig gemessen und RPi38 geht auf PCM5122-Pin 20 (SCK), aber das müsste ich nochmals bei Gelegenheit überprüfen. :blush:

    Allerdings gibt es beim PCM5122 auch eine Steuerungs-Schnittstelle. Deren Übertragungsprotokoll wird mit den Pins MODE1(17) und MODE2(18) bestimmt. Laut Datenblatt gibt es folgende Modi:
    MODE1=Low, MODE2=Low: Hardwired mode
    MODE1=Low, MODE2=High: I 2 C mode
    MODE1=High: SPI mode, MODE2 pin changes MS pin (chip select for SPI)

    Auf dem HifiBerry DAC+ ist der PCM5122 so beschaltet, dass die Steuerung im I²C-Protokoll erfolgen muss. Meine Angabe

    Quote


    * I2C-Steuerung, da Pin 17 (MODE1) mit GND verbunden und Pin 18 (MODE2) über 10k-PullUp mit 3V3 verbunden


    bezieht sich auf das Steuerungsprotokoll. Dies habe ich dem Datenblatt des PCM5122 entnommen.

    -----------------------------

    In der Gesamtheit sind somit folgende RPi-Pins durch die Soundkarte HifiBerry DAC+ belegt:

    Pin 3: I2C: SDA-Signal des I²C-Busses für die Steuerung
    Pin 5: I2C: SCL-Signal des I²C-Busses für die Steuerung

    Pin 12: I²S
    Pin 35: I²S
    Pin 38: am RPi zumindest für I²S reserviert. Ich würde ihn für nichts anderes verwenden, wenn der HifiBerry verwendet wird...
    Pin 40: I²S

    Pin 27: I²C: SDA-EEPROM
    Pin 28: I²C: SCL-EEPROM


    Peter

    PS:
    Mich wurmt an dieser Sache etwas, dass der RPi-Pin 5 (GPIO 3) durch den DAC+ belegt ist, denn dies ist der einzige Pin, der für das Tutorial Hoch- und Runterfahren mit dem gleichen Taster von Kernkrank geeignet ist.
    Aber da kann man halt nix dran ändern... :baeh2:

  • Hallo Peter,
    Danke für die klasse Erläuterungen, weiss jemand, ob die Pinbelegung beim PiFi DAC+ von Vullers genauso ist. Ich benutze den Pi als Airplay Gerät, kann Ihn aber damit nicht herunterfahren.
    Der Sound des PiFi DAC gefällt mir besser als beim originalen AirPort Extreme von Apple.

    Gruß
    Peter


  • Servus Leute,

    anbei der ganze Ordner mit dem EAGLE-Schaltplan, den ich damals gezeichnet habe. Da ich den Stromlaufplan nur herausgemessen habe und nicht vorhabe, selbst eine Leiterplatte mit HiFiBerry-Funktionalität zu bauen, habe ich auch kein entsprecherndes Board gelayoutet.

    Mich haben jetzt jedoch einige Leute danach gefragt und deshalb biete ich den gesamten "Projektordner" zum Download an:

    HiFiBerry-Stromlaufplan in EAGLE:
    HifiBerry_EAGLE.zip


    Außerdem habe ich in folgendem Thread EAGLE-Rohboard mit den Abmessungen von RPi B+ und RPi 2 ein leeres Board vorbereitet, aber sowas hat auch schon jemand auf http://www.mikrocontroller.net/topic/339008 gemacht ;)

    Viele Grüße,
    Peter

  • PS:
    Mich wurmt an dieser Sache etwas, dass der RPi-Pin 5 (GPIO 3) durch den DAC+ belegt ist, denn dies ist der einzige Pin, der für das Tutorial Hoch- und Runterfahren mit dem gleichen Taster von Kernkrank geeignet ist.
    Aber da kann man halt nix dran ändern... :baeh2:

    Hi,

    an dem Punkt bin ich auch gerade angekommen. Gibts da vielleicht schon eine andere Lösung für das Hoch- und Runterfahren per Taster? Mir würd auch schon das Hochfahren reichen, wenn ich ne Möglichkeit finde das Herunterfahren von Kodi aus zu realisieren - im raspbian gibts bei Kodi standardmässig keine Möglichkeit den rpi runterzufahren. Hängt wohl mit den Benutzerrechten zusammen...


    //Edit: Laut dieser Quelle hierkann man den Pin5 durchaus noch anderweitig benutzen...

    Edited once, last by drCyCoe (January 31, 2016 at 12:14 PM).


  • Mir würd auch schon das Hochfahren reichen

    gibt es den Reset Pin nicht mehr?


    , wenn ich ne Möglichkeit finde das Herunterfahren von Kodi aus zu realisieren - im raspbian gibts bei Kodi standardmässig keine Möglichkeit den rpi runterzufahren. Hängt wohl mit den Benutzerrechten zusammen...

    was

    Code
    sudo shutdown -h now


    gibt es nicht mehr?

    In Kodi unter wheezy habe ich shutdown umbenannt zu shutdown_ und ein script/bash erstellt mit dem Namen shutdown welches

    Code
    shutdown_ -r now

    macht damit nie einer "aus Versehen" den Aus Knopf betätigen kann und die Fernsteuermöglichkeit wegfällt.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Edited once, last by jar (July 11, 2016 at 10:48 PM).

  • Ein Bild für den Reset Knopf
    https://www.hagen-bauer.de/images/2015/201503-pi2-reset-1.png

    Das könnte auch ein NPN Transistor erledigen, z.B. über ein FlipFlop um den hoch- runter fahr Vorgang auf / von GPIO zu trennen!

    Wird der PI runtergefahren schaltet ein FlipFlop den Weg vom Taster zum Reset frei!
    Somit kann der Tasterdruck bei hochgefahrendem PI keinen Reset auslösen!
    Bei Tasterdruck wird das FlipFlop auf Reset enable gestellt, der PI runtergefahren.
    Mit weiterem Tasterdruck wird nun der Reset vom PI erreicht und der PI startet.

    Den Plan müsste ich mir mal überlegen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Edited once, last by jar (July 12, 2016 at 11:53 AM).

  • In dem Artikel "runterfahren" mittels Schalter wird GPIO Pin 5 ständig abgefragt - wenn er mittels Schalter auf Masse gelegt wird, wird shutdown -h ausgelöst.

    Das Problem ist, das die Pins 3 bzw Pin 5 nicht mehr nutzbar sind ... netweder Sound durch die Hifiberry Karte, oder Abschalten mittels Schalter. Ich werde mal probieren, ob sich nicht ein anderer GPIO Pin nutzen lässt, ansonsten frage Ich mich, wozu der soviele Pins hat

  • Quote from "Andreas-J" pid='273181' dateline='1489948036'


    In dem Artikel "runterfahren" mittels Schalter wird GPIO Pin 5 ständig abgefragt - wenn er mittels Schalter auf Masse gelegt wird, wird shutdown -h ausgelöst.

    Das Problem ist, das die Pins 3 bzw Pin 5 nicht mehr nutzbar sind ... netweder Sound durch die Hifiberry Karte, oder Abschalten mittels Schalter. Ich werde mal probieren, ob sich nicht ein anderer GPIO Pin nutzen lässt, ansonsten frage Ich mich, wozu der soviele Pins hat

    Also ein solches Polling dürfte prinzipiell mit jedem beliebigen Input-Pin von der GPIO-Leiste möglich sein. Einfach einen freien Pin wählen und dafür die Routine bzw. nur die Pinnummer anpassen...

  • moin ...

    ... darf ich mich mal dran hängen?

    Ich habe hier heute auch einen DAC+ mit HWrev 2.6 auf dem Tisch liegen (noch nicht in Betrieb genommen)...
    Im Gegensatz zu den auf der Webseite dargestellten Modellen hat dieser hier noch zwei Oszillatoren oben links (x44, X48), eine 5pol Leiste P4 (unbestückt) und die unbestückte Geschichte umzu J5 (PhoneJack: R51-54, R57-58, C51-54, U5).

    Mich interessiert natürlich, was man zum einen mit der 5pol Stiftleiste anfangen kann und vor allem, wie die Bestückung um den "PhoneJack" auszusehen hat. Ich gehe mal davon aus, das U5 ein schnöder DualOPV für 5V ist, der den gedachten Kopfhörer zu treiben hat. Um jetzt aber möglichst nahe am Original zu bleiben, würde ich den gerne auch mit den Originalteilen nachbestücken; kann da wer helfen?

    Hier noch das aktuelle Bildchen:

    EDIT sagt: Das ist ein DAC+ PRO; steht nur nicht drauf ^^
    (... und wenn ich als Layoutdesigner so dieses Layout anschaue; keine Spur von Layout- Ästhetik ...)

    Edited once, last by HolyScene31423 (September 12, 2017 at 8:45 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!