Skip to main content
Explorer
July 21, 2023
Question

Query on using PCM1754 DAC in STM32MP135 DK for Audio output

  • July 21, 2023
  • 4 replies
  • 2564 views

Hi,

Is it possible to utilize the PCM1754 DAC as a Sound card with the ALSA Framework on OpenSTLinux?
According to the documentation, the PCM1754 functions as a Hardware-controlled DAC, eliminating the need for additional drivers. Therefore, is it necessary to develop custom drivers for this particular DAC if we are using linux as OS?

If it is possible, are there any references for configuring device tree files and sound card configuration to facilitate this setup?

 

    This topic has been closed for replies.

    4 replies

    Explorer
    July 24, 2023

    @Erwan SZYMANSKI   any information on this?

    Super User
    July 24, 2023

    hi,

    where you connect this dac ? and which SCK ?

    maybe you can use the alsa definition from rasperry... but almost sure, you have to adapt it -> edit /etc/modules/ and /etc/modprobe.d/

    AScha3_0-1690189830099.png

     

     

    Explorer
    July 27, 2023

    @AScha.3  We are connecting the DAC to I2S1 port of STM32MP135

    Super User
    July 27, 2023

    again :

    >and which SCK ?

    dac needs sync masterclk = SCK

    Explorer
    July 28, 2023

    Please find the details

    i2s1_pins_mx: i2s1_mx-0 {
    		pins {
    			pinmux = <STM32_PINMUX('A', 4, AF5)>, /* I2S1_WS */
    					 <STM32_PINMUX('B', 0, AF5)>, /* I2S1_MCK */
    					 <STM32_PINMUX('C', 0, AF6)>, /* I2S1_SDO */
    					 <STM32_PINMUX('C', 3, AF6)>; /* I2S1_CK */
    			bias-disable;
    			drive-push-pull;
    			slew-rate = <1>;
    		};
    	};
    
    	i2s1_sleep_pins_mx: i2s1_sleep_mx-0 {
    		pins {
    			pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* I2S1_WS */
    					 <STM32_PINMUX('B', 0, ANALOG)>, /* I2S1_MCK */
    					 <STM32_PINMUX('C', 0, ANALOG)>, /* I2S1_SDO */
    					 <STM32_PINMUX('C', 3, ANALOG)>; /* I2S1_CK */
    		};
    	};

    Clocks:

    clocks = <&rcc SPI1>, <&rcc SPI1_K>, <&scmi_clk CK_SCMI_PLL3_Q>, <&scmi_clk CK_SCMI_PLL3_R>;
    clock-names = "pclk", "i2sclk", "x8k", "x11k";