Skip to content

Stopping ma_frame_rx() and resuming later while MCLK active causes ma_frame_rx() to block indefinitely #171

@ed-xmos

Description

@ed-xmos

This was found in the I2S slave configuration of XVF3800. The case happens when the I2S master (RPI) stops sending clocks for a while but the MCLK to mic array keeps clocking. This is quite a likely scenario as, for example, the RPI stops sending clocks when not streaming.

I would expect the contents of the MA filters to be noisy when resuming but the application needs greater robustness to the user providing discontinuous I2S clocks especially when connecting to unknown user systems.

The code can be found here: https://github.com/xmos/sw_xvf3800/blob/22dd513ab91c622e9df5c6a63a760e4c2bd09e5f/applications/app_xvf3800/src/data_plane/i2s_task.c#L136

The MA config can be found here:
https://github.com/xmos/sw_xvf3800/blob/22dd513ab91c622e9df5c6a63a760e4c2bd09e5f/applications/app_xvf3800/src/app_conf.h#L22

Original issue here.
https://github.com/xmos/sw_xvf3800/issues/90

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions