I2S to 16 bit



  • Hi to all! I try to connect my Omega2 to TDA1543. But standart I2S audio card output have 24 bit. I need to switch I2S output to 16 bit format (MT7688 can do it, I suppose). Somebody did this?



  • @Andrew-Naumenko Hello, there's
    recent post by Mr. Pavel Mitrokhin to connect a MAX98357A

    Such device accept 16 to 32 bit i2s, Pavel's stuff should work
    then on other 16bit devices...



  • I rechecked all the parameters of the i2s signal from omega2 and found the problem. i2s signal from omega 2 leaves really 16 bits per channel, but by default the data type is unsigned (u16). In the standard, I2S signal must be signed, and because of this, I have distortions with overload for TDA1543. At tests with MAX98357 these problems did not arise (probably) because it understands 16 24 and 32 bits, because of what the bit of the sign is shifted. When I try to reproduce the sign type of the signal (for example "mpg123 -e s16 test.mp3"), omega 2 is restarting.



  • @administrators
    same problem here : totally distorded audio with correct real i2s (the philips i2s) format dac ( comparable to ti pcm5102). unsigned as default is probably the culprit. I do not know how to fix myself. would be nice to have a fix in the coming days/weeks for the standart i2s devices as Andrew one and mine. thanks all in advance



  • I guess problem likely is elsewhere

    A player should naturally send the required signed 2-complement
    data to I2s engine, not unsigned form

    I connected a TI PCM1725 DAC and all works nicely with just:

    mpg123 <xxxxx.mp3>

    Indeed if I force -e u16 the device crashes and reboots

    Some Is2 devices don't require MCKL, but most do.

    Seems the TDA1543 don't

    The 1725 works because I have a external MCKL source, without
    MCKL it works but sound becomes rotten and sliced

    There's a way to produce a MCLK (Master Clock) for devices that
    need it ?



  • Yes about sign : drivers which were used as bases of our omega simpleaudio driver seemed S16 as normal but if Andrew is sure it actually sends unsigned then that is the problem :
    If the maxxxxxx driver actually uses the unsigned (weird unstandart and rare) 16bit format then we need to switch our firmware to builds using an asoc/alsa wm8960 or pcm5102 or whatever else is available as nearly ALL OTHER i2s drivers would provide us the usual/standart (i2s meaning signed) our DAC chips need.

    "MCK lack" subject is not the problem here because I also use a i2s DAC chip that features an MCK generation builtin because MT7688 chip does not have any MCKout.

    These 2 matter would make me much regret the former ar9331 soc chip...



Looks like your connection to Community was lost, please wait while we try to reconnect.