Гудвин, волшебник (04.04.2019 20:50 - 20:53, просмотров: 2288)
чЮдеса... Прикручиваю 3G свистки на чипах Qualcomm (все старенькие 3G модемы и новоделы от безвестных кетайцев) к своей железке на LPC17. Вернее, SMS прикрутил уже давно, но народ взалкал тырнетов (жаба их грызет вишь-ли). Так, как проект ведется уже лет 7 и на Keil, то прямой путь - заюзать RL TCPnet. Тем более, что в начале я уже прикручивал к этому стеку некрочиповские WiFi модули в режиме "ethernet" и все прекрасно дышало. Файлы пересылались, прошива обновлялась и пр. Недостаток в закрытости библиОтеки. Юзаю Keil V4. Потому как "коней на переправе не меняют", V5 глючит в XP, да и вообще не нравится - постоянные обновления и сторонние примочки с обновленной кривизной. Сначала пришлось присопливить заплатку "из говна и палок" к их PPP. Оно требует виндусячего "CLIENT-CLIENTSERVER", посему второе волшебное слово пришлось принудительно пихать в приемный буфер. Наткнулся на то, что после этой манипуляции стек не посылает первый PPP пакет на сервер. Решил посмотреть примеры из IDE. LPC2148 c таким же патчем работает. Но там библиотека для ARM7. Там же нашел пример для STM32F10x. Он тоже дышит с заплаткой. Блин, одна и та же библиотека для CM3, а с LPC1768 не дружит. И цикл везде стандартный:
init_TcpNet();
ppp_connect(NULL,"","");
while (1)
{
timer_poll();
main_TcpNet ();
}
Функции инициализации, приема и передачи байта и контроля занятости TX одинаковы (с заплаткой). И таймер тикает везде с интервалом 100 ms.
Бился сутки, пока способом научного тыка не добавил задержку 20 uS в тело цикла.
Задышало.
Что за хрень? Ну тактовая чуть выше - 100 vs 72, ну эффективность у LPC17 получше STM32F1xx...
Никак не должно влиять, имхо. Пробовал тактированть LPC17 50 МГц - то же самое. Для чистоты эксперимента все прерывания кроме системного таймера отключаю. Никто не сталкивался?
С задеркой оно хоть и срабатывает, но как то нестабильно - через время X (как придется).
В STM32 первый PPP пакет посылается мгновенно сразу после получения "CLIENTSERVER".
Хочется досконально раскурить тему.
А так после установки соединения модемы на столе держат сессию по 2 часа. Прилетают какие то случайные пакетики периодически (пока не добрался до активных действий, ибо сначала надо вылизать процессы установки и контроля соединения). Да и в USB куске чуток пошаманить...