Jump to content
carlogulliani

Чтение GPS MTK3339

Recommended Posts

Добрый день, читаю датчик GPS MTK3339 по uart, везде, где бы не читал (ардуино, fdti, ubuntu) выдает следующее

 

$GPGGA,061527.084,,,,,0,0,,,M,,M,,*43
$GPRMC,061527.084,V,,,,,0.00,0.00,110417,,,N*44
$GPGGA,061528.084,,,,,0,0,,,M,,M,,*4C
$GPRMC,061528.084,V,,,,,0.00,0.00,110417,,,N*4B

Из этого видно, что дату и время показывает верную, а координаты и позицию 0. Формат NMEA, также пробовал парить и с помощью ардуино и online парсеров, что подтвердило выводы. Тесты проводились в комнате, вот хочу понять, это до спутника не добивается или прошивка/модуль косячные?

 

Может кто имел дело с данным модулем?

 

По питанию все ок, подключил согласно даташиту платы (+5В там стоит преобразователь 5В в 3.3В)

 

В поле еще не проверял

Share this post


Link to post
Share on other sites

Скорее всего не видит спутники. Сделай чтобы он выводил ещё сообщение GPGSV, например.

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

3 минуты назад, Vascom сказал:

Скорее всего не видит спутники. Сделай чтобы он выводил ещё сообщение GPGSV, например.

Это в прошивке делается, запросил у продавца борцы прошивки, так как лог выше - все что выводит карт, даже без микроконтроллера (напрямую через FDTI подключен).

Вот я тоже грешу на спутник, но на youtube много роликов, где люди читают датчик в помещении

Share this post


Link to post
Share on other sites

Вебинар «Параметры выше, цена ниже. Обновление в линейке AC/DC- и DC/DC-преобразователей MORNSUN» (26.01.2021)

Приглашаем 26 января на бесплатный вебинар, посвящённый преимуществам и отличиям новых источников питания и DC/DC-преобразователей Mornsun. На вебинаре будут рассмотрены изолированные и неизолированные DC/DC-преобразователи последнего, четвертого, поколения (R4) и компактные модульные источники питания второго и третьего поколений (семейства LS/R3 и LD/R2) на плату. Рассмотрим новую группу продукции – встраиваемые источники питания в кожухе.

Подробнее

Неужели там командами по тому же uart нельзя включить вывод других сообщений?

Там антенна подключена вообще?

Например быстро гуглится такой документ https://cdn-shop.adafruit.com/datasheets/PMTK_A11.pdf

Кстати, если GPGSV уже включен, но их нет, то не ловит ни один спутник.

Share this post


Link to post
Share on other sites

Вебинар "Новый BlueNRG-LP с Bluetooth 5.2 и Long Range — волшебная палочка разработчика IoT" (04/02/2021)

Приглашаем 4 февраля на бесплатный вебинар о BlueNRG-LP - новом программируемом чипе SoC STMicroelectronics. На вебинаре будут детально рассмотрены новые возможности, особенности подключения, аппаратные и программные средства для разработки, а также практические примеры работы с микросхемой.

Подробнее

Плата STEVAL-IDB011V1 – тестируем идеи на новом BLE 5.2-чипе BlueNRG-LP

Новая система на кристалле BlueNRG-LP производства STMicroelectronics предназначена для устройств интернета вещей(IoT ) и не только, отвечает стандарту BLE 5.2 и поддерживает MESH-сети. Микросхема содержит малопотребляющий MCU Cortex-M0+. Отладка STEVAL-IDB011V1 позволит сэкономить время на разработку новых устройств.

Подробнее

При первом включении модулю нужно несколько минут, чтобы определить свои координаты, так называемый "холодный старт".

Оставьте модуль включённым минут на 10. Если определит после этого своё местоположение, то при последующих включениях "тёплый старт" будет происходить гораздо быстрее.

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

Share this post


Link to post
Share on other sites
2 минуты назад, Yurkin2015 сказал:

При первом включении модулю нужно несколько минут, чтобы определить свои координаты, так называемый "холодный старт".

Модуль современный, имеет систему быстрого поиска спутников. Для него холодный старт - 34 сек.

Share this post


Link to post
Share on other sites
7 минут назад, Yurkin2015 сказал:

При первом включении модулю нужно несколько минут, чтобы определить свои координаты, так называемый "холодный старт".

Оставьте модуль включённым минут на 10. Если определит после этого своё местоположение, то при последующих включениях "тёплый старт" будет происходить гораздо быстрее.

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

Вот этого не знал, спасибо) Вечером попробую.

 

Да, живу на 1, и надо мной 5 этажей, да и относительно близко от окна запускал - 1.5м

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Неизвестно, что они думают на самом деле. Отрицание может быть по другим причинам.
    • ППК — публично-правовая компания. Или противо-перегрузочная коррекция?
    • Ой ты умник какой нашёлся, посмотрите на него! Он - мой лимитер моделил!!!  Ха-ха-ха!  Правда, временнЫе параметры самого оптрона - регулирующего усиление элемента забыл учесть, а так бы всё ничего. Ну жучило же, чё взять с этого барана...  Как будто я этого не делал! Только, в отличие от этого фраера, я его ещё слушал, в реальной работе. И не я один.  Фак Ю, жукоффский. 
    • Это точно! Если только для таймера, то резистор и стабилитрон (+ транзистор при необходимости) еще никто не отменял.
    • Guest Борис М.
      Повторяю вопрос уже с фотографиями. Перестала работать светодиодная гирлянда. Что именно сгорело - блок питания или контроллер управления, понять не могу. Заменить блок нечем, контроллер заклеен и разобрать его не сломав не знаю как. Блок питания: LR-IP-31003.6 31VDC 3.6VA Electric appliance Контроллер: kema keur GP-LC 3-42VDC (1-2)x0.3A max. Ningbo golden power electric Подскажите: 1) Как протестировать поломку? 2) Можно ли выкинуть контроллер и соединить напрямую провода блока питания с гирляндой через спайку или клеммники? 3) На что заменить контроллер (такой же не нашел в продаже) или как его починить, если проблема в нем?
    • Так лимитер и есть мегаэффективное средство защиты пищалок, он не даёт выходному сигналу превратиться в меандр, который и жгёт пищалки. А этот идиот выкручивается как уж на сковородке, лишь бы отмазаться.  Более того - для разных применений, и кое-кому просто нечем заняться, кроме как считать себя умнее всех на свете. А я не собираюсь подставлять правую щеку, а врежу с правой руки в ответ, уж так учили.    Да проще жучилу башкой об угол воспитать Резиновое изделие номер 2, штопанное!  Без твоих расчётов - точно можно, и даже нужно! Чтобы там никакой жучкой не пахло! И только тогда будет нормальный толковый усилитель, а не та дичь, что ты всем втюхиваешь  Ты, сцуко, свою пукалку 100-200Вт на любое мероприятие поставь - динамики будешь перематывать, как два пальца об асфальт. Почему фирменные киловаттники не устраивают такой дичи, как твои жуковики с десятью нулями опосля запятой??? - по кочану. 

  • Усилитель на TPA3110 XH-A232 30Вт+30Вт

  • Similar Content

    • By YetiSPb
      Здравствуйте. Мои знания в электронике малы, но мне необходимо подружить датчик давления и модуль тока и напряжения, если это возможно.
      Итак, есть датчик дифференциального давления NPH-8-172DH и модуль тока и напряжения CJMCU-219 для Arduino .
      Если я правильно понял то датчик отдаёт два сигнал нала в mV. Пины 5, 6 вход отдают данный по давлению на входе, пины 4, 10 по давлению на выходе.
      Возможно ли измерить сигнал датчика модулем CJMCU-219?  Какое должно на датчик подаваться напряжение и какой должен быть ток? Как правильно подключить датчик и модуль дуг у дугу правильно?
    • Guest kaisarali1997ss@gmail.com
      By Guest kaisarali1997ss@gmail.com
      Доброго времени суток.
      Не смог реализовать повторный Serial.available() внутри условия Serial.available.
      Может кто-то уже сталкивался с этим.
      Задача состоит в том, что нужно зажечь светодиодные ленты WS2812b. 
      Алгоритм действий:
      1)  Ожидаем появления данных на входе serial с помощью if (Serial.available()){}
      2) Принимаем значения int val=Serial.paresInt();
      3)Условие сравнивания if(val>123){chess=val;} esle if(val<124){color=val;} т.е номер светодиода это chess, цвет это color
      4) На смартфон отправляем 'n', для разрешения отправки следующих данных
      5)Ждем уже цвет светодиода на входе serial далее по предыдущему алгоритму 
      6)Зажигаем указанный светодиод на указанный цвет. 
      #include <FastLED.h> #define LED_PIN 6 #define NUM_LEDS 123 CRGB leds[NUM_LEDS]; const unsigned int DIM1 = 123; const unsigned int DIM2 = 1; const unsigned int DIM3 = 3; int ary[DIM1][DIM2][DIM3]; void setup() { Serial.begin(9600); FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS); } void loop() { if(Serial.available()){ int val=Serial.parseInt(); int chess=val; Serial.println(chess); delay(1); Serial.println('n'); clear_serail(); if(Serial.available()){int color=Serial.parseInt(); Serial.println(color); if(color>0){ if(color==124){ ary[chess][1][1]=0; ary[chess][1][2]=255; ary[chess][1][3]=0; Serial.println(ary[chess][1][1]); Serial.println(ary[chess][1][2]); Serial.println(ary[chess][1][3]); leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); } if(color==125){ ary[chess][1][1]=255; ary[chess][1][2]=0; ary[chess][1][3]=0; leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); }}} } } void clear_serail(){ Serial.end(); Serial.begin(9600); }  
    • By Любовь Бертулите
      Компания производитель вендинговых автоматов для розлива питьевой воды в поисках инженера-системотехника/инженера электронщика.
      График 5/2 с 9 до 18, здесь удаленный формат не рассматриваем.
      Место работы – г. Екатеринбург.
      Мы ищем специалиста, который будет делать прототипы нового для контроллера, курировать производство, проверять, дорабатывать, перепаивать, а также:
      Переписывать текущие программы на С++; Создавать программу для Android для конфигурации параметров контроллера через bluetooth. (т.е. предлагать новые, современные идеи и подходы для развития имеющихся контроллеров, которыми вы владеете); Предлагать новые программные продукты, среды разработки. Будет в тренде мира микроэлектроники, китайского контрактного производства. Может предложить совершенно новую реализацию наших текущих задач, чтобы это было лучше и эффективнее. В идеале, нам нужен специалист, который имеет:
      Опыт программирования микроконтроллеров Atmega, STM32, ESP32; Опыт работы в Altium Designer; Опыт работы в c++ (IAR, QT); Опыт работы с modbus, rs485/232, SPI. Готовы рассматривать специалистов с разным опытом, поэтому пишите, задавайте вопросы.
      Резюме можно отправить на почту lb@ktekt.ru (да, мы кадровое агентство), позвонить можно по следующему тел. 89068001212 - Любовь. 
       
    • By admin
      В видео протестируем плату Nucleo G474RE и проверим насколько она быстрее Arduino Uno.
      Текстовый вариант инструкции, как превратить отладочную плату STM в Arduino: https://www.compel.ru/lib/132248
      Плата Nucleo-G474RE: https://www.electronshik.ru/item/ST/NUCLEO-G474RE
      Arduino Uno: https://www.electronshik.ru/item/ARDUINO/ARDUINO%20UNO%20REV3
      Репозиторий проекта stm32duino: https://github.com/stm32duino/Arduino_Core_STM32
      Репозиторий benchmark’а: https://github.com/PaulStoffregen/CoreMark
      Пи тест, вторая часть: https://youtu.be/uLOWYE-JJpA
      Пи тест, первая часть: https://youtu.be/ozu1IUjH1_Q
      Платы XNucleo: https://www.st.com/content/st_com/en/search.html#q=xnucleo-t=tools-page=1
    • By sys
      Потребовалась в проекте простая и долгоживущая память для вобщем- то небольшого количества данных, на случай сбоя по питанию. Работа ограничивалась записью текущих изменяющихся значений и восстановлением при включении. При неспешной записи несколько раз в минуту, ресурс ATMEGA328 выбирался за 2 года гарантированной записи её родной EEPROM, происходившей по кольцу, что не очень радовало.
              Отступление небольшое, в нете читал статью где этот чип подвергался повышенным напряжением в 7- 9В и при снижении опять начинал работать, так это правда, случайно проверил. Ещё тестили количество циклов чтения- записи, реально намного превышает количество заявленное производителем, но у меня не тот случай где можно на это надеяться.
      Присутствовал на борту модуль с Алиекспресса с DS3231,  на нём имелась память 24С32. Ввиду чрезвычайного удобства (модуль два в одном, и часы и память, общая шина IIC/TWI) эта микросхема использовалась для вышеуказанных целей очень долгое время. А потом всё устройство обрастало свистелками- перделками многочисленными датчиками  и подвергалось давлению перфекционизма. Времени для записи, по даташиту  10ms, стало слишком много и в обрез оставалось для основной работы программы. Я посмотрел в сторону FRAM.
             Были заказаны на том же Али FM24С64 и 04. Частота работы до 1 Мгц,  выпускаются в вариантах 5 и 3,3В, объёма, учитывая количество циклов записи- чтения 10 в 12-й степени хватало. Перепробовав безуспешно адаптировать несколько библиотек, для обычных 24СХХ, решил написать подпрограммы, напрямую работая со встроенной библиотекой Wire Arduino IDE (https://www.arduino.cc/en/Reference/Wire). Этими скетчами проверял присланные микросхемы.
      Для FM24C04:
      #include <Wire.h>
      byte iich = 0x50;// адрес устройства
      unsigned int address = 0;
      byte datawrite = 0x77;// чем заполнить ячейки памяти
      void setup() {
        Serial.begin(115200);
        Wire.begin();
        Wire.setClock (400000);// скорость шины, от 3,3В через конвертер уровней TXS0108 тоже работают
        for (address = 0; address < 512; address ++ ) {  // цикл для записи в память
          iic_write (address, datawrite);    
        }
        for (address = 0; address < 512; address ++ ) { // цикл для чтения из памяти
          Serial.println ();
          Serial.print (address);
          Serial.print ("--");
         Serial.print (iic_read (address),HEX);
          Serial.print ("--");   
        }
      }
      /////////////////////////////////////////////////////
        void loop() {
        }
      /////////////////////////////////////////////////////
        
      unsigned int iic_read (unsigned int adrd) {
          Wire.beginTransmission(iich);
          Wire.write(adrd);
          Wire.requestFrom(iich, 1);
          return  Wire.read();
          Wire.endTransmission();
        }
       void iic_write ( unsigned int adwr, byte dat) {
          Wire.beginTransmission(iich);
          Wire.write(adwr);
          Wire.write(dat);
          Wire.endTransmission();
        }
       
      Для  FM24С64 меня ждали несколько шикарных, испытанных временем граблей.
      Перерыт инет, перечитан даташит. Внутренний подтягивающий к земле резистор  internally pulled down достаточно велик для уровня наводки, воспринимаемой как логический "0" или "1". Поэтому вывод WP- обязательно к земле наикратчайшим  проводом, тем более если это "сопли" на разъёмах на столе. То- же о выводах А0-А2, висящие в воздухе они давали несколько несуществующих адресов. Почему- то это не касается FM24C04 и я попался на этом чипе.
      Подпрограммы изменились, для чтения:
      unsigned int iic_read (unsigned int adrd) {
        Wire.beginTransmission(iich);
        Wire.write(adrd >> 8);// старший байт
        Wire.write(adrd & 0xFF);//младший байт
        Wire.requestFrom(iich, 1);
        if (Wire.available()) {
          return  Wire.read();
        }
        Wire.endTransmission();
      }

      для записи:
      void iic_write ( unsigned int adwr, byte dat) {
        Wire.beginTransmission(iich);
        Wire.write(adwr >> 8);
        Wire.write(adwr & 0xFF);
        Wire.write(dat);
        Wire.endTransmission();
      }
      Работа 5В версии (FM24C64-G) при питании 3,3В и скорости шины 400000 стабильна, что рекомендовать к работе конечно нельзя.
      По поводу  FM24C64 (подозреваю что и С32 ,  С128,  С256) коротко и ясно написано на https://forum.arduino.cc/index.php?topic=18946.0 пользователь alicemirror объясняет как работает чтение у этих микросхем, а поскольку они прямая замена для, например, АТ24С64, то и для них это справедливо.  Дело в том, что данные из микросхемы "выстреливаются" далее без указания адреса с его автоинкрементом самой микросхемой после подтверждения от ведущего. Эту прыть и надо останавливать при получении байта :-)  и способ адресации отличается от младших, с меньшим объёмом.
         Интересных всем проектов!
×
×
  • Create New...