Перейти к содержанию

Rebooting sim800c

Использую модуль SIM800C. Прошивка - 1418B02SIM800C32_BT_EAT_115200.
Пишу приложение для EAT. Приложение принимает данные с GPS, парсит их, а потом отправляет на сервер по TCP в определенном формате. В один прекрасный момент модуль начал хаотично перезагружаться в разные моменты времени. Данные с GPS принимаются с интервалом в 250 мс, с таким же интервалом и отправляются на сервер. Во время работы в отладочный порт выводится различная инфа - выводиться много и быстро.
Просадки по питанию исключаю - допаял дополнительный кондер - просадка по питанию не больше 100-150 мВ, напряжение питания 4.2В.
При работе программы с интервалом приема/передачи данных в 1000 мс устройство работает стабильней.
При работе программы с интервалом приема/передачи данных в 100 мс устройство работает очень нестабильно.
Вопрос в чем может быть проблема ? и куда копать ? возможно ли перезагрузка прибора при переполнении входящего или иходящего буферов UART. И как можно отдебажить момент перезагрузки, что бы понять что происходит?
Склоняюсь к софтовой проблеме, но понять так и не смог в чем проблема.

Второй вопрос:
какими путями можно удаленно обновить прошивку (модуль скачивает прошивку с сервера)?
Я так понимаю можно скачать ее по ftp, и записать ее во flash, а потом функцией eat_update_app обновить прошивку - В мануале - sim800_series_embedded_at_application_note_1.02.pdf пункт 8.4 APP upgrade прочитал.
Но как я понял API для работы с FTP пока нет, и нужно через AT команды делать (в примерах есть).
Изменено пользователем MrDorianGray

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Обновитесь для начала до 1418B03V03SIM800C32_BT_EAT
Запрос прошивки письмом дистрибьютору.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Загрузил прошивку 1418B03V03SIM800C32_BT_EAT и модуль не запустился. Светодиод NET_LIGHT не мигает. загружал прошивку с файлом app (файл программы EAT), так и без файла - только ядро. Результат одинаковый. Прошивку получил вчера.
Со старой версией запускается нормально.
Процесс прошивки прошел хорошо.
Изменено пользователем MrDorianGray

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В ЕАТ не проверял, а в обычной моде работает без проблем

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Поборол проблему того, что не запускалась прошивка EAT - компилировал на старой версии ядра, а заливал на новую версию.
Но проблема с перезагрузкой осталась - опытным путем нашел строчку в которой возникает перезагрузка:
eat_uart_write(eat_uart_app, GPS_GLL_GGA_RMC_INTERVAl_1_1_1, len);

где
#define GPS_GLL_GGA_RMC_INTERVAl_1_1_1 "$PMTK314,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29\r\n"
len - длинна строки
eat_uart_app - EAT_UART_1

Данная строчка выполняется по таймеру, раз в секунду. Весит на отдельном таймере.
Но проблема еще в том что девайс перезагружается хаотично - иногда выводит строку, иногда нет.


При чем если отправлять строку меньшего размера, например
"$PMTK300,250,0,0,0,0*2A\r\n"
то перезагрузка не происходит.
Прошивка 1418B03V03SIM800C32_BT_EAT.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(MrDorianGray @ Mar 23 2016, 14:35) <{POST_SNAPBACK}>
опытным путем нашел строчку в которой возникает перезагрузка:
eat_uart_write( uart, *data, len);

Между прочем, на EAT B08 проблема так и осталась.
Если ориентироваться по eat_trace, то там буфер на передачу -- 200 байт, все что больше -- обрезает. Очевидно и тут аналогичная проблема

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация