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

Питание BT включили?

Попробовали и его включить командой AT+BTPOWER , но это ничего не дало.

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


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

Попробовали и его включить командой AT+BTPOWER , но это ничего не дало.

У меня такая индикация была когда BT не включал. Правда на SIM808.

Включить, проверить что статус BT стал нормальным, потом только включать GPS.

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


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

Включить, проверить что статус BT стал нормальным, потом только включать GPS.

 

Проверил - не помогло. Может прошить его нужно?

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


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

У SIM868 GPS можно считать отдельным кристаллом. Никаким боком он с ВТ не связан. Свое питание, свой UART.

И на сегодня полно контроллеров с несколькими UART, чтобы не заниматься мазохизмом с парсингом того что будет идти через единый порт.

 

 

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


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

И на сегодня полно контроллеров с несколькими UART, чтобы не заниматься мазохизмом с парсингом того что будет идти через единый порт.

В чём мазохизм-то? :wacko:

Парсить два UART-а вместо одного - это значит не мазохизм? В чём плюс то? Одни минусы только у 2-х UART...

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


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

Минусы для общего UART:

Когда в сообщения от GPS вклинится URC от GSM и вы будете долго соображать что от чего - это раз.

Допустим нужно отключить GSM часть для снижения потребления и работать только с GPS - ну и как вы это сделаете на объединенных UART?

Функционал будет только тот что позволят АТ команды GSM части для работы с GPS. А при отдельном UART можно например вместо NMEA использовать бинарный протокол и прочие "вкусности"

 

 

А теперь готов выслушать минусы для 2 UART.

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


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

Когда в сообщения от GPS вклинится URC от GSM и вы будете долго соображать что от чего - это раз.

Почему? Разве есть URC одинаковые и для GSM и для GPS? В чём именно сложность различить их?

Работает сейчас у меня BT+GPS - проблем с распознаванием нет никаких. GSM не использую.

 

Допустим нужно отключить GSM часть для снижения потребления и работать только с GPS - ну и как вы это сделаете на объединенных UART?

Очевидно, что в этом случае я просто поставлю два разных модуля GPS и GSM. Раз их нужно по отдельности выключать, то зачем использовать единый модуль?

 

Функционал будет только тот что позволят АТ команды GSM части для работы с GPS. А при отдельном UART можно например вместо NMEA использовать бинарный протокол и прочие "вкусности"

Так как не знаю о каких "вкусностях" речь, то ничего не могу сказать. Мне достаточно того, что выдаётся в строке +CGNSINF.

 

А теперь готов выслушать минусы для 2 UART.

Это вроде как очевидно:

1. Писать 2 драйвера UART вместо одного. И два парсера. Зачем 2 если можно один?

2. Потратить в два раза больше периферии (ног, UART-ов). Периферия (особенно UART-ы) - всегда дефицит в МК. Взять корпус с бОльшим числом ног (если таковой есть) - значит неоправданно увеличить стоимость устройства.

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


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

Железо уже готово, заложен один юарт. Производитель заявил что можно работать через один, а по факту это не работает. Может прошивку другую залить? на какой проверено работает через один юарт?

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


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

>>> Очевидно, что в этом случае я просто поставлю два разных модуля GPS и GSM. Раз их нужно по отдельности выключать, то зачем использовать единый модуль?

 

Затем что в SIM868 GSM и GPS части ФИЗИЧЕСКИ разделены. А не так как в 808. Считайте что имеете 2 отдельных модуля в одном корпусе.

 

>>> Писать 2 драйвера UART вместо одного. И два парсера. Зачем 2 если можно один?

 

Зачем???? Парсер один но работает с любым количеством потоков. По прерываниям просто обрабатываем то что нужно получая от одного или другого UART.

Так что тут изначально неправильный подход. Мы еще 20 лет назад на 16 мегагерцовом интеловском MSC96 обрабатывали 128 каналов импульсного набора и приема номера и укладку потом его в ИКМ.

Одна программа и 129 стеков - 128 для потоков и 1 для собственно самой проги - все крутится по прерываниям.

 

>>>2. Потратить в два раза больше периферии (ног, UART-ов). Периферия (особенно UART-ы) - всегда дефицит в МК. Взять корпус с бОльшим числом ног (если таковой есть) - значит неоправданно увеличить стоимость устройства.

 

Фигня полная - N76E003AT20 - TSSOP20 - 8 битный МК, 18 kB Flash, 1kB RAM, 2 UART, 1 SPI, 1 I2C, 6 PWM, 12-bit 8-ch ADC, Max frequency up to16 MHz, Wide operating voltage: 2.4V to 5.5V

 

цена - $0.38 в розницу

 

Не нравится 51 ядро - не вопрос, возьмем ARM

 

M0518LD2AE - LQFP48 - 32 битный МК с архитектурой ARM Cortex M0, 50 MGz, 64 kB Flash, 8 kB RAM, 4x32 TIMER, 8x12bit ADC, 6 UART, 1 SPI, 2 I2C, 2 LIN, 24x16bit PWM

 

полтора бакса в розницу за полный набор удовольствий.

 

 

 

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


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

Зачем???? Парсер один но работает с любым количеством потоков. По прерываниям просто обрабатываем то что нужно получая от одного или другого UART.

Так что тут изначально неправильный подход.

Вы что-то путаете мух с котлетами.

Что Вы имеете в виду под "потоком"? То что идёт на RX-ногу UART-а МК? Это потом кладётся в FIFO-буфер RX-потока и парсится парсер.

Если туда (в это RX-FIFO) валить всё, что приходит с двух разных UART, то потом эту кашу уже невозможно будет разобрать. Это уже получится мусор.

Пришло Вам от одного ISR в прерывании "GN", а сразу поле этого от другого ISR "NNECTI" как догадаетесь потом что это с одного UART поступает URC "+CGNSINF: ...", а со 2-го "+BTCONNECTING"?

Да и +ISR, инициализация, управление FIFO, передачей, парсер и ещё куча всего - это как бы и есть драйвер UART-канала. Всё равно получается в 2 раза больше работы с 2-я UART-ами.

Драйвер - это набор из процедур инициализации, ISR-ов, рабочих переменных, парсеров/state-машин для данного одного канала связи. В одном канале связи может быть несколько виртуальных каналов связи с несколькими удалёнными устройствами (как в случае объединения на одном UART GSM+BT+GPS).

И если есть возможность посадить несколько устройств на один физический канал, написав единый драйвер физ.канала, а за ним - несколько дочерних драйверов устройств - то это хорошее решение. В условиях ограниченности ресурсов.

 

Мы еще 20 лет назад на 16 мегагерцовом интеловском MSC96 обрабатывали 128 каналов импульсного набора и приема номера и укладку потом его в ИКМ.

Это то каким боком сюда относится? да хоть 256.

 

Фигня полная - N76E003AT20 - TSSOP20 - 8 битный МК, 18 kB Flash, 1kB RAM, 2 UART, 1 SPI, 1 I2C, 6 PWM, 12-bit 8-ch ADC, Max frequency up to16 MHz, Wide operating voltage: 2.4V to 5.5V

цена - $0.38 в розницу

И что? Опять не понял - к чему это? Вы предлагаете наш МК заменить на этот? :crying:

 

M0518LD2AE - LQFP48 - 32 битный МК с архитектурой ARM Cortex M0, 50 MGz, 64 kB Flash, 8 kB RAM, 4x32 TIMER, 8x12bit ADC, 6 UART, 1 SPI, 2 I2C, 2 LIN, 24x16bit PWM

полтора бакса в розницу за полный набор удовольствий.

Опять не понял - зачем???

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


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

Затем чтобы показать что не стоит зацикливаться на чем-то одном. Контроллер выбирают под задачу, а не приспосабливают задачу под имеющееся.

 

>>>Это то каким боком сюда относится? да хоть 256.

 

Затем что элементарно обработать любое количество UART.

 

>>>Пришло Вам от одного ISR в прерывании "GN", а сразу поле этого от другого ISR "NNECTI" как догадаетесь потом что это с одного UART поступает URC "+CGNSINF: ...", а со 2-го "+BTCONNECTING"?

 

Я не буду догадываться - у меня сообщения соберутся в стеках и там я четко знаю от какого UART каждый стек.

Неужели никогда не слышали о стековом методе распараллеливания задач ????

 

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


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

Железо уже готово, заложен один юарт. Производитель заявил что можно работать через один, а по факту это не работает. Может прошивку другую залить? на какой проверено работает через один юарт?

Мы тоже заложили SIM868. После неудачного опыта с SIM808 (оказалось, что там прошивка настолько кривая, что невозможно использовать).

Тестировал GPS и прописывал его в драйвер я ещё на SIM808. Там инфа из GPS-модуля шла. Но из-за кривого BT пришлось заменить на SIM868.

На SIM868 драйвер сразу заработал как часы, но вот с GPS-части я получаю такие же строки как у Вас.

Тестил я и работает это пока только на EVB прицепленной на проводах к EVB с МК. Раб. схему пока не делали. После анализа схемы EVB SIM868 https://www.mikroe.com/gsmgnss-2-click#heading1

нашёл в ней много багов (ни в коем случае не рекомендую её!). В частности - неправильная распайка SIM868. И я сделал вывод, что получаю 0 в +CGNSINF именно из-за неё. А когда будет наша рабочая схема - будет всё ок. И больше ничего не делал, так как подобраться к ногам SIM868 и перепаять их как надо - оч. сложно. Но сейчас после Ваших сообщений у меня закралось сомнение..... :(

 

PS: Здесь на форуме можно найти мои весенние посты по этой теме.

 

Затем чтобы показать что не стоит зацикливаться на чем-то одном. Контроллер выбирают под задачу, а не приспосабливают задачу под имеющееся.

Вот мы его и выбрали под свою задачу. А задача эта (основная) - векторное управление PMSM-двигателем.

А SIM868 - это только часть большой схемы. В которой много чего есть. И периферия используется очень плотно.

С чего Вы решили что нам только GPS+GSM нужен? Это вообще довольно второстепенная функция.

Я думаю, что и у sabrat дела обстоят аналогично.

 

Я не буду догадываться - у меня сообщения соберутся в стеках и там я четко знаю от какого UART каждый стек.

Неужели никогда не слышали о стековом методе распараллеливания задач ????

Неужели никогда не слышали что такое "драйвер" и сколько ISR-ов, стеков, задач и пр. он может в себя включать? То что Вы описали - это и есть два разных драйвера. Вместо одного. О чём я и писал.

Драйвер - это логически целостная единица ПО, предназначенная для обслуживания одного канала связи (драйвер канала, как в нашем случае) или одного устройства на общем канале связи. Или он может совмещать в себе эти 2 части, если на канале только одно устройство.

Для 2-х UART-ов мне придётся писать два разных канальных драйвера с драйверами устройств. Для совмещённого - один общий канальный драйвер с двумя драйверами устройств (дочерними). Второй вариант конечно же проще. И если можно сделать проще, то зачем делать сложнее? Это уже не говоря о дефиците ног/UART-ов (что есть в нашем случае). А вопросы потребления нас не волнуют - двигатель как бы на порядки больше будет кушать.

Именно поэтому и был выбран SIMCOM, иначе выбрали бы наверное 2 дискретных модуля BT и GPS.

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


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

Я думаю, что и у sabrat дела обстоят аналогично.

 

Именно так и есть, в железке ещё куча математики и телеметрии различной. Теперь думаю что делать, брать МГТФ и второй юарт на готовых печатках прокидывать? Ног свободных нет почти, ещё и софтовый юарт вкорячивать?

Сплошные костыли....

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


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

Именно так и есть, в железке ещё куча математики и телеметрии различной. Теперь думаю что делать, брать МГТФ и второй юарт на готовых печатках прокидывать? Ног свободных нет почти, ещё и софтовый юарт вкорячивать?

Сплошные костыли....

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

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


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

Именно так и есть, в железке ещё куча математики и телеметрии различной. Теперь думаю что делать, брать МГТФ и второй юарт на готовых печатках прокидывать? Ног свободных нет почти, ещё и софтовый юарт вкорячивать?

А смысл? У Вас строка ведь приходит. Ну вкорячите Вы этот UART, и что - получите из него ту же самую строку с 0 в начале. Легче станет?

 

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

Вы тред внимательнее сначала прочитайте. У автора проблема не в разбирании, а в том что GPS не включается. В начале строки 0 приходит.

На будущее нужно учесть чтоб не лепить сразу схему, а сначала заказать отдельные EVB и на проводочках протестить.

 

PS: Да - и "кашу-малашу" парсить по-любому нужно, так как от перетаскивания GPS на отдельный UART асинхронные URC в GSM/BT части никуда не денутся. Поэтому перетаскивание бессмысленно. Разве что если стоит задача - занять побольше ног в МК.

 

PPS: Посмотрел сейчас несколько схем EVB на SIM868 в инете - везде сделано по-разному: где-то вывели отдельно GPS_UART на внешний разъём (с опциональной заводкой их также и на UART2), где-то - GPS_UART завели только на UART2. При этом где-то GPIO1 оставили болтающимся неподключенным (без доступа к нему), а завели внешний сигнал на GNSS_EN, где-то соединили GNSS_EN с GPIO1. Вобщем - полная анархия и шатание и пренебрежение мануалом на модуль. Похоже только эксперимент покажет истину.... :(

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...