baldram / ESP_VS1053_Library

A library for VS1053 MP3 Codec Breakout adapted for Espressif ESP8266 and ESP32 boards.
https://platformio.org/lib/show/1744/ESP_VS1053_Library
GNU General Public License v3.0
114 stars 36 forks source link

Use timeout when waiting for dreq in sci mode #99

Open episource opened 2 years ago

episource commented 2 years ago

I observed that sometimes dreq did not become high after SCI operations. This is compliant with the datasheet p.38 ("If DREQ is low when an SCI operation is performed, it also stays low after SCI operation processing"). The datasheet gives maximum times SCI operations may require until completion.

Howerver, the current implemention always expected dreq to become high after SCI operations. It will wait endlessly if not.

This PR adds a timed wait for data request to be used for SCI operations. The default timeout (50ms) is chosen, such that all SCI operations will have completed within the chosen timeout. See datasheet p.38.

episource commented 1 year ago

Conflicts resolved. Rebased to current master.