New SPI invert hardware SS function in hall-spi and SPI library#11297
New SPI invert hardware SS function in hall-spi and SPI library#11297me-no-dev merged 8 commits intoespressif:masterfrom
Conversation
👋 Hello UltimumControl, we appreciate your contribution to this project! 📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more. 🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project. Click to see more instructions ...
Review and merge process you can expect ...
|
lucasssvaz
left a comment
There was a problem hiding this comment.
A couple nitpicks but otherwise LGTM.
P-R-O-C-H-Y
left a comment
There was a problem hiding this comment.
Agree with Lucas's comments, otherwise looks good.
renamed invert_out to ss_invert to be more intuitive
Removed the out from the function name spiSSInvertout.
Removed the out from the function name spiSSInvertout.
|
I made the recommended changes. |
Test Results 76 files 76 suites 12m 45s ⏱️ Results for commit 8578198. ♻️ This comment has been updated with latest results. |
Memory usage test (comparing PR against master branch)The table below shows the summary of memory usage change (decrease - increase) in bytes and percentage for each target.
Click to expand the detailed deltas report [usage change in BYTES]
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
This PR adds the ability to invert the logic level of the Hardware Slave Select (SS) pin for ESP32 SPI buses (HSPI/VSPI). This is critical for compatibility with hardware that expects active-high SS signals.
Backward Compatibility:
No breaking changes: Existing code using setHwCs() will default to invert_out=false (original behavior)
No Software SS Impact: Only affects hardware-controlled SS pins.
Isolation: Changes to one SPI bus (e.g., HSPI) do not affect others (e.g., VSPI).
Usage Example:
SPIClass *hspi = NULL;
setup(){
hspi = new SPIClass(HSPI);
hspi->begin();
hspi->setSSInvert(true); // Set before setHwCs();
hspi->setHwCs(true);
hspi->beginTransaction(SPISettings(SPI_CLOCK, MSBFIRST, SPI_MODE2));
}
I have tested my Pull Request on Arduino-esp32 core v3.1.3 with ESP32-S3 Board.
Related links
Some people have the same issue but with espidf. I use arduino ide so I fixed it for myself.
https://esp32.com/viewtopic.php?t=16057
https://esp32.com/viewtopic.php?t=16057