|
SIM800C EAT состояние выходов при старте/рестарте модуля |
|
|
|
Nov 29 2015, 15:00
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 3-07-07
Пользователь №: 28 863

|
Здравствуйте! Делаю устройство на SIM800C с применением EAT. SIM800C управляет нагрузкой. И вот вылезла проблемка - у SIM800C при старте модуля некоторое время до инициализации ноги становятся в единицу и включают нагрузку. Причем время включения довольно существенное - секунды 3-4. Как это можно побороть? Инициализирую выходы как в примерах: Код void app_func_ext1(void *data) { /*This function can be called before Task running ,configure the GPIO,uart and etc. Only these api can be used: eat_uart_set_debug: set debug port eat_pin_set_mode: set GPIO mode eat_uart_set_at_port: set AT port */ eat_uart_set_debug(EAT_UART_USB); // eat_uart_set_at_port(EAT_UART_USB);
eat_sim_detect_en(EAT_FALSE); eat_pin_set_mode(EAT_PIN3_UART1_RTS, EAT_PIN_MODE_GPIO); eat_pin_set_mode(EAT_PIN4_UART1_CTS, EAT_PIN_MODE_GPIO); eat_pin_set_mode(EAT_PIN5_UART1_DCD, EAT_PIN_MODE_GPIO); eat_pin_set_mode(EAT_PIN6_UART1_DTR, EAT_PIN_MODE_EINT); eat_pin_set_mode(EAT_PIN7_UART1_RI, EAT_PIN_MODE_GPIO); eat_pin_set_mode(EAT_PIN14_SIM_DET, EAT_PIN_MODE_EINT); eat_pin_set_mode(EAT_PIN42_STATUS, EAT_PIN_MODE_GPIO); eat_pin_set_mode(EAT_PIN1_UART1_TXD, EAT_PIN_MODE_GPIO); eat_pin_set_mode(EAT_PIN2_UART1_RXD, EAT_PIN_MODE_GPIO); eat_pin_set_mode(EAT_PIN7_UART1_RI, EAT_PIN_MODE_GPIO); } а затем в main перевожу в 0: Код void app_main(void *data) { EatEvent_st event; EatUartConfig_st uart_config; int len = 0; EatEntryPara_st *para; APP_InitRegions();//Init app RAM, first step APP_init_clib(); //C library initialize, second step
para = (EatEntryPara_st*)data;
memcpy(&app_para, para, sizeof(EatEntryPara_st)); eat_trace(" App Main ENTRY update:%d result:%d", app_para.is_update_app,app_para.update_app_result); if(app_para.is_update_app && app_para.update_app_result) { eat_update_app_ok(); }
eat_gpio_setup(EAT_PIN3_UART1_RTS, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_setup(EAT_PIN4_UART1_CTS, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_setup(EAT_PIN5_UART1_DCD, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_setup(EAT_PIN6_UART1_DTR, EAT_GPIO_DIR_INPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_setup(EAT_PIN7_UART1_RI, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_setup(EAT_PIN14_SIM_DET, EAT_GPIO_DIR_INPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_setup(EAT_PIN42_STATUS, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_setup(EAT_PIN1_UART1_TXD, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_setup(EAT_PIN2_UART1_RXD, EAT_GPIO_DIR_INPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_setup(EAT_PIN7_UART1_RI, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_write(OUT1, EAT_GPIO_LEVEL_LOW); eat_gpio_write(GPS_ON, EAT_GPIO_LEVEL_LOW); eat_gpio_write(GPS_RESET, EAT_GPIO_LEVEL_LOW); eat_gpio_write(LED_FX, EAT_GPIO_LEVEL_LOW); eat_gpio_write(LED_ER, EAT_GPIO_LEVEL_LOW); Спасибо!
|
|
|
|
|
 |
Ответов
|
Dec 16 2015, 08:57
|
Участник

Группа: Участник
Сообщений: 71
Регистрация: 29-01-10
Из: Украина
Пользователь №: 55 147

|
Зробіть ось так: CODE static void app_func_ext1(void *data) {
EatUartConfig_st cfg = { EAT_UART_BAUD_115200, EAT_UART_DATA_BITS_8, EAT_UART_STOP_BITS_1, EAT_UART_PARITY_NONE };
eat_uart_set_at_port(eat_uart_at); eat_uart_set_debug(eat_uart_debug); eat_uart_set_debug_config(EAT_UART_DEBUG_MODE_UART, &cfg);
eat_gpio_setup(EAT_PIN22_UART2_TXD, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW); eat_gpio_write(EAT_PIN22_UART2_TXD, EAT_GPIO_LEVEL_LOW); } в мене така ініціалізація видає Log1 на EAT_PIN22_UART2_TXD десь на 1-2мс Flowchart запуску модулю: RESET -> bootloader -> hardware init -> eat app_func_ext -> system init -> system task run -> eat tasks run але деякі виводи, наприклад NetLight та Status, нажаль, дійсно перебувають під контролем модулю значно довше
Сообщение отредактировал yooj - Dec 16 2015, 09:01
|
|
|
|
|
Dec 16 2015, 12:26
|
Участник

Группа: Участник
Сообщений: 71
Регистрация: 29-01-10
Из: Украина
Пользователь №: 55 147

|
Цитата(yooj @ Dec 16 2015, 11:57)  але деякі виводи, наприклад NetLight та Status, нажаль, дійсно перебувають під контролем модулю значно довше "Значно довше" під контролем модуля перебувають такі віводи: NETLIGHT STATUS EAT_PIN3_UART1_RTS EAT_PIN4_UART1_CTS EAT_PIN14_SIM_DET Але NetLight можна повернути під контроль користувача командою "AT+CNETLIGHT=0" тобто запускаєте модуль, вводите AT+CNETLIGHT=0 AT&W й наступного разу модуль не буде блимати NETLIGHT після Reset
|
|
|
|
|
Dec 16 2015, 14:29
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 3-07-07
Пользователь №: 28 863

|
Цитата(yooj @ Dec 16 2015, 15:26)  "Значно довше" під контролем модуля перебувають такі віводи:
NETLIGHT STATUS EAT_PIN3_UART1_RTS EAT_PIN4_UART1_CTS EAT_PIN14_SIM_DET
Але NetLight можна повернути під контроль користувача командою "AT+CNETLIGHT=0" тобто запускаєте модуль, вводите AT+CNETLIGHT=0 AT&W
й наступного разу модуль не буде блимати NETLIGHT після Reset Здравствуйте! Проблема в том что выход нужно установить не в 0, а так как было до сброса, а для этого надо из флеша вытянуть запомненные значения, а это можно сделать только в main-е. Я проблему решил установкой внешнего контроллера, который выходами управляет, и к тому же следит за "здоровьем" SIM800-го и в случае чего его выключает-включает. Вот для общения с эти контроллером мне и нужен был второй пользовательский UART. SIM800 раз в секунду сбрасывает во внешний контроллер нужное состояние выходов, а контроллер если ничего не видит от SIM800-го определенное время, то выключает-включает его.
|
|
|
|
Сообщений в этой теме
Ujin SIM800C EAT состояние выходов при старте/рестарте модуля Nov 29 2015, 15:00 CADiLO >>>>SIM800 раз в секунду сбрасывает во... Dec 16 2015, 14:34 Ujin Цитата(CADiLO @ Dec 16 2015, 17:34) >... Dec 16 2015, 14:47 CADiLO Просто ресурс флеши 100000 перезаписей. Циклическо... Dec 16 2015, 14:54 Ujin Цитата(CADiLO @ Dec 16 2015, 17:54) Прост... Dec 16 2015, 15:12 RadikX Цитата(CADiLO @ Dec 16 2015, 18:54) Прост... Dec 17 2015, 03:32 CADiLO >>> там нету контроллера который бы следи... Dec 17 2015, 05:14 mantech Цитата(CADiLO @ Dec 17 2015, 08:14) В 800... Dec 17 2015, 15:31 Ujin Цитата(CADiLO @ Dec 17 2015, 08:14) >... Dec 18 2015, 10:04 CADiLO Мегабит Dec 17 2015, 16:16 RadikX Цитата(CADiLO @ Dec 17 2015, 09:14) В 800... Dec 18 2015, 10:08 CADiLO >>>Думаю сделать в файле счетчик перезапи... Dec 18 2015, 10:57 Ujin Цитата(CADiLO @ Dec 18 2015, 13:57) Завод... Dec 19 2015, 14:45 RadikX Цитата(CADiLO @ Dec 18 2015, 14:57) >... Dec 18 2015, 11:52 Ujin Цитата(RadikX @ Dec 18 2015, 14:52) Может... Dec 20 2015, 09:55 CADiLO Потому что пишете на вы, а операционка. И контроли... Dec 19 2015, 18:38 RadikX Цитата(Ujin @ Dec 20 2015, 13:55) А откуд... Dec 25 2015, 03:25 Ujin Цитата(RadikX @ Dec 25 2015, 06:25) Зачем... Jan 4 2016, 14:45 sashaoff3 Уважаемый CADiLO! Попробовал версию 1418B01V01... Feb 28 2016, 16:28 CADiLO >>>605К памяти для amr не обнаружил
И не... Feb 28 2016, 18:19
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|