Audio debugging

Home Forums OSSC OSSC – DIY Kit support Audio debugging

Tagged: , ,

This topic contains 4 replies, has 2 voices, and was last updated by  clay 1 month, 2 weeks ago.

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
  • #15714


    I’m not getting any audio out over HDMI. Does anyone see anything obviously wrong in what I’ve checked so far?

    Symptom: freshly built board with video that looks fine, but no audio out on HDMI. I see no bus activity on any of the I2S signals from the ADC (clock, word sync or data)…

    What I’ve looked in to:

    0) (No obvious solder faults, etc.)
    1) 27MHz clock is up and running
    2) audio path from SCART to inputs on 1862 is good
    3) I’m seeing I2C traffic at the 1862; logic levels look reasonable, but I didn’t decode the stream
    4) replacing the 1862 had no effect
    5) I’ve built my own firmware based on the latest 0.78 pull. Including “DIY_AUDIO=y” indeed makes a difference on the output size of sys_controller.elf, so it’s doing something. (I get a 32 bit checksum of 02B742CF and a 32 bit CRC of 436030AD from that built with “DIY_AUDIO=y” vs. 02CE3309 sum and 0B2E5F78 crc for no “DIY_AUDIO=n” on the command line.) The “DIY_AUDIO=y” output file is *smaller* than with it off, which bugs me a little bit, but maybe nothing…
    6) there isn’t a pre-built “ossc-0.78-aud.jic” that I saw on ~mhiienka/ossc/ but I tried “ossc-0.76-aud.jic” with no success either.

    If feels like there an “oh, well, duh” dumb thing I’m missing somewhere… The I2C bus has to be good since the LCD and everything else on it is fine. Power on the 1862 has to be good since it’s straight off of DVDD3V3. The PCM1862 should be legit; bought from Mouser. The 1862’s configured as clock master, so it should just be rattling away on the I2S bus as far as I know…

    One thing I don’t have yet is a remote (hence why I’m limited to JTAG and .jic), but there should be nothing needed to ‘turn on’ audio in the menu, correct?

    I’m getting close to trying to hack in a couple commands to see if I can twiddle the GPIO’s on the 1862 to make sure the I2C bus is really functional on it…

    Any suggestions anyone?

    Thanks in advance for any ideas…



    First of all: the usage of the “ossc-0.78-aud” firmware is mandatory. Older firmware versions don’t have support for the PCM1862 and therefore won’t work. If you are suspecting flaws in your own firmware build: a definitely working “ossc-0.78-aud.jic” is available from ‘borti4938’, the creator of the OSSC 1.5 audio addon board. Just take a look at his GitHub repository:

    If this still doesn’t solve your audio problem: i’ve build a couple of 1.6 OSSCs over the last months – 3 of ’em had no audio output. I suspected the ECS-3X9X 24.576 MHz quartz crystal… and was right. On all three boards i had accidentally created a small solder bridge between the two pins of the quartz. Sadly somehow on the top side of the pcb, between the casing of the quartz and the board itself. After de- and resoldering it, all OSSCs worked.



    Excellent! Thanks Morpheus, Bortis’ ossc_0.78-aud-wextmclk.jic build works just fine. *whew*

    That was the nudge in the right direction that I needed. After poking around in the makefile some more I found what I was missing (I had been going by the build instructions on the /marqs85/ossc github page for lack of any other resource).

    In case anyone else runs in to this– for the 1.6 boards with the PCM1862 ADC when building your own firmware, use ‘ENABLE_AUDIO=y’ as a command line option to make. (so: “make ENABLE_AUDIO=y mem_init_generate”)




    Is there a specific reason for you to use the wextmclk build? As far as i know it’s kind of a workaround build for audio sync issues regarding the OSSC 1.5 + the latest Revision of its audio addon board, wich offers to feed the audio master clock via separate line into the pin 5 of the IT6613E (instead of the I2S pin) to prevent those issues.

    The issues were fixed with later firmware builds as described here:

    The wextmclk firmware still exists for testing purposes. But if it works without problems with the OSSC 1.6 and its onboard audio solution i don’t know for sure…



    Honestly, I just took a guess and tried it (the wextmclk variant) not really knowing what all people considered ‘external’ for MCLK. (e.g. external to the ADC or external to the transmitter, etc.) 😉 It worked on an otherwise unmodified 1.6 fab and that validated my board’s hardware so I immediately set about trying to figure out what was wrong with my firmware build instead.

    (A search in the makefile only yielded two hits on ‘audio’, so I just took another guess at what the switch might be based on “ifeq ($(ENABLE_AUDIO),y)” and ended up with the “ENABLE_AUDIO=y” based on the format of the documented “DIY_AUDIO=y” option.)

    I wasn’t able to find a reference manual for the 6613 with register descriptions, so I don’t know the specifics of functionality of REG_TX_CLK_CTRL0. Typically MCLK would just be the full master CODEC clock (so, I would expect it to be 24.576MHz on the 1862) and then SCLK would probably be like 512FS or whatever for a 48KHz sample rate), but since the ADC is generating it’s own MCLK from the crystal I wouldn’t expect it being necessary at all at the 6613 since it’s already receiving a fully framed sample clock frequency stream from the ADC. (If the 6613 could be configured as a clock master that’d make more sense to me because it could then supply 24.576MHz or 12.288MHz or whatever to the ADC as an external MCLK and you’d save the cost of the crystal and tank caps on the ADC side…)

    (I confess I haven’t followed development of the OSSC though, so I don’t know the history on anything, I only started looking at it a couple weeks ago when I decided to build some up.)


Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic.