让GPS在SIM5320A 3G/GPS模块上工作

让GPS在SIM5320A 3G/GPS模块上工作,gps,Gps,我有一个Adafruit FONA 3G/GPS模块()。我已经让手机功能正常工作了,但我正在努力使用GPS。我试过无源天线和有源天线 这是SIM5320A模块()可用的AT命令列表。Adafruit示例代码使用不在此SIM卡模块上运行的AT命令。我发送以下序列: AT+CGPS=1,1 AT+CGPSINFO and I am receiving: +CGPSINFO: ,,,,,,,, AmpI/AmpQ: 4xx/4xx 到底出了什么问题?我已连接,但未获取任何数据。此外,我理解

我有一个Adafruit FONA 3G/GPS模块()。我已经让手机功能正常工作了,但我正在努力使用GPS。我试过无源天线和有源天线

这是SIM5320A模块()可用的AT命令列表。Adafruit示例代码使用不在此SIM卡模块上运行的AT命令。我发送以下序列:

AT+CGPS=1,1

AT+CGPSINFO

and I am receiving:

+CGPSINFO: ,,,,,,,,

AmpI/AmpQ: 4xx/4xx

到底出了什么问题?我已连接,但未获取任何数据。此外,我理解AmpI/AmpQ的数学意义,但这对于连接GPS网络意味着什么?

首先,如果您使用的是Adafruit最常用的示例,您需要查看第48行。注释掉声明类型为
Adafruit\u FONA
变量的行,并取消声明类型为
Adafruit\u FONA\u 3G
变量的行的注释

此外,如果您尚未运行FONA_3G setbaud程序将波特率设置为115200以外的值,则需要运行该程序。(Adafruit对此并不十分清楚,在我找到这些信息之前,我认为我的董事会很糟糕。)

其次,除非你在电路板上桥接标有
bias
的焊盘,否则你必须使用无源GPS天线。SIMCOM模块的GPS非常敏感。我把一个uFL到SMA的适配器插入电路板,并将一条5英寸的跨接导线插入SMA的中心引脚。GPS在一分钟内获得了一个位置

我尝试了以下命令:
AT+CGPS=1
,然后使用
AT+CGPS?
查询GPS状态。它向我报告了
+CGPS:1,1

最初几次尝试将
发送到+CGPSINFO
时,我得到了与您相同的信息,即没有职位

但是,使用导线(或无源天线)几分钟后,
AT+CGPSINFO
开始返回有效的时间和位置信息

希望这有帮助

更新:

你要的是密码,我很乐意效劳。此代码设计为Arduino(使用工具->串行监视器)和Fona之间串行数据的终端式继电器。所以我上面描述的命令,我只是手工输入的。不过,有些人可能会发现它很有用

#include <Adafruit_FONA.h>
#include <SoftwareSerial.h>

#define RX_FROM_FONA 2
#define TX_TO_FONA 3
#define FONA_RST 4
#define FONA_PWR_KEY 5
#define FONA_PWR_STATUS 7

Adafruit_FONA fona = Adafruit_FONA(FONA_RST);

SoftwareSerial fonaSerial = SoftwareSerial(TX_TO_FONA, RX_FROM_FONA);

void setup() {
    pinMode(FONA_RST, OUTPUT);
    pinMode(FONA_PWR_KEY, OUTPUT);
    pinMode(FONA_PWR_STATUS, INPUT_PULLUP);

    pinMode(LED_BUILTIN, OUTPUT);

    digitalWrite(FONA_RST, HIGH);
    digitalWrite(FONA_PWR_KEY, HIGH);

    resetFona();

    Serial.begin(115200);

    fonaSerial.begin(4800); 
}

void resetFona() {
    digitalWrite(LED_BUILTIN, HIGH);
    digitalWrite(FONA_RST, LOW);
    delay(200);
    digitalWrite(LED_BUILTIN, LOW);
    digitalWrite(FONA_RST, HIGH);
    delay(1000);
    digitalWrite(LED_BUILTIN, HIGH);
    digitalWrite(FONA_PWR_KEY, LOW);
    delay(5000);
    digitalWrite(LED_BUILTIN, LOW);
    digitalWrite(FONA_PWR_KEY, HIGH);
    delay(100);
}

char buffer[255];
int crIndex = 0;
int bufferIndex = 0;
int foundCR = 0;

void loop() {

    if (Serial.available()) { 
        buffer[bufferIndex++] = Serial.read(); 
        if (buffer[bufferIndex - 1] == 13) { 
            crIndex = bufferIndex - 1;
            foundCR = 1; 
        }
    }

    if (bufferIndex > 255) { bufferIndex = 0; }

    while (fonaSerial.available()) { Serial.write(fonaSerial.read()); }

    if (foundCR > 0) {
        for (int i = 0; i <= crIndex; i++) {
            fonaSerial.write(buffer[i]);
        }

        foundCR = 0;
        bufferIndex = 0;
        crIndex = 0;
    }
}
#包括
#包括
#从第2版中定义RX_
#定义TX_至_FONA 3
#定义FONA_RST 4
#定义FONA_PWR_键5
#定义FONA_PWR_状态7
Adafruit_FONA FONA=Adafruit_FONA(FONA RST);
SoftwareSerial fonaSerial=SoftwareSerial(发送到FONA,接收来自FONA);
无效设置(){
pinMode(输入、输出);
pinMode(FONA_PWR_键,输出);
pinMode(FONA_PWR_状态,输入_上拉);
引脚模式(LED内置,输出);
digitalWrite(FONA_RST,高);
数字写入(FONA_PWR_键,高);
resetFona();
序列号开始(115200);
贝京基金会(4800);
}
void resetFona(){
数码写入(LED内置,高);
数字写入(FONA_RST,低位);
延迟(200);
数码写入(LED内置,低电平);
digitalWrite(FONA_RST,高);
延迟(1000);
数码写入(LED内置,高);
数字写入(FONA_PWR_键,低位);
延迟(5000);
数码写入(LED内置,低电平);
数字写入(FONA_PWR_键,高);
延迟(100);
}
字符缓冲区[255];
int-crIndex=0;
int bufferIndex=0;
int-foundCR=0;
void循环(){
如果(Serial.available()){
buffer[bufferIndex++]=Serial.read();
如果(buffer[bufferIndex-1]==13){
crIndex=缓冲指数-1;
foundCR=1;
}
}
如果(bufferIndex>255){bufferIndex=0;}
while(fonaSerial.available()){Serial.write(fonaSerial.read());}
如果(foundCR>0){

对于(inti=0;i我认为这不是软件问题,而是硬件问题

我也有同样的问题。SIM5320A的灵敏度相当好,但Adafruit在实现载波板时没有真正遵循他们的设计指南,这损害了它的灵敏度

例如,您可以阅读电路板的应用说明。查看“SMT模块设计”和“硬件设计”的PDF

首先,您会注意到SIMCOM建议使用LC调谐网络将特定天线调谐至50欧姆阻抗

以下是SIMCOM推荐的图表:

这是Adafruit的设计,任何地方都找不到调谐网络:

现在,如果您以后要在自己的PCB中使用它,您当然可以自己在这里进行改进

要测试您的设计,您需要更多地了解模块所说的内容,否则您将盲目飞行。您可以读取GPS NMEA序列并对其进行解密,但其中有很多内容。另一种方法是使用SIMCOM support提供的GPS演示工具。要下载此工具,请转到:


用户名=myd
psd=simcommyd

它将向您显示连接到的卫星数量、信号强度等。您需要至少3颗卫星才能锁定(从技术上讲,您应该有4颗卫星,但某些模块可能仅用3颗卫星就抛出一个不可能的三角测量解决方案,不确定SIM5320A有哪些卫星).您希望每个卫星都具有30+范围内的优势

这是我之前的截图,你可以看到我只有一颗卫星,因此没有锁。这是在冷启动半小时后下载历书和星历表(冷启动平均需要15分钟)。卫星21(信号强度也为21,巧合)

我所做的修复信号增益的工作是在无源天线的串联中添加一个LNA(低噪声放大器)。我使用了BGA524N6BOARDTOBO1转接板,您可以从DigiKey/Mouser/others获得它,它增加了19dB的增益和难以置信的低0.55dB的噪声系数

挂上天线,等了一段时间,我得到了一把锁


希望这有助于您和其他人使用这个非常好的模块。

难道您不能发布返回GPS信息的代码吗?我有一个