Browse Source
Merge pull request #11267 from teemuatlut/bf2_lpc_spi
[2.0.x] LPC1768: Expand hardware SPI class
pull/1/head
Scott Lahteine
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with
26 additions and
8 deletions
-
Marlin/src/HAL/HAL_LPC1768/HAL_spi.cpp
-
Marlin/src/HAL/HAL_LPC1768/include/HardwareSerial.cpp
-
Marlin/src/HAL/HAL_LPC1768/include/HardwareSerial.h
-
Marlin/src/HAL/HAL_LPC1768/include/SPI.h
-
Marlin/src/HAL/HAL_LPC1768/include/SoftwareSerial.cpp
-
Marlin/src/HAL/HAL_LPC1768/include/SoftwareSerial.h
|
|
@ -150,7 +150,7 @@ |
|
|
|
} |
|
|
|
|
|
|
|
void spiInit(uint8_t spiRate) { |
|
|
|
|
|
|
|
SSP_Cmd(LPC_SSP0, DISABLE); // Disable SSP0 before changing rate
|
|
|
|
// table to convert Marlin spiRates (0-5 plus default) into bit rates
|
|
|
|
uint32_t Marlin_speed[7]; // CPSR is always 2
|
|
|
|
Marlin_speed[0] = 8333333; //(SCR: 2) desired: 8,000,000 actual: 8,333,333 +4.2% SPI_FULL_SPEED
|
|
|
@ -242,6 +242,21 @@ |
|
|
|
|
|
|
|
void SPIClass::begin() { spiBegin(); } |
|
|
|
|
|
|
|
void SPIClass::beginTransaction(SPISettings cfg) { |
|
|
|
uint8_t spiRate; |
|
|
|
switch(cfg.spiRate()) { |
|
|
|
case 8000000: spiRate=0 ;break; |
|
|
|
case 4000000: spiRate=1 ;break; |
|
|
|
case 2000000: spiRate=2 ;break; |
|
|
|
case 1000000: spiRate=3 ;break; |
|
|
|
case 500000: spiRate=4 ;break; |
|
|
|
case 250000: spiRate=5 ;break; |
|
|
|
case 125000: spiRate=6 ;break; |
|
|
|
default: spiRate=2; break; |
|
|
|
} |
|
|
|
spiInit(spiRate); |
|
|
|
} |
|
|
|
|
|
|
|
uint8_t SPIClass::transfer(uint8_t B) { |
|
|
|
return spiTransfer(B); |
|
|
|
} |
|
|
|
|
|
@ -23,9 +23,9 @@ |
|
|
|
#ifndef HARDWARE_SERIAL_H_ |
|
|
|
#define HARDWARE_SERIAL_H_ |
|
|
|
|
|
|
|
#include "../../inc/MarlinConfigPre.h" |
|
|
|
#include "../../../inc/MarlinConfigPre.h" |
|
|
|
#if ENABLED(EMERGENCY_PARSER) |
|
|
|
#include "../../feature/emergency_parser.h" |
|
|
|
#include "../../../feature/emergency_parser.h" |
|
|
|
#endif |
|
|
|
|
|
|
|
#include <stdarg.h> |
|
|
@ -31,13 +31,16 @@ |
|
|
|
|
|
|
|
class SPISettings { |
|
|
|
public: |
|
|
|
SPISettings(int a, int b, int c) {}; |
|
|
|
SPISettings(uint32_t speed, int, int) : spi_speed(speed) {}; |
|
|
|
uint32_t spiRate() { return spi_speed; } |
|
|
|
private: |
|
|
|
uint32_t spi_speed; |
|
|
|
}; |
|
|
|
|
|
|
|
class SPIClass { |
|
|
|
public: |
|
|
|
void begin(); |
|
|
|
void beginTransaction(SPISettings foo) {}; |
|
|
|
void beginTransaction(SPISettings); |
|
|
|
void endTransaction() {}; |
|
|
|
uint8_t transfer(uint8_t data); |
|
|
|
uint16_t transfer16(uint16_t data); |
|
|
|
|
|
@ -36,13 +36,13 @@ |
|
|
|
// Includes
|
|
|
|
//
|
|
|
|
//#include <WInterrupts.h>
|
|
|
|
#include "../../inc/MarlinConfig.h" |
|
|
|
#include "../Delay.h" |
|
|
|
#include "../../../inc/MarlinConfig.h" |
|
|
|
#include "../../Delay.h" |
|
|
|
#include <stdint.h> |
|
|
|
#include <stdarg.h> |
|
|
|
#include <Arduino.h> |
|
|
|
#include <pinmapping.h> |
|
|
|
#include "fastio.h" |
|
|
|
#include "../fastio.h" |
|
|
|
#include "SoftwareSerial.h" |
|
|
|
|
|
|
|
void GpioEnableInt(uint32_t port, uint32_t pin, uint32_t mode); |