implement a parallel interface for esp32 using the i2s peripheral
Thank you for your contribution!
We appreciate the time and effort you've put into this pull request. To help us review it efficiently, please ensure you've gone through the following checklist:
Submission Checklist 📝
- [x] I have updated existing examples or added new ones (if applicable).
- [x] I have used
cargo xtask fmt-packagescommand to ensure that all changed code is formatted correctly. - [x] My changes were added to the
CHANGELOG.mdin the proper section. - [ ] I have added necessary changes to user code to the Migration Guide.
- [x] My changes are in accordance to the esp-rs API guidelines
Extra:
- [x] I have read the CONTRIBUTING.md guide and followed its instructions.
Pull Request Details 📖
Description
The ESP32 supports a "LCD" interface on the i2s peripheral. This PR implements that for TX. Note that there are some limitations on the byte/word order that I don't believe can be corrected with peripheral configuration:
- 8bit: [0, 1, 2, 3] is output as [2, 3, 0, 1]
- 16bit: [0, 1, 2, 3] is output as [1, 0, 3, 2]
Testing
- Logic analyzer
- HUB75 Display
Not sure why the i2s HIL test is failing - I made no changes there.
Not sure why the
i2sHIL test is failing - I made no changes there.
They've always been flakey.
I'm hoping we can get away with minimal changes for the S2 - the TRM seems to mention LCD there as well. Thank you!