lang02-7 发表于 2012-11-15 00:14:40

请教关于UBLOX NEO-6M!

本帖最后由 lang02-7 于 2012-11-15 00:15 编辑

在研究一个车机开发项目,GPS模块想用UBLOX6的模块,手册全英文,有点费劲,在本论坛也找到了几个相关的帖子,只是想问下大家,像这个芯片的这些USB、SDA、SCL、MOSI、MISO这些引脚有什么作用,像USB、SDA这些是用来接什么外设的?
我也不想用其他的功能,只接最少的几个有用的引脚就够了吧,最好哪位高手能给个典型应用电路图,谢过大家!
还请大家一一解答哦!

fsclub 发表于 2012-11-15 09:01:36

USB当然是用来接电脑USB接口的,SDA,SCL之类的就是SPI或者IIC接口,看手册啊。
最简单的电路就是接无源天线加电源,TX上就有信号出。
完善点的要判断是否接入有源天线,加备份电池等。

UBLOX的好像都是3V3供电,这点要特别注意。

mandey 发表于 2012-11-15 09:09:15

所有的都是数据接口,跟uart口一样,会同时输出数据。一般用uart口就行了。
如果uart口不够用,可以用其他接口。
我以前用过IIC接口,一样的。

lang02-7 发表于 2012-11-15 20:06:03

哦 知道了 谢谢!

孤独将一 发表于 2013-7-11 14:15:53

mandey 发表于 2012-11-15 09:09 static/image/common/back.gif
所有的都是数据接口,跟uart口一样,会同时输出数据。一般用uart口就行了。
如果uart口不够用,可以用其他 ...

帮个忙:
我写到IIC读gps数据,卡住了,
不知道硬件地址,不知道每个寄存器地址存放的值

mandey 发表于 2013-7-11 15:03:04

孤独将一 发表于 2013-7-11 14:15 static/image/common/back.gif
帮个忙:
我写到IIC读gps数据,卡住了,
不知道硬件地址,不知道每个寄存器地址存放的值


The default DDC address for u-blox GPS receivers is set to 0x42. Setting the mode field in the
CFG-PRT message for DDC accordingly can change this address.
我记得没有具体的寄存器的。
具体请参考硬件集成手册。

孤独将一 发表于 2013-7-11 15:13:45

mandey 发表于 2013-7-11 15:03 static/image/common/back.gif
The default DDC address for u-blox GPS receivers is set to 0x42. Setting the mode field in the
C ...

确定是0x42,我记得手册上也是写的0X42,但是就是不成功,倒是0x84有可能。
请问你是怎么读取的,没有具体的寄存器是怎么一回事

mandey 发表于 2013-7-11 15:15:27

孤独将一 发表于 2013-7-11 15:13 static/image/common/back.gif
确定是0x42,我记得手册上也是写的0X42,但是就是不成功,倒是0x84有可能。
请问你是怎么读取的,没有具 ...

0X42要向左移一位啊,左移一位就是0X84,然后最后一位决定读定。

孤独将一 发表于 2013-7-11 15:17:28

本帖最后由 孤独将一 于 2013-7-11 15:20 编辑

mandey 发表于 2013-7-11 15:15 static/image/common/back.gif
0X42要向左移一位啊,左移一位就是0X84,然后最后一位决定读定。

为什么左移啊,你的QQ是多少,帮帮我啊。还有我到底从哪个寄存器才能得到精度纬度

孤独将一 发表于 2013-7-11 15:21:05

mandey 发表于 2013-7-11 15:15 static/image/common/back.gif
0X42要向左移一位啊,左移一位就是0X84,然后最后一位决定读定。

帮帮忙啊

mandey 发表于 2013-7-11 15:31:45

孤独将一 发表于 2013-7-11 15:17 static/image/common/back.gif
为什么左移啊,你的QQ是多少,帮帮我啊。还有我到底从哪个寄存器才能得到精度纬度 ...

The first byte sent is comprised of the address field and R/W bit. Hence the byte seen on the bus 0x42 is
shifted by 1 to the left plus R/W bit thus being 0x84 or 0x85 if analyzed by scope or protocol analyzer.

mandey 发表于 2013-7-11 15:36:54

孤独将一 发表于 2013-7-11 15:21 static/image/common/back.gif
帮帮忙啊

To allow both polled access to the full message stream and quick access to the key data, the register layout
depicted in Figure DDC Register Layout is provided. The data registers 0 to 252, at addresses 0x00 to 0xFC,
each 1 byte in size, contain information to be defined at a later point in time. At addresses 0xFD and 0xFE, the
currently available number of bytes in the message stream can be read. At address 0xFF, themessage stream is
located. Subsequent reads from 0xFF return the messages in the transmit buffer, byte by byte. If the number of
bytes read exceeds the number of bytes indicated, the payload is padded using the value 0xFF.
The registers 0x00 to 0xFC will be defined in a later firmware release. Do not use them, as they
don't provide any meaningful data!

孤独将一 发表于 2013-7-11 15:45:09

本帖最后由 孤独将一 于 2013-7-11 15:47 编辑

mandey 发表于 2013-7-11 15:36 static/image/common/back.gif
To allow both polled access to the full message stream and quick access to the key data, the regis ...

1:好坑人的描述。“The receiver's DDC address is set to 0x42 by default. This address can be changed by setting the mode field in
CFG-PRT for DDC accordingly.”我入行半年,头一次发现这个得左移,虽然之前写过6个I2C的芯片,但第一次发现这么告人的,再加上英文不怎么好。你能告我下这句话什么意思吗,这句为何不是硬件地址
2:硬件地址解决的,下一步是哪个寄存器存放经纬度和星历,拜托,帮我指点下
3:那句话是说0x00-0xfc中这253个寄存器里面的数据没有用吗。只有0xfd-0xff有用?那这俩个8位寄存器怎么存放这么多数据的

mandey 发表于 2013-7-11 15:52:09

本帖最后由 mandey 于 2013-7-11 15:53 编辑

孤独将一 发表于 2013-7-11 15:45 static/image/common/back.gif
1:好坑人的描述。“The receiver's DDC address is set to 0x42 by default. This address can be chang ...

标准IIC的地址定义就是这样的,基本上没见过直接把两个地址写上的。
给出一个地址,但是这个地址其实是高7位,所以要左移。

孤独将一 发表于 2013-7-11 15:55:45

mandey 发表于 2013-7-11 15:52 static/image/common/back.gif
标准IIC的地址定义就是这样的,基本上没见过直接把两个地址写上的。
给出一个地址,但是这个地址其实是高 ...

第二个、第三个问题:2:硬件地址解决的,下一步是哪个寄存器存放经纬度和星历,拜托,帮我指点下
3:那句话是说0x00-0xfc中这253个寄存器里面的数据没有用吗。只有0xfd-0xff有用?那这俩个8位寄存器怎么存放这么多数据的
==============================
帮下忙么

mandey 发表于 2013-7-11 15:56:29

孤独将一 发表于 2013-7-11 15:45 static/image/common/back.gif
1:好坑人的描述。“The receiver's DDC address is set to 0x42 by default. This address can be chang ...

说的是,0XFD-0XFE存放的是数据的长度,然后批量读数据,从0XFF地址开始,长度为上两个寄存器里的值。

mandey 发表于 2013-7-11 15:59:42

孤独将一 发表于 2013-7-11 15:55 static/image/common/back.gif
第二个、第三个问题:2:硬件地址解决的,下一步是哪个寄存器存放经纬度和星历,拜托,帮我指点下
3:那 ...

等你把数据流读出来之后你就知道哪些数据是经纬度,速度,方向等等了。

孤独将一 发表于 2013-7-11 16:03:47

mandey 发表于 2013-7-11 15:56 static/image/common/back.gif
说的是,0XFD-0XFE存放的是数据的长度,然后批量读数据,从0XFF地址开始,长度为上两个寄存器里的值。 ...

The registers 0x00 to 0xFC will be defined in a later firmware release. Do not use them, as they
don't provide any meaningful data!
这句话不是说0x00-0xfc数据没用么。我是纳闷,经纬度在哪个地址里面

孤独将一 发表于 2013-7-11 16:11:11

本帖最后由 孤独将一 于 2013-7-11 16:12 编辑

mandey 发表于 2013-7-11 15:59 static/image/common/back.gif
等你把数据流读出来之后你就知道哪些数据是经纬度,速度,方向等等了。 ...

1:我的IIC函数没问题的,读取其他的I2C器件绝对能用的

这就是读出来的数据,什么啊。我的缓存volatile unsigned int gps_buffer_temp={};

mandey 发表于 2013-7-11 16:15:12

孤独将一 发表于 2013-7-11 16:11 static/image/common/back.gif
1:我的IIC函数没问题的,读取其他的I2C器件绝对能用的

这就是读出来的数据,什么啊。我的缓存volatile...

应该是char类型,怎么存到int数组里去呢
数据应该是符合NMEA标准的数据流

孤独将一 发表于 2013-7-11 16:35:54

本帖最后由 孤独将一 于 2013-7-11 16:39 编辑

mandey 发表于 2013-7-11 16:15 static/image/common/back.gif
应该是char类型,怎么存到int数组里去呢
数据应该是符合NMEA标准的数据流 ...

有没有确切的寄存器地址啊,我就想知道每个寄存器地址里面放的什么
这些乱码看不懂,是在不好解析。。这是串口接的数据,硬件没问题
===============================
NEO-6m-0-001的I2c读取时哪个寄存器地址存放的经纬度和星历

mandey 发表于 2013-7-11 16:38:27

孤独将一 发表于 2013-7-11 16:35 static/image/common/back.gif
有没有确切的寄存器地址啊,我就想知道每个寄存器地址里面放的什么
这些乱码看不懂,是在不好解析。。这 ...

这个确实是没有固定的地址的
因为GPS都是输出标准NMEA语句的

孤独将一 发表于 2013-7-11 16:40:54

mandey 发表于 2013-7-11 16:38 static/image/common/back.gif
这个确实是没有固定的地址的
因为GPS都是输出标准NMEA语句的

怎么办,怎用IIC查对应数据,第一次遇到这个问题。我糊涂了,指点下师傅

mandey 发表于 2013-7-11 16:42:53

直接仿真吧,看内存数据

孤独将一 发表于 2013-7-12 12:52:59

mandey 发表于 2013-7-11 16:42 static/image/common/back.gif
直接仿真吧,看内存数据

今天我读出经纬度了,但是发现个问题,我读取的是GGA的。120.836404是u-center提供的正确定位数据,但是结果我用串口调试助手发现是120.5017622。纬度也是小数点后面第一第二位偏差近30。


怎么回事啊,我把GSV,GSA无论开了关了也是这。只用GGA也是偏差太厉害

mandey 发表于 2013-7-12 12:57:16

孤独将一 发表于 2013-7-12 12:52 static/image/common/back.gif
今天我读出经纬度了,但是发现个问题,我读取的是GGA的。120.836404是u-center提供的正确定位数据,但是 ...

这些偏差肯定是你算得不对,因为所有语句的经纬度都是一样的。不可能偏差

孤独将一 发表于 2013-7-12 13:22:19

本帖最后由 孤独将一 于 2013-7-12 15:51 编辑

mandey 发表于 2013-7-12 12:57 static/image/common/back.gif
这些偏差肯定是你算得不对,因为所有语句的经纬度都是一样的。不可能偏差 ...

你看看,这个怎么回事啊。左边是串口助手的数据,右边是u-center

mandey 发表于 2013-7-12 13:31:09

孤独将一 发表于 2013-7-12 13:22 static/image/common/back.gif
你看看,这个怎么回事啊。左边是串口助手的数据,右边是u-center

u-center是已经换算过的了,是以度为单位的,语句出来是度,分,秒为单位,当然不一样啊。

具体换算自己google

孤独将一 发表于 2013-7-15 09:41:23

mandey 发表于 2013-7-12 13:31 static/image/common/back.gif
u-center是已经换算过的了,是以度为单位的,语句出来是度,分,秒为单位,当然不一样啊。

具体换算自己 ...

还是不准。用串口助手调试出来的,例如“3128.47923”,但是u-center地图上写的31`28’28.30'',对于秒,明显偏差啊,这偏差就是2-3公里的偏差啊,为何啊。

mandey 发表于 2013-7-15 09:56:52

孤独将一 发表于 2013-7-15 09:41 static/image/common/back.gif
还是不准。用串口助手调试出来的,例如“3128.47923”,但是u-center地图上写的31`28’28.30'',对于秒, ...

GPGGA

GPS固定数据输出语句($GPGGA)
这是一帧GPS定位的主要数据,也是使用最广的数据。
$GPGGA 语句包括17个字段:语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,水平精确度,海拔高度,高度单位,大地水准面高度,高度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记(用回车符<CR>和换行符<LF>),分别用14个逗号进行分隔。该数据帧的结构及各字段释义如下:
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx<CR><LF>
$GPGGA:起始引导符及语句格式说明(本句为GPS定位数据);
<1>UTC时间,格式为hhmmss.sss;
<2>纬度,格式为ddmm.mmmm(第一位是零也将传送);
<3>纬度半球,N或S(北纬或南纬)
<4>经度,格式为dddmm.mmmm(第一位零也将传送);
<5>经度半球,E或W(东经或西经)
<6>GPS状态, 0未定位, 1非差分定位, 2差分定位, 3无效PPS, 6正在估算
<7>使用卫星数量,从00到12(第一个零也将传送)
<8>水平精确度,0.5到99.9
<9>天线离海平面的高度,-9999.9到9999.9米
M    指单位米
<10> 大地水准面高度,-9999.9到9999.9米
M    指单位米
<11> 差分GPS数据期限(RTCM SC-104),最后设立RTCM传送的秒数量,如不是差分定位则为空
<12>差分参考基站标号,从0000到1023(首位0也将传送)。
*    语句结束标志符
xx    从$开始到*之间的所有ASCII码的异或校验和
<CR>   回车
<LF>   换行
------------------------------------------------------------------------------------------------------------------------------------------
遇到问题先自己搜索,这些很容易就搜到了。

孤独将一 发表于 2013-7-15 10:14:31

本帖最后由 孤独将一 于 2013-7-15 10:15 编辑

mandey 发表于 2013-7-15 09:56 static/image/common/back.gif
GPGGA

GPS固定数据输出语句($GPGGA)


你被我问的烦了,抱歉啊。
但是这些数据我已经得到了,但串口得到的数据的经纬度明显和u-center得到的有差别啊。都是小数点后即秒那个地方偏差的。例如上面的47923和28.30这个数据

mandey 发表于 2013-7-15 10:26:57

孤独将一 发表于 2013-7-15 10:14 static/image/common/back.gif
你被我问的烦了,抱歉啊。
但是这些数据我已经得到了,但串口得到的数据的经纬度明显和u-center得到的有 ...

0.47923分=28.75秒,跟28.30也就是相差0.4秒,0.4秒有几公里?10米还差不多。

nil00 发表于 2013-7-15 10:27:20

孤独将一 发表于 2013-7-15 09:41 static/image/common/back.gif
还是不准。用串口助手调试出来的,例如“3128.47923”,但是u-center地图上写的31`28’28.30'',对于秒, ...

这位tx,请仔细看nema标准数据格式:

纬度的格式是:ddmm.mmmmm

以你串口读出的3128.47923为例,31度+28分+0.47923*60 = 31度+28分+28.7538秒

孤独将一 发表于 2013-7-15 10:30:17

mandey 发表于 2013-7-15 10:26 static/image/common/back.gif
0.47923分=28.75秒,跟28.30也就是相差0.4秒,0.4秒有几公里?10米还差不多。

这么回事啊,谢谢啊。数学不咋的,正在深造

孤独将一 发表于 2013-7-15 11:05:27

nil00 发表于 2013-7-15 10:27 static/image/common/back.gif
这位tx,请仔细看nema标准数据格式:

纬度的格式是:ddmm.mmmmm


会不会用IIC读取数据,我不知道怎么读取。也就是说不知道硬件中哪个寄存器是我找的对应数据,比如gga的数据

孤独将一 发表于 2013-7-15 12:16:29

mandey 发表于 2013-7-15 10:26 static/image/common/back.gif
0.47923分=28.75秒,跟28.30也就是相差0.4秒,0.4秒有几公里?10米还差不多。

IIC怎么写啊。明显跟以前的IIC读取数据不一样,这个动态的?点一下吧,不用JTAG

cclgxuanshao 发表于 2013-10-23 11:03:24

遇到问题和楼主一样,请问楼主最后解决了吗,IIC通讯

294924297 发表于 2014-2-23 12:46:15

我使用u-center测试这个模块,可见卫星达到10颗以上,为什么还是不能定位?

SMC 发表于 2014-5-12 04:43:51

mandey 发表于 2012-11-15 09:09
所有的都是数据接口,跟uart口一样,会同时输出数据。一般用uart口就行了。
如果uart口不够用,可以用其他 ...

你好,谢谢你耐心的解答楼主的问题,我和楼主是一样的疑问,但看了您的解答后,我基本搞明白了。
但是我还有点不明白的就是怎么配置芯片呢,它默认输出是1Hz,我想配置到10HZ,文档上说The configuration settings can be modified using UBX protocol configuration messages.
是这样的数据串吗?0xB5,0x62,0x06,0x01,0x03,0x00,0xF0,0x05,0x00,0xFF,0x19。
假如我是用IIC总线,配置是在GPS发送数据的间隙吗?单片机IIC发送配置数据串的时候,先发送器件地址,然后再发送寄存器地址,问题来了,这个寄存器地址是多少呢?我翻遍了手册都没找到,亦或是根本不需要这个寄存器地址,直接向IIC总线上发送配置数据串?
拜托师父解答下.

rei1984 发表于 2014-5-12 07:12:15

基本要看手册了
页: [1]
查看完整版本: 请教关于UBLOX NEO-6M!