Переглянути джерело

T4.1 make SPI CS pins be index not mask, plus Franks change to timing

The CS pins on T4.x are not like 3.x in that is you select one by index, not one or more by mask.  So changed returned values to be index (1 based)

Also while testing I pulled in Frank's change for adding delay after CS pin is logically selected.
main
Kurt Eckhardt 4 роки тому
джерело
коміт
fc9159a681
2 змінених файлів з 3 додано та 3 видалено
  1. +2
    -2
      SPI.cpp
  2. +1
    -1
      SPI.h

+ 2
- 2
SPI.cpp Переглянути файл

@@ -1341,7 +1341,7 @@ void SPIClass::setClockDivider_noInline(uint32_t clk) {
div =0;
}

_ccr = LPSPI_CCR_SCKDIV(div) | LPSPI_CCR_DBT(div/2);
_ccr = LPSPI_CCR_SCKDIV(div) | LPSPI_CCR_DBT(div/2) | LPSPI_CCR_PCSSCK(div/2);

}
//Serial.printf("SPI.setClockDivider_noInline CCR:%x TCR:%x\n", _ccr, port().TCR);
@@ -1519,7 +1519,7 @@ const SPIClass::SPI_Hardware_t SPIClass::spiclass_lpspi4_hardware = {
IOMUXC_LPSPI4_SCK_SELECT_INPUT,
10, 37, 36, // CS
3 | 0x10, 2 | 0x10, 2 | 0x10,
1, 0x2, 0x4,
1, 2, 3,
0, 0, 0,
&IOMUXC_LPSPI4_PCS0_SELECT_INPUT, 0, 0
};

+ 1
- 1
SPI.h Переглянути файл

@@ -1221,7 +1221,7 @@ public:
div =0;
}
_ccr = LPSPI_CCR_SCKDIV(div) | LPSPI_CCR_DBT(div/2);
_ccr = LPSPI_CCR_SCKDIV(div) | LPSPI_CCR_DBT(div/2) | LPSPI_CCR_PCSSCK(div/2);

}
//Serial.printf("SPI.beginTransaction CCR:%x TCR:%x\n", _ccr, settings.tcr);

Завантаження…
Відмінити
Зберегти