|
|
  |
SIM868, Новый комбо-модуль 2G+GNSS |
|
|
|
Aug 12 2018, 20:22
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 14-12-05
Пользователь №: 12 204

|
Цитата(jcxz @ Aug 12 2018, 18:06)  Питание BT включили? Попробовали и его включить командой AT+BTPOWER , но это ничего не дало.
|
|
|
|
|
Aug 13 2018, 04:59
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 14-12-05
Пользователь №: 12 204

|
Цитата(jcxz @ Aug 13 2018, 03:36)  Включить, проверить что статус BT стал нормальным, потом только включать GPS. Проверил - не помогло. Может прошить его нужно?
|
|
|
|
|
Aug 13 2018, 12:09
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(CADiLO @ Aug 13 2018, 14:35)  Когда в сообщения от GPS вклинится URC от GSM и вы будете долго соображать что от чего - это раз. Почему? Разве есть URC одинаковые и для GSM и для GPS? В чём именно сложность различить их? Работает сейчас у меня BT+GPS - проблем с распознаванием нет никаких. GSM не использую. Цитата(CADiLO @ Aug 13 2018, 14:35)  Допустим нужно отключить GSM часть для снижения потребления и работать только с GPS - ну и как вы это сделаете на объединенных UART? Очевидно, что в этом случае я просто поставлю два разных модуля GPS и GSM. Раз их нужно по отдельности выключать, то зачем использовать единый модуль? Цитата(CADiLO @ Aug 13 2018, 14:35)  Функционал будет только тот что позволят АТ команды GSM части для работы с GPS. А при отдельном UART можно например вместо NMEA использовать бинарный протокол и прочие "вкусности" Так как не знаю о каких "вкусностях" речь, то ничего не могу сказать. Мне достаточно того, что выдаётся в строке +CGNSINF. Цитата(CADiLO @ Aug 13 2018, 14:35)  А теперь готов выслушать минусы для 2 UART. Это вроде как очевидно: 1. Писать 2 драйвера UART вместо одного. И два парсера. Зачем 2 если можно один? 2. Потратить в два раза больше периферии (ног, UART-ов). Периферия (особенно UART-ы) - всегда дефицит в МК. Взять корпус с бОльшим числом ног (если таковой есть) - значит неоправданно увеличить стоимость устройства.
|
|
|
|
|
Aug 13 2018, 12:45
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 14-12-05
Пользователь №: 12 204

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

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
>>> Очевидно, что в этом случае я просто поставлю два разных модуля 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
полтора бакса в розницу за полный набор удовольствий.
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Aug 13 2018, 13:21
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(CADiLO @ Aug 13 2018, 15:59)  Зачем???? Парсер один но работает с любым количеством потоков. По прерываниям просто обрабатываем то что нужно получая от одного или другого 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). И если есть возможность посадить несколько устройств на один физический канал, написав единый драйвер физ.канала, а за ним - несколько дочерних драйверов устройств - то это хорошее решение. В условиях ограниченности ресурсов. Цитата(CADiLO @ Aug 13 2018, 15:59)  Мы еще 20 лет назад на 16 мегагерцовом интеловском MSC96 обрабатывали 128 каналов импульсного набора и приема номера и укладку потом его в ИКМ. Это то каким боком сюда относится? да хоть 256. Цитата(CADiLO @ Aug 13 2018, 15:59)  Фигня полная - 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 в розницу И что? Опять не понял - к чему это? Вы предлагаете наш МК заменить на этот?  Цитата(CADiLO @ Aug 13 2018, 15:59)  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 полтора бакса в розницу за полный набор удовольствий. Опять не понял - зачем???
|
|
|
|
|
Aug 13 2018, 13:37
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(sabrat @ Aug 13 2018, 15:45)  Железо уже готово, заложен один юарт. Производитель заявил что можно работать через один, а по факту это не работает. Может прошивку другую залить? на какой проверено работает через один юарт? Мы тоже заложили 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: Здесь на форуме можно найти мои весенние посты по этой теме. Цитата(CADiLO @ Aug 13 2018, 16:26)  Затем чтобы показать что не стоит зацикливаться на чем-то одном. Контроллер выбирают под задачу, а не приспосабливают задачу под имеющееся. Вот мы его и выбрали под свою задачу. А задача эта (основная) - векторное управление PMSM-двигателем. А SIM868 - это только часть большой схемы. В которой много чего есть. И периферия используется очень плотно. С чего Вы решили что нам только GPS+GSM нужен? Это вообще довольно второстепенная функция. Я думаю, что и у sabrat дела обстоят аналогично. Цитата(CADiLO @ Aug 13 2018, 16:26)  Я не буду догадываться - у меня сообщения соберутся в стеках и там я четко знаю от какого UART каждый стек. Неужели никогда не слышали о стековом методе распараллеливания задач ???? Неужели никогда не слышали что такое "драйвер" и сколько ISR-ов, стеков, задач и пр. он может в себя включать? То что Вы описали - это и есть два разных драйвера. Вместо одного. О чём я и писал. Драйвер - это логически целостная единица ПО, предназначенная для обслуживания одного канала связи (драйвер канала, как в нашем случае) или одного устройства на общем канале связи. Или он может совмещать в себе эти 2 части, если на канале только одно устройство. Для 2-х UART-ов мне придётся писать два разных канальных драйвера с драйверами устройств. Для совмещённого - один общий канальный драйвер с двумя драйверами устройств (дочерними). Второй вариант конечно же проще. И если можно сделать проще, то зачем делать сложнее? Это уже не говоря о дефиците ног/UART-ов (что есть в нашем случае). А вопросы потребления нас не волнуют - двигатель как бы на порядки больше будет кушать. Именно поэтому и был выбран SIMCOM, иначе выбрали бы наверное 2 дискретных модуля BT и GPS.
|
|
|
|
|
Aug 13 2018, 17:23
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 14-12-05
Пользователь №: 12 204

|
Цитата(jcxz @ Aug 13 2018, 16:37)  Я думаю, что и у sabrat дела обстоят аналогично. Именно так и есть, в железке ещё куча математики и телеметрии различной. Теперь думаю что делать, брать МГТФ и второй юарт на готовых печатках прокидывать? Ног свободных нет почти, ещё и софтовый юарт вкорячивать? Сплошные костыли....
|
|
|
|
|
Aug 13 2018, 18:57
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(sabrat @ Aug 13 2018, 20:23)  Именно так и есть, в железке ещё куча математики и телеметрии различной. Теперь думаю что делать, брать МГТФ и второй юарт на готовых печатках прокидывать? Ног свободных нет почти, ещё и софтовый юарт вкорячивать? А смысл? У Вас строка ведь приходит. Ну вкорячите Вы этот UART, и что - получите из него ту же самую строку с 0 в начале. Легче станет? Цитата(mantech @ Aug 13 2018, 20:45)  Честно говоря тоже не сторонник все скидывать в один уарт и потом мучительно парсить эту кашу-малашу с асинхронно принимаемыми сообщениями... Но уж раз сэкономили и заложили 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. Вобщем - полная анархия и шатание и пренебрежение мануалом на модуль. Похоже только эксперимент покажет истину....
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|