Skip to content

Commit 64b1ab8

Browse files
committed
add esp32s3 support
1 parent 29ec092 commit 64b1ab8

File tree

3 files changed

+108
-23
lines changed

3 files changed

+108
-23
lines changed

Firmware/FFBoard/Src/global_callbacks.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,11 @@ extern "C" volatile uint32_t* getAnalogBuffer(ADC_HandleTypeDef* hadc,uint8_t* c
379379
for (size_t i = 0; i < ret_num; i+=2)
380380
{
381381
adc_digi_output_data_t *p = (adc_digi_output_data_t *)&result[i];
382-
ADC1_BUF[p->type1.channel] = p->type1.data;
382+
#ifdef CONFIG_IDF_TARGET_ESP32S3
383+
ADC1_BUF[p->type2.channel] = p->type2.data;
384+
#elif defined CONFIG_IDF_TARGET_ESP32S2
385+
ADC1_BUF[p->type1.channel] = p->type1.data;
386+
#endif
383387
}
384388
ESP_LOGV(__FUNCTION__, "[%d] Channel: 0|%04d, 1|%04d, 2|%04d", ret_num,
385389
ADC1_BUF[0],

Firmware/Targets/ESP32S2/main/glue.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,11 @@ static void continuous_adc_init(uint16_t adc1_chan_mask, uint16_t adc2_chan_mask
416416
.conv_limit_num = adc_dma_config.conv_num_each_intr,
417417
.sample_freq_hz = 1 * 1000,
418418
.conv_mode = ADC_CONV_SINGLE_UNIT_1,
419+
#ifdef CONFIG_IDF_TARGET_ESP32S3
420+
.format = ADC_DIGI_OUTPUT_FORMAT_TYPE2,
421+
#elif defined CONFIG_IDF_TARGET_ESP32S2
419422
.format = ADC_DIGI_OUTPUT_FORMAT_TYPE1,
423+
#endif
420424
};
421425

422426
adc_digi_pattern_config_t adc_pattern[SOC_ADC_PATT_LEN_MAX] = {0};
@@ -427,7 +431,7 @@ static void continuous_adc_init(uint16_t adc1_chan_mask, uint16_t adc2_chan_mask
427431
adc_pattern[i].atten = ADC_ATTEN_DB_11;
428432
adc_pattern[i].channel = ch;
429433
adc_pattern[i].unit = unit;
430-
adc_pattern[i].bit_width = 12;
434+
adc_pattern[i].bit_width = SOC_ADC_DIGI_MAX_BITWIDTH;
431435

432436
ESP_LOGI(TAG, "adc_pattern[%d].atten is :%x", i, adc_pattern[i].atten);
433437
ESP_LOGI(TAG, "adc_pattern[%d].channel is :%x", i, adc_pattern[i].channel);

Firmware/Targets/ESP32S2/main/glue.h

Lines changed: 98 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ typedef enum {
4141
#define TIM_CHANNEL_4 LEDC_CHANNEL_3
4242

4343
/* Private defines -----------------------------------------------------------*/
44+
#ifdef CONFIG_IDF_TARGET_ESP32S3
4445
#define DIN7_Pin 255 // Define a invalid value
4546
#define DIN7_GPIO_Port GPIOE
4647
#define DIN6_Pin 255 // Define a invalid value
@@ -49,13 +50,13 @@ typedef enum {
4950
#define DIN5_GPIO_Port GPIOE
5051
#define DIN4_Pin 255 // Define a invalid value
5152
#define DIN4_GPIO_Port GPIOE
52-
#define DIN3_Pin 255 // Define a invalid value
53+
#define DIN3_Pin GPIO_PIN_8
5354
#define DIN3_GPIO_Port GPIOE
54-
#define DIN2_Pin GPIO_PIN_46
55+
#define DIN2_Pin GPIO_PIN_9
5556
#define DIN2_GPIO_Port GPIOC
56-
#define DIN1_Pin GPIO_PIN_42
57+
#define DIN1_Pin GPIO_PIN_10
5758
#define DIN1_GPIO_Port GPIOC
58-
#define DIN0_Pin GPIO_PIN_45
59+
#define DIN0_Pin GPIO_PIN_11
5960
#define DIN0_GPIO_Port GPIOC
6061

6162
#define AIN2_Pin GPIO_PIN_3
@@ -65,38 +66,38 @@ typedef enum {
6566
#define AIN0_Pin GPIO_PIN_1
6667
#define AIN0_GPIO_Port GPIOA
6768

68-
#define SPI1_SCK_Pin GPIO_PIN_21
69-
#define SPI1_MISO_Pin GPIO_PIN_34
70-
#define SPI1_MOSI_Pin GPIO_PIN_33
71-
#define SPI1_SS1_Pin GPIO_PIN_17
69+
#define SPI1_SCK_Pin GPIO_PIN_46
70+
#define SPI1_MISO_Pin GPIO_PIN_38
71+
#define SPI1_MOSI_Pin GPIO_PIN_39
72+
#define SPI1_SS1_Pin GPIO_PIN_45
7273
#define SPI1_SS1_GPIO_Port GPIOA
73-
#define SPI1_SS2_Pin GPIO_PIN_16
74+
#define SPI1_SS2_Pin GPIO_PIN_47
7475
#define SPI1_SS2_GPIO_Port GPIOB
75-
#define SPI1_SS3_Pin GPIO_PIN_15
76+
#define SPI1_SS3_Pin GPIO_PIN_48
7677
#define SPI1_SS3_GPIO_Port GPIOB
7778

78-
#define BUTTON_A_Pin GPIO_PIN_38
79+
#define BUTTON_A_Pin GPIO_PIN_0
7980
#define BUTTON_A_GPIO_Port GPIOB
8081

81-
#define DRV_ENABLE_Pin GPIO_PIN_12
82+
#define DRV_ENABLE_Pin GPIO_PIN_13
8283
#define DRV_ENABLE_GPIO_Port GPIOE
83-
#define FLAG_Pin GPIO_PIN_13
84+
#define FLAG_Pin GPIO_PIN_14
8485
#define FLAG_GPIO_Port GPIOE
85-
#define DRV_GP1_Pin GPIO_PIN_11
86+
#define DRV_GP1_Pin GPIO_PIN_12
8687
#define DRV_GP1_GPIO_Port GPIOE
87-
#define DRV_BRAKE_Pin GPIO_PIN_14
88+
#define DRV_BRAKE_Pin GPIO_PIN_21
8889
#define DRV_BRAKE_GPIO_Port GPIOE
8990

9091
#define PWM1_Pin GPIO_PIN_5
9192
#define PWM1_GPIO_Port GPIOE
9293
#define PWM2_Pin GPIO_PIN_7
9394
#define PWM2_GPIO_Port GPIOE
94-
#define PWM3_Pin GPIO_PIN_9
95+
#define PWM3_Pin GPIO_PIN_16
9596
#define PWM3_GPIO_Port GPIOE
96-
#define PWM4_Pin GPIO_PIN_10
97+
#define PWM4_Pin GPIO_PIN_17
9798
#define PWM4_GPIO_Port GPIOE
9899

99-
#define ENCODER_Z_Pin GPIO_PIN_8
100+
#define ENCODER_Z_Pin GPIO_PIN_15
100101
#define ENCODER_Z_GPIO_Port GPIOD
101102
#define ENCODER_A_Pin GPIO_PIN_4
102103
#define ENCODER_A_GPIO_Port GPIOC
@@ -107,13 +108,89 @@ typedef enum {
107108
#define CAN_TX_Pin GPIO_PIN_36
108109
#define CAN_S_Pin GPIO_PIN_37
109110

110-
#define LED_SYS_Pin GPIO_PIN_41
111+
#define LED_SYS_Pin GPIO_PIN_42
111112
#define LED_SYS_GPIO_Port GPIOD
112-
#define LED_CLIP_Pin GPIO_PIN_40
113+
#define LED_CLIP_Pin GPIO_PIN_41
113114
#define LED_CLIP_GPIO_Port GPIOE
114-
#define LED_ERR_Pin GPIO_PIN_39
115+
#define LED_ERR_Pin GPIO_PIN_40
115116
#define LED_ERR_GPIO_Port GPIOE
116117

118+
#elif defined CONFIG_IDF_TARGET_ESP32S2
119+
120+
#define DIN7_Pin 255 // Define a invalid value
121+
#define DIN7_GPIO_Port GPIOE
122+
#define DIN6_Pin 255 // Define a invalid value
123+
#define DIN6_GPIO_Port GPIOE
124+
#define DIN5_Pin 255 // Define a invalid value
125+
#define DIN5_GPIO_Port GPIOE
126+
#define DIN4_Pin 255 // Define a invalid value
127+
#define DIN4_GPIO_Port GPIOE
128+
#define DIN3_Pin GPIO_PIN_8
129+
#define DIN3_GPIO_Port GPIOE
130+
#define DIN2_Pin GPIO_PIN_9
131+
#define DIN2_GPIO_Port GPIOC
132+
#define DIN1_Pin GPIO_PIN_10
133+
#define DIN1_GPIO_Port GPIOC
134+
#define DIN0_Pin GPIO_PIN_11
135+
#define DIN0_GPIO_Port GPIOC
136+
137+
#define AIN2_Pin GPIO_PIN_3
138+
#define AIN2_GPIO_Port GPIOC
139+
#define AIN1_Pin GPIO_PIN_2
140+
#define AIN1_GPIO_Port GPIOA
141+
#define AIN0_Pin GPIO_PIN_1
142+
#define AIN0_GPIO_Port GPIOA
143+
144+
#define SPI1_SCK_Pin GPIO_PIN_46
145+
#define SPI1_MISO_Pin GPIO_PIN_38
146+
#define SPI1_MOSI_Pin GPIO_PIN_39
147+
#define SPI1_SS1_Pin GPIO_PIN_45
148+
#define SPI1_SS1_GPIO_Port GPIOA
149+
#define SPI1_SS2_Pin GPIO_PIN_33
150+
#define SPI1_SS2_GPIO_Port GPIOB
151+
#define SPI1_SS3_Pin GPIO_PIN_34
152+
#define SPI1_SS3_GPIO_Port GPIOB
153+
154+
#define BUTTON_A_Pin GPIO_PIN_0
155+
#define BUTTON_A_GPIO_Port GPIOB
156+
157+
#define DRV_ENABLE_Pin GPIO_PIN_13
158+
#define DRV_ENABLE_GPIO_Port GPIOE
159+
#define FLAG_Pin GPIO_PIN_14
160+
#define FLAG_GPIO_Port GPIOE
161+
#define DRV_GP1_Pin GPIO_PIN_12
162+
#define DRV_GP1_GPIO_Port GPIOE
163+
#define DRV_BRAKE_Pin GPIO_PIN_21
164+
#define DRV_BRAKE_GPIO_Port GPIOE
165+
166+
#define PWM1_Pin GPIO_PIN_5
167+
#define PWM1_GPIO_Port GPIOE
168+
#define PWM2_Pin GPIO_PIN_7
169+
#define PWM2_GPIO_Port GPIOE
170+
#define PWM3_Pin GPIO_PIN_16
171+
#define PWM3_GPIO_Port GPIOE
172+
#define PWM4_Pin GPIO_PIN_17
173+
#define PWM4_GPIO_Port GPIOE
174+
175+
#define ENCODER_Z_Pin GPIO_PIN_15
176+
#define ENCODER_Z_GPIO_Port GPIOD
177+
#define ENCODER_A_Pin GPIO_PIN_4
178+
#define ENCODER_A_GPIO_Port GPIOC
179+
#define ENCODER_B_Pin GPIO_PIN_6
180+
#define ENCODER_B_GPIO_Port GPIOC
181+
182+
#define CAN_RX_Pin GPIO_PIN_35
183+
#define CAN_TX_Pin GPIO_PIN_36
184+
#define CAN_S_Pin GPIO_PIN_37
185+
186+
#define LED_SYS_Pin GPIO_PIN_42
187+
#define LED_SYS_GPIO_Port GPIOD
188+
#define LED_CLIP_Pin GPIO_PIN_41
189+
#define LED_CLIP_GPIO_Port GPIOE
190+
#define LED_ERR_Pin GPIO_PIN_40
191+
#define LED_ERR_GPIO_Port GPIOE
192+
193+
#endif
117194
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
118195
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
119196
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);

0 commit comments

Comments
 (0)