This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Problem adding I2S to nRF connect SDK - DTS

Hi there,

First of all; I have experience in Keil but I am new to SEGGER and Zephyr.

Rebuilding our project in Segger using the new nRF Connect SDK I am stuck at adding I2S to an example.

I started with the Nordic NUS (BLE UART) example, which runs OK at my board.

I started adding I2S to the project using 'Configure nRF Connect SDK Project", enabling 'Enable I2S driver <NRFX_I2S>' and 'I2S bus drivers <I2S>'.
After configuration, result OK, I added a label to the dts overlay.

&i2s0 {
compatible = "nordic,nrf-i2s";
};

After I run CMake I get the error 'create_nordic_project.py failed (1).
The error output says:
Error: nrf52dk_nrf52832.dts.pre.tmp:500.1-6 Label or path i2s0 not found

I think I can get it working 'the old way' but I want to switch to the DTS system for now.

Anybody got a lead for me?

Thanks,

Sander

Parents Reply Children
  • Hello,

    Thanks for your answer!
    It seems that I finally got your port to work, I will check with a Logic Analyzer tomorrow.

    However, it seems to hang on:

     do {
    			k_cpu_idle();
    
                if (mp_block_to_fill)
                { 
                    printk("1\n");
                    prepare_tx_data(mp_block_to_fill);
                    mp_block_to_fill = NULL;
                }
                printk("2\n");
            } while (m_blocks_transferred < BLOCKS_TO_TRANSFER);

    The debugger prints 1,2,1,2 forever it seems.

    Does it need a slave just as I2C to function?

    Thanks,

    Sander

    <EDIT 17-06-2021> m_blocks_transferred is never increased. I added an increase but I'm not sure if it was placed in the right place. I added: m_blocks_transferred++; after: prepare_tx_data(mp_block_to_fill);.

  • Hi,

     

    HyperS said:
    <EDIT 17-06-2021> m_blocks_transferred is never increased. I added an increase but I'm not sure if it was placed in the right place. I added: m_blocks_transferred++; after: prepare_tx_data(mp_block_to_fill);.

     Ooops! I cut away a bit too much when I ported the project, my apologies!

    Your proposed fix is good.

     

    Kind regards,

    Håkon

Related