Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » GPS (модуль не согласовывается с контроллером)
GPS
DNM Дата: Вт, 17.02.2015, 23:06  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 76
Репутация: 0   ±
Замечания:   ±
На сайте с 29.09.2011

Статус: Offline

притащили  тут эту хреновину


при подключении к компьютеру в u-blox  все работает нормально

автоматически определяет скорость - 9600.
НО, когда пытаюсь считывать на этой скорости контроллером - нет связи.
предполагаю, что скорость должно быть другая.
вот код

Device = 16F877
Config XT_OSC , WDT_OFF , PWRTE_ON , BODEN_OFF ,  CP_OFF , DEBUG_OFF
Include "modedefs.bas"          ' Include serial modes

Xtal 4

' ================================Настройка LCD ===============================================
'Declare Serial_Baud 9600
Declare LCD_Type=0         ' Тип ЖКИ - буквенно-цифровой
Declare LCD_DTPin PORTB.4         ' Порт данных ЖКИ
Declare LCD_ENPin PORTB.3         ' Управление цепью E
Declare LCD_RSPin PORTB.2         ' Управление цепью RS
Declare LCD_Interface 4           ' 4-х битная разрядность шины данных
Declare LCD_CommandUs 2000        ' Задержка перед посылкой команды
Declare LCD_DataUs 50             ' Задержка перед посылкой данных
Declare LCD_Lines 2               ' Количество строк ЖКИ
All_Digital = true
TRISD = %00000000
TRISB = %00000000
TRISC = %00000000
TRISA=%00000100
Symbol RS232_in = PORTA.2
Symbol RS232_out = PORTA.1

Dim gpsdata  As Byte
Dim hh As Byte 'hours
Dim mm As Byte 'minutes
Dim j As Byte 'day
Dim m As Byte 'month
Dim a As Byte 'year
Dim knots As Word 'speed in knots (units)
Dim knotsten As Byte 'speed in knots (tens)
Dim course As Word 'heading
Dim latdeg As Byte 'degrees latitude
Dim latmin As Byte 'minutes latitude
Dim NS As Byte 'north or south
Dim londeg As Byte 'degrees longitude
Dim lonmin As Byte 'minutes longitude
Dim EW As Byte 'east or west
Dim fix As Word 'GPS fix

'initialize variables
hh=0
mm=0
j=0
m=0
a=0
knots="0"
knotsten=0
course=0
latdeg=0
latmin=0
NS="N"
londeg=0
lonmin=0
EW="S"

DelayMS 1000

PORTA.3=0
PORTA.0=1     ' включить питание модуля
Cls
Print At 1 , 1, "GPS - ON"

GPS: 'read GPS

SerIn2 RS232_in,T9600,[Wait("$GPRMC"),Wait(","),Dec2 hh,Dec2 mm,Wait(","),fix,Wait(","),Dec2 latdeg,Dec2 latmin]
If fix="V" Then GoTo Nofix

' Cls
lsd:
Print At 1, 2, Dec2 hh,":"  ,Dec2 mm

GoTo GPS
Nofix:
Cls
'display last valid from GPS
Pause 1000
Print At 1, 1, "NO GPS fix"
GoTo GPS

вобщем чесать в затылке только остается
nocomp

кто-нибудь имел с ними дело?

Сообщение отредактировал DNM - Вт, 17.02.2015, 23:42
ЯНДЕКС Дата: 17.02.2015
anatol Дата: Ср, 18.02.2015, 09:40  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 551
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Как в басне Крылова: - "...Уж сколько раз твердили миру...".
Как можно вам помочь, если неизвестно с каким устройством вы пытаетесь соединиться. По фото можно только гадать. Где ссылка  на описание.
Второе - прежде чем просить - сами пытались разобраться? В вашем случае все упрощено - при связи с компьютером через преобразователь (USB - COM) и виртуальный COM-порт все работает. С помощью какой-то программы.
Так вот эта программа что-то делает в начальный момент, а не тупо пытается сразу прочесть данные. И называется это инициализацией.
Я не работал с чем-то подобным, но несколько лет назад стыковал программу с подобным трекером. Поэтому и слышал про протокол обмена.
Читайте, думайте и все получится.
Прикрепления: protocol_nmea.pdf(114Kb)
ADMIN Дата: Ср, 18.02.2015, 12:04  |                                                                                                                Сообщение # 3
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1111
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Я этот документ размещу в каталоге файлов на сайте, однако. Не против?
anatol Дата: Ср, 18.02.2015, 14:24  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 551
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Если вопрос ко мне - я буду только рад. Правда Истоки  назвать не могу. В моей файлопомойке безадресно лежал. Максим Александрович, считаю что выложенное на сайте без предупреждений о ограничениях, доступно всем и всегда.
ADMIN Дата: Ср, 18.02.2015, 15:29  |                                                                                                                Сообщение # 5
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1111
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Согласен
AndrF Дата: Ср, 18.02.2015, 16:01  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 159
Репутация: 3   ±
Замечания:   ±
На сайте с 03.02.2012

Статус: Offline

Цитата anatol ()
Как можно вам помочь, если неизвестно с каким устройством вы пытаетесь соединиться. По фото можно только гадать. Где ссылка  на описание.
Ну, если вглядеться, то на фото можно разобрать что это вот этот модуль. Хотя, конечно, лучше писать, если на фото явно не видно...

Цитата DNM ()
НО, когда пытаюсь считывать на этой скорости контроллером - нет связи. предполагаю, что скорость должно быть другая.
Выводы не попутали? К компу на том же месте подключали  - то есть на конкретном месте спутник точно ловит?
DNM Дата: Ср, 18.02.2015, 16:59  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 76
Репутация: 0   ±
Замечания:   ±
На сайте с 29.09.2011

Статус: Offline

Цитата anatol ()
Где ссылка  на описание.
В основе лежит модуль u-bloxNEO-6M-0-001. Модуль оснащен U-FL разъемом для подключенияантенны. В комплекте с модулем идет активная керамическая антенна (22 х 22 мм)
 
Интерфейс подключения к CraftDuino - UART.
 
Основные характеристики модуля:
- размер модуля: 23 х 30 мм (длина х ширина)
- размер антенны: 22 х 22 мм (длина х ширина)
- вес: 18 гр (вместе с антенной)
- монтажные отверстия - 4 шт, d = 3 мм
- питание - 3.3-5В
 
Основные преимущества:
- EEPROM для сохранения настроек
- Встроенная батарея для сохранения данных вслучае отключения питания
- Светодиод индикации наличия связи;
- Возможность подключить антенну на ваш выбор кразъему U-FL
 
Интерфейс передачи данных:
- UART 9600 8N1 3.3V
- Протокол - NMEA
- При подаче питания модуль сразу же начинаетпередавать данные по UART с частотой 1 Гц
 
В комплект входит
1. Модуль GY-NEO-6MV2 - 1 шт.
2. Керамическая антенна - 1 шт.
 
Области использования:
1. Flight controllers для коптеров
2. Определение положения малоподвижных объектов(оборудования)
3. Определение положения транспорта
Цитата AndrF ()
Выводы не попутали? К компу на том же месте подключали  - то есть на конкретном месте спутник точно ловит?

НЕТ не перепутал, определяет сначала какие спутники доступны, потом, если их достаточное количество доступно и  качество связи хорошее - определяет координаты. Время показывает даже при наличии 1-3 - спутников (1 этаж 9 этажки если высунуть за окно - сразу видит несколько и быстро настраивается) 

Цитата anatol ()
сами пытались разобраться?
пытался, есть подозрение, что при кварце 4 МГЦ - не достигается нужная скорость, хотя должна по идее.
или скорость другая ...
 в общем, спасибо за участие.
за описание протокола на русском - спасибо.
AndrF Дата: Ср, 18.02.2015, 18:18  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 159
Репутация: 3   ±
Замечания:   ±
На сайте с 03.02.2012

Статус: Offline

Цитата DNM ()
пытался, есть подозрение, что при кварце 4 МГЦ - не достигается нужная скорость, хотя должна по идее. или скорость другая ...
У вас Uart-то работает - с тем же компом по нему микроконтроллер связывали?

А то кварцы встречались такие что на корпусе одна чистота написано, а реальная отличается в несколько раз...
anatol Дата: Ср, 18.02.2015, 18:38  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 551
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

DNM, на русском сайте microchip.ru в разделе документация http://www.microchip.ru/lit/?mid=1x0
в "Reference Manual - Справочник по среднему семейству микроконтроллеров PICmicro" в  "Раздел 18. Модуль USART"  есть документ http://www.microchip.ru/files/d-sheets-rus/pic16_18.pdf. В нем на стр. 9 в средней таблице в крайнем справа столбце есть интересующая вас информация. 
Если не понять почему такие цифры (в таблице) получаются, на  грабли, при передаче данных, наступать придется часто.
DNM Дата: Ср, 18.02.2015, 20:38  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 76
Репутация: 0   ±
Замечания:   ±
На сайте с 29.09.2011

Статус: Offline

Цитата anatol ()
Если не понять почему такие цифры (в таблице) получаются, на  грабли, при передаче данных, наступать придется часто.
посмотрел, значит лучше на 20 МГц кварц использовать? а на 4 при таких скоростях не использовать.
(хотя по букварю В.Н. Хилинского это возможно - там четко 9600 - максим. скорость при 4МГц fool )

Сообщение отредактировал DNM - Ср, 18.02.2015, 20:40
anatol Дата: Чт, 19.02.2015, 11:53  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 551
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

DNM, на стр 11 пункт 18.4 расписан режим работы. на стр.7 п.18.3 указан выбор частоты генератора.
Причем число Х только целое от 0 до 255.
При программировании в Протоне вы неосознанно пользуетесь "заготовками". И если вы чего-то не указываете то применяется режим по умолчанию. В вашем случае низкоскоростной режим работы (т.е. коээф. деления =64) и стандартный режим работы NRZ ([старт, 8 бит, стоп] = 10 бит). Тогда минимальная частота кварца = 9600*64*10 = 6 144 000 = 6,144 мГц.
Причем вышесказанное относится к условию выбора внутреннего USART и соответствующих ему ножек (выводов порта). При программном USART частота кварца еще больше.
Частота кварца подбирается из условия что число Х целое. В таком случае ошибки рассогласования между передатчиком и приемником (крайне важны при длинных передачах) - стремятся к нулю.
Цитата DNM ()
хотя по букварю В.Н. Хилинского это возможно
Посмотрите на высокоскоростной режим работы, правильно настройте регистры TXSTA и SPBRG и карты в руки.
В общем - дерзайте.
DNM Дата: Пт, 20.02.2015, 10:03  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 76
Репутация: 0   ±
Замечания:   ±
На сайте с 29.09.2011

Статус: Offline

Цитата anatol ()
Причем вышесказанное относится к условию выбора внутреннего USART и соответствующих ему ножек (выводов порта). При программном USART частота кварца еще больше. Частота кварца подбирается из условия что число Х целое. В таком случае ошибки рассогласования между передатчиком и приемником (крайне важны при длинных передачах) - стремятся к нулю.
спасибо, теперь начинаю понимать
Форум Picbasic.ru » Программирование МК » Proton PicBasic » GPS (модуль не согласовывается с контроллером)
Страница 1 из 11
Поиск: