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

ДЕЙЛ

Свой
  • Постов

    767
  • Зарегистрирован

  • Посещение

  • Победитель дней

    5

Весь контент ДЕЙЛ


  1. Решил добавить AGPS в трекер, в котором используется модуль SIM68R. Данную тему только начал осваивать, в связи с чем появились вопросы. делаю так: 1. Скачал EPO-файл отсюда ftp://116.247.119.165 2. Записал его в GPS-модуль вот этой утилитой http://simcom.ee/documents/EPO/EPO_User_Guide_V0.1.pdf Под открытым небом оценил время поиска спутников после подачи питания - оно составило 10-15 секунд, модуль из тумбочки без записи данного файла при виде открытого неба нашёл спутники секунд за 15-20. Разница не такая уж существенная. Пробовал в багажнике авто повторить опыт - принципиально ничего не поменялось. Разницу в этих двух опытах заметил только в том, что модуль без альманаха чуть дольше определяет спутники, используемые для расчётов координат. Один человек сказал следующее (дословно): У него используется другой модуль, но ядро то же самое MT3333. По его словам его модуль находит спутники через пару секунд после включения. Какие особенности есть в алгоритме инициализации модуля, в котором записан альманах? Можно ли использовать тот же набор команд для инициализации или нужно добавить команду отправки времени и местоположения? Насколько реально время старта 1-2 секунды? Почему в моём случае нет существенной разницы во времени поиска спутников модулем с записанным EPO-файлом и без него?
  2. Был случай с МТС, когда не отправлялись смски. Всё свелось к тому, что нужно было ставить плюс перед номером. Вместо "79XXYYYZZZZ" вставил "+79XXYYYZZZZ" и жить стало легче.
  3. Не стал развивать данную тему в разговоре о SIM900 На данный момент Bluetooth у меня работает нормально, по профилю SPP 400 Кб передаются за 5-10 минут пакетами по 256 байт. Это нормальная скорость или можно ещё ускорить? Можно работать с Bluetooth во время ожидания подтверждения с сервера об отправке TCP-пакета? (SEND OK)
  4. Мы не ищем лёгких путей. Где можно почитать про баги и исправления? Т.е. поподробнее про это Fixed the bug that UART will be blocked
  5. На данный момент сон не используется, инициализация на скрине
  6. если несколько секунд роли не играют, то можно просто ждать по минуте после каждой команды, чтобы уж наверняка модуль её прожевал и переварил, а с запросами этих статусов инициализация выполняется за полминуты без последующих явных глюков
  7. Обновить удалённо нет возможности, следующая команда отправляется строго после приёма ответа на предыдущую. Карточка не отваливается, т.к. после перезапуска модуля программой прибор успешно выходит на связь с сервером без физического воздействия с моей стороны. Даже если бы отвалилась SIM-карта, то какие-нибудь ответы на команды модуль давал бы. Пока от зависаний помогает способ применения задержки перед отправкой следующей команды после ответа на предыдущую. Хотя с задержками всё же завис, но не через три минуты, а почти через час. Т.е. в обычном режиме таких зависаний должно быть не 3-4 в сутки, а раз в неделю предположительно.
  8. на ноге status единица, версия прошивки на скрине (1418B02SIM800C32_BT). Светодиод статуса связи продолжает моргать без изменения частоты, но при попытке позвонить с телефона на номер симки в модеме оператор говорит, что абонент не в сети.
  9. После ERROR не отвечает ни на одну команду, даже если подождать 30-60 секунд. Только перезапуск помогает. Лог весь на скрине, дальше только безуспешные попытки отправить разные команды, на которые абсолютно никакого ответа нет.
  10. Ситуацию сгустил для наглядности, в реальности так не делаю, но приходится перезапускать модуль 2-3 раза в сутки. Догадываюсь, что модуль зависает именно после ответа ERROR тёмной ночью, когда никто не видит, чем занят МК.
  11. Всем привет. После поиска причины зависания данного модуля удалось добиться повторяемости ситуации. Последовательность такая: 1. Инициализация модуля 2. Активация GPRS, следующие два действия выполняются в цикле: 3. Передача данных на сервер (100-200 байт раз в полминуты) 4. В течение всего оставшегося времени отправка АТ-команд без задержек (запрос статусов, температуры, напряжения питания) Если между АТ-командами запроса статусов делать задержку 200-300 мс, то ничего не зависает, а если без задержек, то после какой-нибудь команды приходит ответ ERROR, после чего отправляю следующую команду и тут модуль уходит в себя, отказываясь совсем отвечать до перезапуска. АТ-команды отправлял по отдельности и все вместе, как на скрине. Эффект один и тот же. Что нужно делать после ответа ERROR, не прибегая к перезапуску? Какую команду отправить? Пнуть модуль можно только программно по UART.
  12. Перерегистрация в сети, отключение и включения радиочастотной части модуля в моём случае оказались примочками. Есть команда AT+CPAS и если результат проверки не 0, то выполняем переинициализацию до победного результата, а там и время прилетит в нужном месте, если оператор его рассылает.
  13. Данный способ работает, если следующую команду послать не раньше и не сильно позже (3-5 секунд) определённого момента. После AT+CFUN=1 я жду сообщения SMS Ready.
  14. была проблема отправки смс с SIM900 при использовании симки МТС. При этом симки других операторов работают без знака "+" перед номером.
  15. Два дня копался с этой проблемой. Оказалось всё просто. AT+CMGS="+7915XXXXXXX" > TEST→ [через 15 секунд] ERROR ...................................................................... AT+CMGS="+7915XXXXXXX" > TEST→ +CMGS: [какое-то число] OK Помогло то, что в начале номера надо было поставить знак "+". Ну и соответственно указать соответствующей AT-командой номер СЦ для смс для подстраховки на случай, если он не приходит автоматически.
  16. Если строго без ослабления сигнала нужно, то тут обычный сумматор на операционнике поможет :)
  17. Если известна максимальная длина команды, то в обработчике прерыввания можно сделать буфер FIFO той же длины и с каждым входящим байтом анализировать именно это окно, а не весь массив. В GSM-модеме в конце каждой команды следует байт 0x0D, по которому обработчик прерывания устанавливает флаг, что принята команда и FIFO буфер нужно скопировать для последующего неспешного анализа, чтобы следующие приходящие байты не помешали. Если крутится операционка, то прерывание по определённому символу выдаёт семафор соответствующей задаче. Как-то так мне это представляется.
  18. LPC1768 GPIO Interrupt

    не хватило воображения связать EINT3 и порт 2, пришлось гуглить и затем с другими мыслями заглянуть опять в документацию :laughing: Вопчем, разобрался. Спасибо.
  19. LPC1768 GPIO Interrupt

    http://anhnvnguyen.blogspot.ru/2010/04/lpc...o-basic_05.html Тут есть намёк, что этот обработчик можно применять для обработки прерывания порта. Мои подозрения верны?
  20. LPC1768 GPIO Interrupt

    Эти входы для внешних прерываний EINT0-EINT1, которые сами по себе отдельные источники прерываний и к порту не имеют отношения. В моём случае P2 должен быть отдельным источником прерывания, в обработчике которого нужно смотреть, какая именно ножка потревожила контроллер.
  21. LPC1768 GPIO Interrupt

    В мануале написано, что порты P0 и P2 могут быть источниками прерываний. Как сделать обработчик для входов P2.11 и P2.12? На этих ножках висят EINT1 и EINT2, но на них нельзя сделать прерывание одновременно по фронту и по спаду. В стартапе следующий список обработчиков: WDT_IRQHandler TIMER0_IRQHandler TIMER1_IRQHandler TIMER2_IRQHandler TIMER3_IRQHandler UART0_IRQHandler UART1_IRQHandler UART2_IRQHandler UART3_IRQHandler PWM1_IRQHandler I2C0_IRQHandler I2C1_IRQHandler I2C2_IRQHandler SPI_IRQHandler SSP0_IRQHandler SSP1_IRQHandler PLL0_IRQHandler RTC_IRQHandler EINT0_IRQHandler EINT1_IRQHandler EINT2_IRQHandler EINT3_IRQHandler ADC_IRQHandler BOD_IRQHandler USB_IRQHandler CAN_IRQHandler DMA_IRQHandler I2S_IRQHandler ENET_IRQHandler RIT_IRQHandler MCPWM_IRQHandler QEI_IRQHandler PLL1_IRQHandler USBActivity_IRQHandler CANActivity_IRQHandler Для GPIO ничего нет.
  22. Отправляю данные на сервер: AT+CIPSEND=0,6 > байты запроса 0, SEND OK +CIPRXGET:1,0 AT+CIPRXGET=2,0,1040 +CIPRXGET:2,0,1040,200 [1040 байтов ответа] Как я понимаю, модуль принял 1240 байт, из них 1040 байт передал по UART, 200 байт оставил у себя в буфере. Как правильно вытащить эти байты наружу? В дукументации на эту тему негусто написано. Нужно отдельно посылать команду AT+CIPRXGET=2,0,200 или можно не задумываясь опять отправлять AT+CIPRXGET=2,0,1040 из соображений, что модуль сначала буфер вытолкнет через последовательный порт, а потом новые данные с сервера? Пока нет возможности сравнить отправляемые данные с сервера с принятыми в SIM900.
  23. Если была такая тема, то хотелось бы ссылку увидеть, поиск мне выдал добрые два десятка страниц. Сейчас разбираюсь в загрузчике и есть вопрос по поводу контрольной суммы бинарного файла, скомпилированного в Keil'е. Где она хранится и какой алгоритм расчёта? Где можно почитать на эту тему?
  24. при измерении проводимости жидкости следует учитывать эффект поляризации. Думаю, что этот же эффект имеется во влажном грунте, поэтому для длительного отслеживания изменения влажности способ пропускания постоянного тока не годится. :bb-offtopic:
×
×
  • Создать...