Skip to content

Commit

Permalink
Revert "Fix HAL_SPI.cpp"
Browse files Browse the repository at this point in the history
This reverts commit a61cdf6.
  • Loading branch information
Serhiy-K committed Sep 9, 2020
1 parent 2438f46 commit 66279f1
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 6 deletions.
11 changes: 10 additions & 1 deletion Marlin/src/HAL/ESP32/HAL_SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,20 +79,29 @@ void spiInit(uint8_t spiRate) {
}

uint8_t spiRec() {
return SPI.transfer(0xFF);
SPI.beginTransaction(spiConfig);
uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
return returnByte;
}

void spiRead(uint8_t* buf, uint16_t nbyte) {
SPI.beginTransaction(spiConfig);
SPI.transferBytes(0, buf, nbyte);
SPI.endTransaction();
}

void spiSend(uint8_t b) {
SPI.beginTransaction(spiConfig);
SPI.transfer(b);
SPI.endTransaction();
}

void spiSendBlock(uint8_t token, const uint8_t* buf) {
SPI.beginTransaction(spiConfig);
SPI.transfer(token);
SPI.writeBytes(const_cast<uint8_t*>(buf), 512);
SPI.endTransaction();
}

void spiBeginTransaction(uint32_t spiClock, uint8_t bitOrder, uint8_t dataMode) {
Expand Down
11 changes: 10 additions & 1 deletion Marlin/src/HAL/SAMD51/HAL_SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,10 @@
* @details
*/
uint8_t spiRec() {
return sdSPI.transfer(0xFF);
sdSPI.beginTransaction(spiConfig);
uint8_t returnByte = sdSPI.transfer(0xFF);
sdSPI.endTransaction();
return returnByte;
}

/**
Expand All @@ -103,7 +106,9 @@
void spiRead(uint8_t* buf, uint16_t nbyte) {
if (nbyte == 0) return;
memset(buf, 0xFF, nbyte);
sdSPI.beginTransaction(spiConfig);
sdSPI.transfer(buf, nbyte);
sdSPI.endTransaction();
}

/**
Expand All @@ -114,7 +119,9 @@
* @details
*/
void spiSend(uint8_t b) {
sdSPI.beginTransaction(spiConfig);
sdSPI.transfer(b);
sdSPI.endTransaction();
}

/**
Expand All @@ -126,8 +133,10 @@
* @details Uses DMA
*/
void spiSendBlock(uint8_t token, const uint8_t* buf) {
sdSPI.beginTransaction(spiConfig);
sdSPI.transfer(token);
sdSPI.transfer((uint8_t*)buf, nullptr, 512);
sdSPI.endTransaction();
}

void spiBeginTransaction(uint32_t spiClock, uint8_t bitOrder, uint8_t dataMode) {
Expand Down
11 changes: 10 additions & 1 deletion Marlin/src/HAL/STM32/HAL_SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,10 @@ static SPISettings spiConfig;
* @details
*/
uint8_t spiRec() {
return SPI.transfer(0xFF);
SPI.beginTransaction(spiConfig);
uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
return returnByte;
}

/**
Expand All @@ -188,7 +191,9 @@ static SPISettings spiConfig;
void spiRead(uint8_t* buf, uint16_t nbyte) {
if (nbyte == 0) return;
memset(buf, 0xFF, nbyte);
SPI.beginTransaction(spiConfig);
SPI.transfer(buf, nbyte);
SPI.endTransaction();
}

/**
Expand All @@ -199,7 +204,9 @@ static SPISettings spiConfig;
* @details
*/
void spiSend(uint8_t b) {
SPI.beginTransaction(spiConfig);
SPI.transfer(b);
SPI.endTransaction();
}

/**
Expand All @@ -212,8 +219,10 @@ static SPISettings spiConfig;
*/
void spiSendBlock(uint8_t token, const uint8_t* buf) {
uint8_t rxBuf[512];
SPI.beginTransaction(spiConfig);
SPI.transfer(token);
SPI.transfer((uint8_t*)buf, &rxBuf, 512);
SPI.endTransaction();
}

#endif // SOFTWARE_SPI
Expand Down
11 changes: 10 additions & 1 deletion Marlin/src/HAL/STM32_F4_F7/HAL_SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,10 @@ void spiInit(uint8_t spiRate) {
* @details
*/
uint8_t spiRec() {
return SPI.transfer(0xFF);
SPI.beginTransaction(spiConfig);
uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
return returnByte;
}

/**
Expand All @@ -116,11 +119,13 @@ uint8_t spiRec() {
* @details Uses DMA
*/
void spiRead(uint8_t* buf, uint16_t nbyte) {
SPI.beginTransaction(spiConfig);
#ifndef STM32GENERIC
SPI.dmaTransfer(0, const_cast<uint8_t*>(buf), nbyte);
#else
SPI.transfer((uint8_t*)buf, nbyte);
#endif
SPI.endTransaction();
}

/**
Expand All @@ -131,7 +136,9 @@ void spiRead(uint8_t* buf, uint16_t nbyte) {
* @details
*/
void spiSend(uint8_t b) {
SPI.beginTransaction(spiConfig);
SPI.transfer(b);
SPI.endTransaction();
}

/**
Expand All @@ -143,12 +150,14 @@ void spiSend(uint8_t b) {
* @details Use DMA
*/
void spiSendBlock(uint8_t token, const uint8_t* buf) {
SPI.beginTransaction(spiConfig);
SPI.transfer(token);
#ifndef STM32GENERIC
SPI.dmaSend(const_cast<uint8_t*>(buf), 512);
#else
SPI.transfer((uint8_t*)buf, nullptr, 512);
#endif
SPI.endTransaction();
}

#endif // SOFTWARE_SPI
Expand Down
11 changes: 10 additions & 1 deletion Marlin/src/HAL/TEENSY31_32/HAL_SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,20 @@ void spiInit(uint8_t spiRate) {

// SPI receive a byte
uint8_t spiRec() {
return SPI.transfer(0xFF);
SPI.beginTransaction(spiConfig);
const uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
return returnByte;
//SPDR = 0xFF;
//while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
//return SPDR;
}

// SPI read data
void spiRead(uint8_t* buf, uint16_t nbyte) {
SPI.beginTransaction(spiConfig);
SPI.transfer(buf, nbyte);
SPI.endTransaction();
//if (nbyte-- == 0) return;
// SPDR = 0xFF;
//for (uint16_t i = 0; i < nbyte; i++) {
Expand All @@ -94,13 +99,16 @@ void spiRead(uint8_t* buf, uint16_t nbyte) {

// SPI send a byte
void spiSend(uint8_t b) {
SPI.beginTransaction(spiConfig);
SPI.transfer(b);
SPI.endTransaction();
//SPDR = b;
//while (!TEST(SPSR, SPIF)) { /* nada */ }
}

// SPI send block
void spiSendBlock(uint8_t token, const uint8_t* buf) {
SPI.beginTransaction(spiConfig);
SPDR = token;
for (uint16_t i = 0; i < 512; i += 2) {
while (!TEST(SPSR, SPIF)) { /* nada */ };
Expand All @@ -109,6 +117,7 @@ void spiSendBlock(uint8_t token, const uint8_t* buf) {
SPDR = buf[i + 1];
}
while (!TEST(SPSR, SPIF)) { /* nada */ };
SPI.endTransaction();
}


Expand Down
11 changes: 10 additions & 1 deletion Marlin/src/HAL/TEENSY35_36/HAL_SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,19 @@ void spiInit(uint8_t spiRate) {
}

uint8_t spiRec() {
return SPI.transfer(0xFF);
SPI.beginTransaction(spiConfig);
uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
return returnByte;
//SPDR = 0xFF;
//while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
//return SPDR;
}

void spiRead(uint8_t* buf, uint16_t nbyte) {
SPI.beginTransaction(spiConfig);
SPI.transfer(buf, nbyte);
SPI.endTransaction();
//if (nbyte-- == 0) return;
// SPDR = 0xFF;
//for (uint16_t i = 0; i < nbyte; i++) {
Expand All @@ -86,12 +91,15 @@ void spiRead(uint8_t* buf, uint16_t nbyte) {
}

void spiSend(uint8_t b) {
SPI.beginTransaction(spiConfig);
SPI.transfer(b);
SPI.endTransaction();
//SPDR = b;
//while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
}

void spiSendBlock(uint8_t token, const uint8_t* buf) {
SPI.beginTransaction(spiConfig);
SPDR = token;
for (uint16_t i = 0; i < 512; i += 2) {
while (!TEST(SPSR, SPIF)) { /* nada */ };
Expand All @@ -100,6 +108,7 @@ void spiSendBlock(uint8_t token, const uint8_t* buf) {
SPDR = buf[i + 1];
}
while (!TEST(SPSR, SPIF)) { /* nada */ };
SPI.endTransaction();
}

// Begin SPI transaction, set clock, bit order, data mode
Expand Down

0 comments on commit 66279f1

Please sign in to comment.