✨ ESP32 Panda_ZHU and Panda_M4 (#22644)
This commit is contained in:
		@@ -28,6 +28,10 @@
 | 
			
		||||
#include <esp_adc_cal.h>
 | 
			
		||||
#include <HardwareSerial.h>
 | 
			
		||||
 | 
			
		||||
#if ENABLED(USE_ESP32_TASK_WDT)
 | 
			
		||||
  #include <esp_task_wdt.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ENABLED(WIFISUPPORT)
 | 
			
		||||
  #include <ESPAsyncWebServer.h>
 | 
			
		||||
  #include "wifi.h"
 | 
			
		||||
@@ -90,8 +94,24 @@ volatile int numPWMUsed = 0,
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void HAL_init_board() {
 | 
			
		||||
#if ENABLED(USE_ESP32_EXIO)
 | 
			
		||||
  HardwareSerial YSerial2(2);
 | 
			
		||||
 | 
			
		||||
  void Write_EXIO(uint8_t IO, uint8_t v) {
 | 
			
		||||
    if (ISRS_ENABLED()) {
 | 
			
		||||
      DISABLE_ISRS();
 | 
			
		||||
      YSerial2.write(0x80 | (((char)v) << 5) | (IO - 100));
 | 
			
		||||
      ENABLE_ISRS();
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
      YSerial2.write(0x80 | (((char)v) << 5) | (IO - 100));
 | 
			
		||||
  }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void HAL_init_board() {
 | 
			
		||||
  #if ENABLED(USE_ESP32_TASK_WDT)
 | 
			
		||||
    esp_task_wdt_init(10, true);
 | 
			
		||||
  #endif
 | 
			
		||||
  #if ENABLED(ESP3D_WIFISUPPORT)
 | 
			
		||||
    esp3dlib.init();
 | 
			
		||||
  #elif ENABLED(WIFISUPPORT)
 | 
			
		||||
@@ -127,7 +147,11 @@ void HAL_init_board() {
 | 
			
		||||
  // Initialize the i2s peripheral only if the I2S stepper stream is enabled.
 | 
			
		||||
  // The following initialization is performed after Serial1 and Serial2 are defined as
 | 
			
		||||
  // their native pins might conflict with the i2s stream even when they are remapped.
 | 
			
		||||
  TERN_(I2S_STEPPER_STREAM, i2s_init());
 | 
			
		||||
  #if ENABLED(USE_ESP32_EXIO)
 | 
			
		||||
    YSerial2.begin(460800 * 3, SERIAL_8N1, 16, 17);
 | 
			
		||||
  #elif ENABLED(I2S_STEPPER_STREAM)
 | 
			
		||||
    i2s_init();
 | 
			
		||||
  #endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void HAL_idletask() {
 | 
			
		||||
 
 | 
			
		||||
@@ -142,6 +142,10 @@ void HAL_idletask();
 | 
			
		||||
inline void HAL_init() {}
 | 
			
		||||
void HAL_init_board();
 | 
			
		||||
 | 
			
		||||
#if ENABLED(USE_ESP32_EXIO)
 | 
			
		||||
  void Write_EXIO(uint8_t IO, uint8_t v);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Delay in cycles (used by DELAY_NS / DELAY_US)
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
@@ -53,11 +53,9 @@ static SPISettings spiConfig;
 | 
			
		||||
// ------------------------
 | 
			
		||||
 | 
			
		||||
void spiBegin() {
 | 
			
		||||
  #if !PIN_EXISTS(SD_SS)
 | 
			
		||||
    #error "SD_SS_PIN not defined!"
 | 
			
		||||
  #if ENABLED(SDSUPPORT) && PIN_EXISTS(SD_SS)
 | 
			
		||||
    OUT_WRITE(SD_SS_PIN, HIGH);
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  OUT_WRITE(SD_SS_PIN, HIGH);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void spiInit(uint8_t spiRate) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								Marlin/src/HAL/ESP32/esp32.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								Marlin/src/HAL/ESP32/esp32.csv
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
# Name,   Type, SubType, Offset,  Size, Flags
 | 
			
		||||
nvs,      data, nvs,     0x9000,   0x5000,
 | 
			
		||||
otadata,  data, ota,     0xe000,   0x2000,
 | 
			
		||||
app0,     app,  ota_0,   0x10000,  0x180000,
 | 
			
		||||
app1,     app,  ota_1,   0x190000, 0x180000,
 | 
			
		||||
spiffs,   data, spiffs,  0x310000, 0xF0000,
 | 
			
		||||
		
		
			
  | 
@@ -40,13 +40,19 @@
 | 
			
		||||
// Set pin as input with pullup mode
 | 
			
		||||
#define _PULLUP(IO, v)          pinMode(IO, v ? INPUT_PULLUP : INPUT)
 | 
			
		||||
 | 
			
		||||
// Read a pin wrapper
 | 
			
		||||
#define READ(IO)                (IS_I2S_EXPANDER_PIN(IO) ? i2s_state(I2S_EXPANDER_PIN_INDEX(IO)) : digitalRead(IO))
 | 
			
		||||
#if ENABLED(USE_ESP32_EXIO)
 | 
			
		||||
  // Read a pin wrapper
 | 
			
		||||
  #define READ(IO)                digitalRead(IO)
 | 
			
		||||
  // Write to a pin wrapper
 | 
			
		||||
  #define WRITE(IO, v)            (IO >= 100 ? Write_EXIO(IO, v) : digitalWrite(IO, v))
 | 
			
		||||
#else
 | 
			
		||||
  // Read a pin wrapper
 | 
			
		||||
  #define READ(IO)                (IS_I2S_EXPANDER_PIN(IO) ? i2s_state(I2S_EXPANDER_PIN_INDEX(IO)) : digitalRead(IO))
 | 
			
		||||
  // Write to a pin wrapper
 | 
			
		||||
  #define WRITE(IO, v)            (IS_I2S_EXPANDER_PIN(IO) ? i2s_write(I2S_EXPANDER_PIN_INDEX(IO), v) : digitalWrite(IO, v))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Write to a pin wrapper
 | 
			
		||||
#define WRITE(IO, v)            (IS_I2S_EXPANDER_PIN(IO) ? i2s_write(I2S_EXPANDER_PIN_INDEX(IO), v) : digitalWrite(IO, v))
 | 
			
		||||
 | 
			
		||||
// Set pin as input wrapper
 | 
			
		||||
// Set pin as input wrapper (0x80 | (v << 5) | (IO - 100))
 | 
			
		||||
#define SET_INPUT(IO)           _SET_INPUT(IO)
 | 
			
		||||
 | 
			
		||||
// Set pin as input with pullup wrapper
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,8 @@
 | 
			
		||||
 | 
			
		||||
#include "../../inc/MarlinConfigPre.h"
 | 
			
		||||
 | 
			
		||||
#if DISABLED(USE_ESP32_EXIO)
 | 
			
		||||
 | 
			
		||||
#include "i2s.h"
 | 
			
		||||
 | 
			
		||||
#include "../shared/Marduino.h"
 | 
			
		||||
@@ -340,4 +342,5 @@ void i2s_push_sample() {
 | 
			
		||||
  dma.current[dma.rw_pos++] = i2s_port_data;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // !USE_ESP32_EXIO
 | 
			
		||||
#endif // ARDUINO_ARCH_ESP32
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@
 | 
			
		||||
  extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    esp_err_t esp_task_wdt_reset();
 | 
			
		||||
  esp_err_t esp_task_wdt_reset();
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user