Skip to content

Commit ced5125

Browse files
author
Kei
committed
Update pin infos. Add code for CommXEL's DMA.
1 parent 516cf5f commit ced5125

File tree

4 files changed

+26
-26
lines changed

4 files changed

+26
-26
lines changed

cores/arduino/HardwareSerial.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ void HardwareSerial::begin(unsigned long baud, byte config)
390390
uart_init(&_serial, (uint32_t)baud, databits, parity, stopbits);
391391
enableHalfDuplexRx();
392392
#if defined(ARDUINO_SensorXEL) || defined(ARDUINO_SensorXEL_revE)\
393-
|| defined(ARDUINO_PowerXEL)
393+
|| defined(ARDUINO_PowerXEL) || defined(ARDUINO_CommXEL)
394394

395395
#else
396396
uart_attach_rx_callback(&_serial, _rx_complete_irq);
@@ -411,8 +411,12 @@ void HardwareSerial::end()
411411
int HardwareSerial::available(void)
412412
{
413413
#if defined(ARDUINO_SensorXEL) || defined(ARDUINO_SensorXEL_revE)\
414-
|| defined(ARDUINO_PowerXEL)
414+
|| defined(ARDUINO_PowerXEL) || defined(ARDUINO_CommXEL)
415+
#if defined(ARDUINO_CommXEL)
416+
uint16_t cndtr = _serial.handle.hdmarx->Instance->NDTR;
417+
#else
415418
uint16_t cndtr = _serial.handle.hdmarx->Instance->CNDTR;
419+
#endif
416420
if(cndtr > SERIAL_RX_BUFFER_SIZE){
417421
cndtr = SERIAL_RX_BUFFER_SIZE;
418422
}

libraries/SrcWrapper/src/stm32/uart.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
307307
huart->Init.Mode = UART_MODE_TX_RX;
308308
huart->Init.HwFlowCtl = UART_HWCONTROL_NONE;
309309
#if defined(ARDUINO_SensorXEL) || defined(ARDUINO_SensorXEL_revE)\
310-
|| defined(ARDUINO_PowerXEL)
310+
|| defined(ARDUINO_PowerXEL) || defined(ARDUINO_CommXEL)
311311
huart->Init.OverSampling = UART_OVERSAMPLING_8;
312312
#else
313313
huart->Init.OverSampling = UART_OVERSAMPLING_16;
@@ -379,7 +379,7 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
379379
return;
380380
}
381381
#if defined(ARDUINO_SensorXEL) || defined(ARDUINO_SensorXEL_revE)\
382-
|| defined(ARDUINO_PowerXEL)
382+
|| defined(ARDUINO_PowerXEL) || defined(ARDUINO_CommXEL)
383383
HAL_UART_Receive_DMA(huart, obj->rx_buff, SERIAL_RX_BUFFER_SIZE);
384384
#endif
385385
}
@@ -862,9 +862,13 @@ void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
862862
serial_t *obj = get_serial_obj(huart);
863863
if (obj && !serial_rx_active(obj)) {
864864
#if defined(ARDUINO_SensorXEL) || defined(ARDUINO_SensorXEL_revE)\
865-
|| defined(ARDUINO_PowerXEL)
865+
|| defined(ARDUINO_PowerXEL) || defined(ARDUINO_CommXEL)
866866
if(huart->Instance == USART1 || huart->Instance == USART2){
867+
#if defined(ARDUINO_CommXEL)
868+
obj->rx_head = SERIAL_RX_BUFFER_SIZE - obj->handle.hdmarx->Instance->NDTR;
869+
#else
867870
obj->rx_head = SERIAL_RX_BUFFER_SIZE - obj->handle.hdmarx->Instance->CNDTR;
871+
#endif
868872
obj->rx_tail = obj->rx_head;
869873
memset(obj->rx_buff, 0, SERIAL_RX_BUFFER_SIZE);
870874
HAL_UART_Receive_DMA(huart, obj->rx_buff, SERIAL_RX_BUFFER_SIZE);
@@ -1085,7 +1089,7 @@ void UART10_IRQHandler(void)
10851089
void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
10861090
{
10871091
#if defined(ARDUINO_SensorXEL) || defined(ARDUINO_SensorXEL_revE)\
1088-
|| defined(ARDUINO_PowerXEL)
1092+
|| defined(ARDUINO_PowerXEL) || defined(ARDUINO_CommXEL)
10891093
(void)huart;
10901094
#else
10911095
serial_t *obj = get_serial_obj(huart);

variants/XELNetwork_CommXEL/PeripheralPins.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -415,19 +415,20 @@ WEAK const PinMap PinMap_Ethernet[] = {
415415
// {PB_5, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_PPS_OUT
416416
// {PB_8, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD3
417417
// {PB_10, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RX_ER
418-
// {PB_11, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TX_EN
419-
// {PB_12, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD0
420-
// {PB_13, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD1
418+
{PB_11, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TX_EN
419+
{PB_12, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD0
420+
{PB_13, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD1
421+
{PC_0, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RX_ER
421422
{PC_1, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_MDC
422423
// {PC_2, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD2
423424
// {PC_3, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TX_CLK
424425
{PC_4, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RXD0
425426
{PC_5, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RXD1
426427
// {PE_2, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD3
427428
// {PG_8, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_PPS_OUT
428-
{PG_11, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TX_EN
429-
{PG_13, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD0
430-
{PG_14, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD1
429+
// {PG_11, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TX_EN
430+
// {PG_13, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD0
431+
// {PG_14, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD1
431432
// {PH_2, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_CRS
432433
// {PH_3, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_COL
433434
// {PH_6, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RXD2

variants/XELNetwork_CommXEL/variant.h

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,11 @@ extern "C" {
4040
#define PC12 7 //BUTTON
4141
#define PC11 8 //LED
4242

43-
#define PA1 9 //ETH_REF_CLK
44-
#define PA2 10 //ETH_MDIO
45-
#define PA7 11 //ETH_CRS_DV
46-
#define PC1 12 //ETH_MDC
47-
#define PC0 13 //ETH_RXER
48-
#define PC4 14 //ETH_RXD0
49-
#define PC5 15 //ETH_RXD1
50-
#define PB11 16 //ETH_RX_EN
51-
#define PB12 17 //ETH_TXD0
52-
#define PB13 18 //ETH_TXD1
53-
54-
5543
// This must be a literal
56-
#define NUM_DIGITAL_PINS 19
44+
#define NUM_DIGITAL_PINS 9
5745
// This must be a literal with a value less than or equal to to MAX_ANALOG_INPUTS
5846
#define NUM_ANALOG_INPUTS 0
59-
#define NUM_ANALOG_FIRST 19
47+
#define NUM_ANALOG_FIRST 9
6048

6149
// On-board LED pin number
6250
#define LED_BUILTIN PC11
@@ -81,6 +69,9 @@ extern "C" {
8169
//#define SERIAL_UART_INSTANCE 1
8270
#define ENABLE_SERIALUSB
8371

72+
#define DEFAULT_DXL_SERIAL Serial2
73+
#define DEFAULT_DXL_PIN PB8
74+
8475
/* Extra HAL modules */
8576
#define HAL_ETH_MODULE_ENABLED
8677
#define HAL_IWDG_MODULE_ENABLED

0 commit comments

Comments
 (0)