Support FYSETC_MINI_12864 on Re-ARM, RAMPS_FD, MKS SBASE (#13717)
This commit is contained in:
parent
9992c424f5
commit
9b578ca343
6 changed files with 140 additions and 23 deletions
|
@ -65,10 +65,76 @@
|
|||
#undef SPI_SPEED
|
||||
#define SPI_SPEED 2 // About 2 MHz
|
||||
|
||||
#include <algorithm>
|
||||
#include <LPC17xx.h>
|
||||
#include <gpio.h>
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
uint8_t swSpiTransfer_mode_0(uint8_t b, const uint8_t spi_speed, const pin_t sck_pin, const pin_t miso_pin, const pin_t mosi_pin ) {
|
||||
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
if (spi_speed == 0) {
|
||||
gpio_set(mosi_pin, !!(b & 0x80));
|
||||
gpio_set(sck_pin, HIGH);
|
||||
b <<= 1;
|
||||
if (miso_pin >= 0 && gpio_get(miso_pin)) b |= 1;
|
||||
gpio_set(sck_pin, LOW);
|
||||
}
|
||||
else {
|
||||
const uint8_t state = (b & 0x80) ? HIGH : LOW;
|
||||
for (uint8_t j = 0; j < spi_speed; j++)
|
||||
gpio_set(mosi_pin, state);
|
||||
|
||||
for (uint8_t j = 0; j < spi_speed + (miso_pin >= 0 ? 0 : 1); j++)
|
||||
gpio_set(sck_pin, HIGH);
|
||||
|
||||
b <<= 1;
|
||||
if (miso_pin >= 0 && gpio_get(miso_pin)) b |= 1;
|
||||
|
||||
for (uint8_t j = 0; j < spi_speed; j++)
|
||||
gpio_set(sck_pin, LOW);
|
||||
}
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
uint8_t swSpiTransfer_mode_3(uint8_t b, const uint8_t spi_speed, const pin_t sck_pin, const pin_t miso_pin, const pin_t mosi_pin ) {
|
||||
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
const uint8_t state = (b & 0x80) ? HIGH : LOW;
|
||||
if (spi_speed == 0) {
|
||||
gpio_set(sck_pin, LOW);
|
||||
gpio_set(mosi_pin, state);
|
||||
gpio_set(mosi_pin, state); // need some setup time
|
||||
gpio_set(sck_pin, HIGH);
|
||||
}
|
||||
else {
|
||||
for (uint8_t j = 0; j < spi_speed + (miso_pin >= 0 ? 0 : 1); j++)
|
||||
gpio_set(sck_pin, LOW);
|
||||
|
||||
for (uint8_t j = 0; j < spi_speed; j++)
|
||||
gpio_set(mosi_pin, state);
|
||||
|
||||
for (uint8_t j = 0; j < spi_speed; j++)
|
||||
gpio_set(sck_pin, HIGH);
|
||||
}
|
||||
b <<= 1;
|
||||
if (miso_pin >= 0 && gpio_get(miso_pin)) b |= 1;
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
static uint8_t SPI_speed = 0;
|
||||
|
||||
static void u8g_sw_spi_HAL_LPC1768_shift_out(uint8_t dataPin, uint8_t clockPin, uint8_t val) {
|
||||
swSpiTransfer(val, SPI_speed, clockPin, -1, dataPin);
|
||||
#if ENABLED(FYSETC_MINI_12864)
|
||||
swSpiTransfer_mode_3(val, SPI_speed, clockPin, -1, dataPin);
|
||||
#else
|
||||
swSpiTransfer_mode_0(val, SPI_speed, clockPin, -1, dataPin);
|
||||
#endif
|
||||
}
|
||||
|
||||
uint8_t u8g_com_HAL_LPC1768_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) {
|
||||
|
|
|
@ -143,6 +143,8 @@
|
|||
|
||||
#define DOGLCD
|
||||
#define ULTIPANEL
|
||||
#define LCD_CONTRAST_MIN 0
|
||||
#define LCD_CONTRAST_MAX 255
|
||||
#define DEFAULT_LCD_CONTRAST 255
|
||||
#define LED_COLORS_REDUCE_GREEN
|
||||
|
||||
|
|
|
@ -112,7 +112,11 @@
|
|||
//#define U8G_CLASS U8GLIB_MINI12864
|
||||
//#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 8 stripes
|
||||
#define U8G_CLASS U8GLIB_MINI12864_2X
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 4 stripes
|
||||
#if EITHER(FYSETC_MINI_12864, TARGET_LPC1768)
|
||||
#define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0 // 4 stripes SW-SPI
|
||||
#else
|
||||
#define U8G_PARAM DOGLCD_CS, DOGLCD_A0 // 4 stripes HW-SPI
|
||||
#endif
|
||||
#elif ENABLED(U8GLIB_SH1106_EINSTART)
|
||||
// Connected via motherboard header
|
||||
#define U8G_CLASS U8GLIB_SH1106_128X64
|
||||
|
|
|
@ -253,6 +253,41 @@
|
|||
#define DOGLCD_SCK SCK_PIN
|
||||
#define DOGLCD_MOSI MOSI_PIN
|
||||
#endif
|
||||
|
||||
#if ENABLED(FYSETC_MINI_12864)
|
||||
/**
|
||||
* The Fysetc display can NOT use the SCK and MOSI pins on EXP2, so a
|
||||
* special cable is needed to go between EXP2 on the FYSETC and the
|
||||
* controller board's EXP2 and J8. It also means that a software SPI
|
||||
* is needed to drive those pins.
|
||||
*
|
||||
* The Fysetc requires mode 3 SPI interface.
|
||||
*
|
||||
* Pins 6, 7 & 8 on EXP2 are no connects. That means a second special
|
||||
* cable will be needed if the RGB LEDs are to be active.
|
||||
*/
|
||||
#define DOGLCD_CS LCD_PINS_ENABLE // EXP1.3 (LCD_EN on Fysetc schematic)
|
||||
#define DOGLCD_A0 LCD_PINS_RS // EXP1.4 (LCD_A0 on Fysetc schematic)
|
||||
#define DOGLCD_SCK P2_11 // J8-5 (SCK on Fysetc schematic)
|
||||
#define DOGLCD_MOSI P4_28 // J8-6 (MOSI on Fysetc schematic)
|
||||
|
||||
#define RGB_LED
|
||||
//#define RGBW_LED
|
||||
#if EITHER(RGB_LED, RGBW_LED)
|
||||
#define RGB_LED_R_PIN P2_12 // J8-4 (LCD_D6 on Fysetc schematic)
|
||||
#define RGB_LED_G_PIN P1_23 // J8-3 (LCD_D5 on Fysetc schematic)
|
||||
#define RGB_LED_B_PIN P1_22 // J8-2 (LCD_D7 on Fysetc schematic)
|
||||
//#define RGB_LED_W_PIN -1
|
||||
#endif
|
||||
|
||||
#elif ENABLED(MINIPANEL)
|
||||
// GLCD features
|
||||
// Uncomment screen orientation
|
||||
//#define LCD_SCREEN_ROT_90
|
||||
//#define LCD_SCREEN_ROT_180
|
||||
//#define LCD_SCREEN_ROT_270
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -156,7 +156,10 @@
|
|||
#define LCD_PINS_D7 29
|
||||
#endif
|
||||
|
||||
#if ENABLED(MINIPANEL)
|
||||
#if ENABLED(FYSETC_MINI_12864)
|
||||
#define DOGLCD_CS LCD_PINS_ENABLE
|
||||
#define DOGLCD_A0 LCD_PINS_RS
|
||||
#elif ENABLED(MINIPANEL)
|
||||
#define DOGLCD_CS 25
|
||||
#define DOGLCD_A0 27
|
||||
#endif
|
||||
|
|
|
@ -269,11 +269,21 @@
|
|||
|
||||
#elif ENABLED(ULTRA_LCD)
|
||||
|
||||
//#define SCK_PIN P0_15 // (52) system defined J3-9 & AUX-3
|
||||
//#define MISO_PIN P0_17 // (50) system defined J3-10 & AUX-3
|
||||
//#define MOSI_PIN P0_18 // (51) system defined J3-10 & AUX-3
|
||||
//#define SS_PIN P1_23 // (53) system defined J3-5 & AUX-3 (Sometimes called SDSS)
|
||||
|
||||
#if ENABLED(FYSETC_MINI_12864)
|
||||
#define BEEPER_PIN P1_01
|
||||
#define BTN_ENC P1_04
|
||||
#else
|
||||
#define BEEPER_PIN P1_30 // (37) not 5V tolerant
|
||||
#define BTN_ENC P2_11 // (35) J3-3 & AUX-4
|
||||
#endif
|
||||
|
||||
#define BTN_EN1 P3_26 // (31) J3-2 & AUX-4
|
||||
#define BTN_EN2 P3_25 // (33) J3-4 & AUX-4
|
||||
#define BTN_ENC P2_11 // (35) J3-3 & AUX-4
|
||||
|
||||
#define SD_DETECT_PIN P1_31 // (49) J3-1 & AUX-3 (NOT 5V tolerant)
|
||||
#define KILL_PIN P1_22 // (41) J5-4 & AUX-4
|
||||
|
@ -296,13 +306,6 @@
|
|||
#if ANY(VIKI2, miniVIKI)
|
||||
// #define LCD_SCREEN_ROT_180
|
||||
|
||||
#define BTN_EN1 P3_26 // (31) J3-2 & AUX-4
|
||||
#define BTN_EN2 P3_25 // (33) J3-4 & AUX-4
|
||||
#define BTN_ENC P2_11 // (35) J3-3 & AUX-4
|
||||
|
||||
#define SD_DETECT_PIN P1_31 // (49) J3-1 & AUX-3 (NOT 5V tolerant)
|
||||
#define KILL_PIN P1_22 // (41) J5-4 & AUX-4
|
||||
|
||||
#define DOGLCD_CS P0_16 // (16)
|
||||
#define DOGLCD_A0 P2_06 // (59) J3-8 & AUX-2
|
||||
#define DOGLCD_SCK SCK_PIN
|
||||
|
@ -311,8 +314,17 @@
|
|||
#define STAT_LED_BLUE_PIN P0_26 //(63) may change if cable changes
|
||||
#define STAT_LED_RED_PIN P1_21 // ( 6) may change if cable changes
|
||||
#else
|
||||
|
||||
#if ENABLED(FYSETC_MINI_12864)
|
||||
#define DOGLCD_SCK P0_15
|
||||
#define DOGLCD_MOSI P0_18
|
||||
#define DOGLCD_CS P1_09 // use Ethernet connector for EXP1 cable signals
|
||||
#define DOGLCD_A0 P1_14
|
||||
#else
|
||||
#define DOGLCD_CS P0_26 // (63) J5-3 & AUX-2
|
||||
#define DOGLCD_A0 P2_06 // (59) J3-8 & AUX-2
|
||||
#endif
|
||||
|
||||
#define LCD_BACKLIGHT_PIN P0_16 //(16) J3-7 & AUX-4 - only used on DOGLCD controllers
|
||||
#define LCD_PINS_ENABLE P0_18 // (51) (MOSI) J3-10 & AUX-3
|
||||
#define LCD_PINS_D4 P0_15 // (52) (SCK) J3-9 & AUX-3
|
||||
|
@ -323,11 +335,6 @@
|
|||
#endif
|
||||
#endif
|
||||
|
||||
//#define MISO_PIN P0_17 // (50) system defined J3-10 & AUX-3
|
||||
//#define MOSI_PIN P0_18 // (51) system defined J3-10 & AUX-3
|
||||
//#define SCK_PIN P0_15 // (52) system defined J3-9 & AUX-3
|
||||
//#define SS_PIN P1_23 // (53) system defined J3-5 & AUX-3 (Sometimes called SDSS)
|
||||
|
||||
#if ENABLED(MINIPANEL)
|
||||
// GLCD features
|
||||
// Uncomment screen orientation
|
||||
|
@ -362,10 +369,10 @@
|
|||
|
||||
#if ENABLED(LPC_SD_LCD)
|
||||
|
||||
#define SCK_PIN P0_15
|
||||
#define MISO_PIN P0_17
|
||||
#define MOSI_PIN P0_18
|
||||
#define SS_PIN P1_23 // Chip select for SD card used by Marlin
|
||||
#define SCK_PIN P0_15 // (52) system defined J3-9 & AUX-3
|
||||
#define MISO_PIN P0_17 // (50) system defined J3-10 & AUX-3
|
||||
#define MOSI_PIN P0_18 // (51) system defined J3-10 & AUX-3
|
||||
#define SS_PIN P1_23 // (53) system defined J3-5 & AUX-3 (Sometimes called SDSS) - CS used by Marlin
|
||||
#define ONBOARD_SD_CS P0_06 // Chip select for "System" SD card
|
||||
|
||||
#elif ENABLED(LPC_SD_ONBOARD)
|
||||
|
|
Reference in a new issue