Skip to content

Commit f1df4b8

Browse files
Add files via upload
1 parent 571c2f7 commit f1df4b8

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

cores/esp32/esp32-hal-spi.c

+10-1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ struct spi_struct_t {
7474
int8_t miso;
7575
int8_t mosi;
7676
int8_t ss;
77+
bool invert_out;
7778
};
7879

7980
#if CONFIG_IDF_TARGET_ESP32S2
@@ -356,6 +357,8 @@ bool spiDetachMOSI(spi_t *spi) {
356357
return true;
357358
}
358359

360+
361+
359362
bool spiAttachSS(spi_t *spi, uint8_t ss_num, int8_t ss) {
360363
if (!spi || ss < 0 || ss_num > 2) {
361364
return false;
@@ -365,7 +368,7 @@ bool spiAttachSS(spi_t *spi, uint8_t ss_num, int8_t ss) {
365368
return false;
366369
}
367370
pinMode(ss, OUTPUT);
368-
pinMatrixOutAttach(ss, SPI_SS_IDX(spi->num, ss_num), false, false);
371+
pinMatrixOutAttach(ss, SPI_SS_IDX(spi->num, ss_num), spi->invert_out, false);
369372
spiEnableSSPins(spi, (1 << ss_num));
370373
spi->ss = ss;
371374
if (!perimanSetPinBus(ss, ESP32_BUS_TYPE_SPI_MASTER_SS, (void *)(spi->num + 1), spi->num, -1)) {
@@ -435,6 +438,12 @@ void spiSSDisable(spi_t *spi) {
435438
SPI_MUTEX_UNLOCK();
436439
}
437440

441+
void spiSSInvertout(spi_t *spi, bool invert) {
442+
if (spi) {
443+
spi->invert_out = invert;
444+
}
445+
}
446+
438447
void spiSSSet(spi_t *spi) {
439448
if (!spi) {
440449
return;

cores/esp32/esp32-hal-spi.h

+2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ void spiSSSet(spi_t *spi);
9797
void spiSSClear(spi_t *spi);
9898

9999
void spiWaitReady(spi_t *spi);
100+
//invert hardware SS
101+
void spiSSInvertout(spi_t *spi, bool invert);
100102

101103
uint32_t spiGetClockDiv(spi_t *spi);
102104
uint8_t spiGetDataMode(spi_t *spi);

0 commit comments

Comments
 (0)