Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debug and re-enable I2S tests on ESP32 #2440

Open
bugadani opened this issue Oct 31, 2024 · 5 comments
Open

Debug and re-enable I2S tests on ESP32 #2440

bugadani opened this issue Oct 31, 2024 · 5 comments
Labels
chip:esp32 Issue related to ESP32 chip CI Continuous integration/deployment peripheral:i2s I2S peripheral tests Unit, Integration, or Hardware-in-Loop Testing

Comments

@bugadani
Copy link
Contributor

Disabled in #2439 due to noise.

@bugadani bugadani added the CI Continuous integration/deployment label Oct 31, 2024
@MabezDev MabezDev added the tests Unit, Integration, or Hardware-in-Loop Testing label Nov 22, 2024
@bugadani
Copy link
Contributor Author

A (probably separate) ESP32 I2S issue can be reproduced by liebman/esp-hub75@e5f8392

Placing an info between the following lines makes the example work:

https://github.com/liebman/esp-hub75/blob/e5f83929d527bbc716b5dffe3c9b6c508ab84f64/examples/i2s_parallel.rs#L260-L264

This issue feels very similar to other i2s/spi issues (like #2909) where we have to wait for some amount of time, otherwise an async operation hangs.

@bugadani bugadani added peripheral:i2s I2S peripheral chip:esp32 Issue related to ESP32 chip labels Jan 13, 2025
@liebman
Copy link
Contributor

liebman commented Jan 19, 2025

A (probably separate) ESP32 I2S issue can be reproduced by liebman/esp-hub75@e5f8392

Placing an info between the following lines makes the example work:

https://github.com/liebman/esp-hub75/blob/e5f83929d527bbc716b5dffe3c9b6c508ab84f64/examples/i2s_parallel.rs#L260-L264

This issue feels very similar to other i2s/spi issues (like #2909) where we have to wait for some amount of time, otherwise an async operation hangs.

This also happens on the esp32s3 using lcd_cam - example here.

On the esp32c6, however it works as expected - example here.

All the above examples are very similar.

Seems like something with the DMA interrupts on xtensa not playing nice with embassy executor. A logic analyzer shows that the fist transfer is sent - it seems like the task is never awakened from the interrupt.

@Dominaezzz
Copy link
Collaborator

The I8080 driver doesn't use the DMA interrupts fwiw, it has it's own "I'm done" interrupt.

@liebman
Copy link
Contributor

liebman commented Jan 20, 2025

More on the i8080 - it never sends anything - not even one clock.

@bugadani
Copy link
Contributor Author

Thank you both, a number of problems have been discovered around DMA and the LCD_CAM peripheral, but neither of those are actually related to this particular issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chip:esp32 Issue related to ESP32 chip CI Continuous integration/deployment peripheral:i2s I2S peripheral tests Unit, Integration, or Hardware-in-Loop Testing
Projects
Status: Todo
Development

No branches or pull requests

4 participants