|
пока не понятные баги OpenCPU в M10 |
|
|
|
Jan 29 2011, 19:07
|

Участник

Группа: Участник
Сообщений: 44
Регистрация: 18-10-06
Пользователь №: 21 440

|
После детального выбора модема для перспективного проектирования пытаемся использовать М10 от квиктела. Все знают плюсы и пока практически никто не знает минусов этого девайса. Стандартная прошивка последних версий ведет себе, в принципе, адекватно. Но нашей конторе захотелось попробовать китайский онбоард софт в реале. Финансово выгодный аспект пока превращается в бред. Я не прошу помощи от техподдержки, ибо ее я уже замучал своими вопросами. Если кто уже пользовал OpenCPU в реальном, не тестовом, объеме, помогите. Я не могу прошить фирмвару, софт пишет то, что во вложении. Танцы с бубном, включая смену модема, присутствовали. Документы изучены, софт последний. Обидно, т.к. реально интересная платформа для реальный приложений...
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
(75 - 89)
|
Nov 3 2011, 18:47
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897

|
Цитата(V125 @ Nov 3 2011, 22:16)  Вот сейчас впервые подал питание через тестер (не включая кнопкой POWERKEY)- кажет 10миллиампер (как бы не мало), но в талмуде на модуль вроде бы указан 1 миллиампер. Или его нужно как то усыплять, чтоб получить 1мА. Не включая? Странно очень. 1.5 ма жрет м75 в режиме спячки с сохранением регистрации в сети. Ну в моменты передачи конечно есть кратковременное повышение тока. (это не в опенцпу) может это потребление демо-платы с ее стабилизаторами и драйверами портов?
Сообщение отредактировал pau62 - Nov 3 2011, 18:49
|
|
|
|
|
Nov 5 2011, 08:29
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897

|
если модуль боле-мене свежий, то 62pin -TXD3 63 - RXD3. Я им пользуюсь. Работать с ним так же как и с 2-ым, только 3 вместо 2 писать. В описании на М12, что у меня есть, порт 3 не упоминается, можно ДШ про М10 посмотреть. Если модуль старый, перепрошить можно попробовать.
В ДШ написано , что можно 2й порт использовать и как порт, и как дебаг порт, в зависимости от того как опции дебага установлены. В тех примерах, что я смотрел, они установлены так, что не мешают использовать его как порт. Может, и не стоит его под другие задачм использовать, мало-ли подебажить .
Можно и у первого объединить функции, просто глушить как-то передaчу с GPS по power key
Сообщение отредактировал pau62 - Nov 5 2011, 08:34
|
|
|
|
|
Nov 6 2011, 07:51
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Это не баг.
Китайцы в своем трекере используют порт 3. Я использую порт 2 (out использую для дебаг в BASIC_MODE, in - для ввода GPS-данных). BASIC_MODE дебаг - это собствеенно обычный режим порта, никакого самопроизвольного дебага там нету, данные отправляются только при использовании функции Ql_DebugTrace. Ну, и Ql_SendToUart для него тоже работает, и евент по приему данных. Выбор uart2 сделал из-за того, что в отличие от 1 и 3, в нем используется другой драйвер, и есть возможность задать Threshold по времени (в примере ниже - если аж 100 мс данных нет, то возникает евент). Это предупреждает деление входящих пакетов на части при "тормозах" в источнике. В GPS такого не наблюдал, а в сатресиверах - полно. И если нету хардверного трешхолда, то приходится писать процедуру объединения кусков с последовательных евентов, а это гимор. Т.о., задав трешхолд, я в итоге при евенте от uart2 получаю ВСЮ ПАЧКУ NMEA (благо буфера 2048 хватает), и затем ищу, что надо (обычно GPRMC). А то, что Вы описали, происходит из-за ошибок приема при старте по питанию источника (GPS-модуля). Их ОБЯЗАТЕЛЬНО надо очищать в евенте UARTFE! Таких тонкостей в разработке софта множество, и именно они определяют качество работы устройства в большей степени, чем HW.
//на старте:
Ql_SetDebugMode(BASIC_MODE); Ql_SetPortRts(ql_uart_port2, FALSE); ret=Ql_SetUartBaudRate(ql_uart_port2,9600); Ql_UartSetGenericThreshold(ql_uart_port2, TRUE, 512, 100); Ql_UartGenericClearFEFlag(ql_uart_port2); Ql_UartClrRxBuffer(ql_uart_port2); Ql_SetPortRts(ql_uart_port2, TRUE);
//в обработчике евентов
case EVENT_UARTFE: { Ql_UartGenericClearFEFlag(ql_uart_port2); } break;
Сообщение отредактировал GeGeL - Nov 6 2011, 08:16
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|