Skip to content

Commit

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

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

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: 1 addition & 10 deletions Marlin/src/HAL/SAMD51/HAL_SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,7 @@
* @details
*/
uint8_t spiRec() {
sdSPI.beginTransaction(spiConfig);
uint8_t returnByte = sdSPI.transfer(0xFF);
sdSPI.endTransaction();
return returnByte;
return sdSPI.transfer(0xFF);
}

/**
Expand All @@ -106,9 +103,7 @@
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 @@ -119,9 +114,7 @@
* @details
*/
void spiSend(uint8_t b) {
sdSPI.beginTransaction(spiConfig);
sdSPI.transfer(b);
sdSPI.endTransaction();
}

/**
Expand All @@ -133,10 +126,8 @@
* @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: 1 addition & 10 deletions Marlin/src/HAL/STM32/HAL_SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,10 +173,7 @@ static SPISettings spiConfig;
* @details
*/
uint8_t spiRec() {
SPI.beginTransaction(spiConfig);
uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
return returnByte;
return SPI.transfer(0xFF);
}

/**
Expand All @@ -191,9 +188,7 @@ 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 @@ -204,9 +199,7 @@ static SPISettings spiConfig;
* @details
*/
void spiSend(uint8_t b) {
SPI.beginTransaction(spiConfig);
SPI.transfer(b);
SPI.endTransaction();
}

/**
Expand All @@ -219,10 +212,8 @@ 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: 1 addition & 10 deletions Marlin/src/HAL/STM32_F4_F7/HAL_SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,7 @@ void spiInit(uint8_t spiRate) {
* @details
*/
uint8_t spiRec() {
SPI.beginTransaction(spiConfig);
uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
return returnByte;
return SPI.transfer(0xFF);
}

/**
Expand All @@ -119,13 +116,11 @@ 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 @@ -136,9 +131,7 @@ void spiRead(uint8_t* buf, uint16_t nbyte) {
* @details
*/
void spiSend(uint8_t b) {
SPI.beginTransaction(spiConfig);
SPI.transfer(b);
SPI.endTransaction();
}

/**
Expand All @@ -150,14 +143,12 @@ 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: 1 addition & 10 deletions Marlin/src/HAL/TEENSY31_32/HAL_SPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,20 +72,15 @@ void spiInit(uint8_t spiRate) {

// SPI receive a byte
uint8_t spiRec() {
SPI.beginTransaction(spiConfig);
const uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
return returnByte;
return SPI.transfer(0xFF);
//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 @@ -99,16 +94,13 @@ 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 @@ -117,7 +109,6 @@ void spiSendBlock(uint8_t token, const uint8_t* buf) {
SPDR = buf[i + 1];
}
while (!TEST(SPSR, SPIF)) { /* nada */ };
SPI.endTransaction();
}


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

uint8_t spiRec() {
SPI.beginTransaction(spiConfig);
uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
return returnByte;
return SPI.transfer(0xFF);
//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 @@ -91,15 +86,12 @@ 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 @@ -108,7 +100,6 @@ 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 a61cdf6

Please sign in to comment.