diff --git a/esp32/lte/lteppp.c b/esp32/lte/lteppp.c index 9bd411fd7..bb801adf0 100644 --- a/esp32/lte/lteppp.c +++ b/esp32/lte/lteppp.c @@ -117,8 +117,9 @@ static void lteppp_print_states(); DEFINE PUBLIC FUNCTIONS ******************************************************************************/ -void connect_lte_uart (void) { - MSG("\n"); +void connect_lte_uart (bool reconnect) { + MSG("connect_lte_uart\n"); + uart_driver_delete(LTE_UART_ID); // initialize the UART interface uart_config_t config; @@ -128,7 +129,8 @@ void connect_lte_uart (void) { config.stop_bits = UART_STOP_BITS_1; config.flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS; config.rx_flow_ctrl_thresh = 64; - config.use_ref_tick = false; + // Use UART_SCLK_APB as originally use_ref_tick = false was used here + config.source_clk = UART_SCLK_APB; uart_param_config(LTE_UART_ID, &config); // configure the UART pins @@ -153,6 +155,11 @@ void connect_lte_uart (void) { uart_set_rts(LTE_UART_ID, false); + if (reconnect) { + uart_set_hw_flow_ctrl(LTE_UART_ID, UART_HW_FLOWCTRL_CTS_RTS, 64); + vTaskDelay(5); + } + xTaskCreatePinnedToCore(TASK_UART_EVT, "LTE_UART_EVT", 2048 / sizeof(StackType_t), NULL, 12, &xLTEUartEvtTaskHndl, 1); MSG("done\n"); @@ -481,7 +488,7 @@ static void TASK_LTE (void *pvParameters) { uint8_t at_trials = 0; static uint32_t thread_notification; - connect_lte_uart(); + connect_lte_uart(false); modem_init: MSG("modem_init\n"); diff --git a/esp32/lte/lteppp.h b/esp32/lte/lteppp.h index f577b8b16..ea2350eec 100644 --- a/esp32/lte/lteppp.h +++ b/esp32/lte/lteppp.h @@ -123,7 +123,7 @@ extern bool lteppp_wait_at_rsp (const char *expected_rsp, uint32_t timeout, bool lte_modem_conn_state_t lteppp_get_modem_conn_state(void); void lteppp_set_modem_conn_state(lte_modem_conn_state_t state); -extern void connect_lte_uart (void); +extern void connect_lte_uart (bool reconnect); extern bool ltepp_is_ppp_conn_up(void); diff --git a/esp32/mods/modlte.c b/esp32/mods/modlte.c index 7711813c4..3a81b4212 100644 --- a/esp32/mods/modlte.c +++ b/esp32/mods/modlte.c @@ -223,7 +223,18 @@ static bool lte_push_at_command_ext_cont (char *cmd_str, uint32_t timeout, const } static bool lte_push_at_command_ext(char *cmd_str, uint32_t timeout, const char *expected_rsp, size_t len) { - return lte_push_at_command_ext_cont(cmd_str, timeout, expected_rsp, len, false); + if (len > LTE_AT_CMD_DATA_SIZE_MAX) { + uint32_t cmd_full = len / LTE_AT_CMD_DATA_SIZE_MAX; + uint32_t cmd_remain = len % LTE_AT_CMD_DATA_SIZE_MAX; + for (int i=0; i < cmd_full; i++) { + if (!lte_push_at_command_ext_cont(cmd_str+(i*LTE_AT_CMD_DATA_SIZE_MAX), timeout, expected_rsp, LTE_AT_CMD_DATA_SIZE_MAX, true)) { + return false; + } + } + return lte_push_at_command_ext_cont(cmd_str+(cmd_full*LTE_AT_CMD_DATA_SIZE_MAX), timeout, expected_rsp, cmd_remain, false); + } else { + return lte_push_at_command_ext_cont(cmd_str, timeout, expected_rsp, len, false); + } } static bool lte_push_at_command (char *cmd_str, uint32_t timeout) { @@ -1523,7 +1534,7 @@ STATIC mp_obj_t lte_debug_buff(void) { STATIC MP_DEFINE_CONST_FUN_OBJ_0(lte_debug_buff_obj, lte_debug_buff); #endif STATIC mp_obj_t lte_reconnect_uart (void) { - connect_lte_uart(); + connect_lte_uart(true); lteppp_disconnect(); lte_obj.init = false; return mp_const_none; diff --git a/esp32/pycom_version.h b/esp32/pycom_version.h index 8946280b1..0e75d58a4 100644 --- a/esp32/pycom_version.h +++ b/esp32/pycom_version.h @@ -10,7 +10,7 @@ #ifndef VERSION_H_ #define VERSION_H_ -#define SW_VERSION_NUMBER "1.20.2.r6" +#define SW_VERSION_NUMBER "1.20.2.r7" #define LORAWAN_VERSION_NUMBER "1.0.2" pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy