Cómo interactuar entre SIM5360 y ATMEGA2560 por UART

0

Ingenieros. Recientemente, diseñé un dispositivo con SIM5360 y ATMEGA2560 basado en 3G_shield .

HayuncircuitoparaelcambiodeNIVELporqueSIM5360LEVELes1.8V.Creoqueelcircuitoescorrecto,peronofunciona.CuandoARMEGA2560envíauncomandoATalSIM5360,SIM5360noresponde.Paraencontrarlarazón,verifiquéelvoltaje2.8VdeSIM5360despuésdebajardePOWLEY(HIGH-LOW-HIGH).Segenera2.8V,perosuformadeondaesdesigual.

PeroATMEGA2560envíauncomandoATatravésdelaTxdeUART.

códigoArduino

#defineFONA_RST10#defineFONA_KEY11voidsetup(){//initializebothserialports:Serial.begin(9600);///BLESerial1.begin(9600);///TESTserialSerial2.begin(115200);///SIM5360Serial3.begin(9600);////CANBUSpinMode(FONA_RST,OUTPUT);pinMode(FONA_KEY,OUTPUT);digitalWrite(FONA_RST,HIGH);delay(20);digitalWrite(FONA_KEY,HIGH);delay(200);Serial1.println("POWKEY lOW");
  digitalWrite(FONA_KEY,LOW);
  delay(2000);
  digitalWrite(FONA_KEY,HIGH);
  Serial1.println("POWKEY HIGH");
  delay(1000);
  digitalWrite(FONA_RST,LOW);
  Serial1.println("RESTKEY lOW");
  delay(3000);
  digitalWrite(FONA_RST,HIGH);
  Serial1.println("RESTKEY HIGH");
  delay(500);

}

void loop() {

  if (Serial1.available()) { 
    Serial2.print((char)Serial1.read());
  }
  if (Serial2.available()) { 
    Serial1.println((char)Serial2.read());
  }
}

¿Cuál es la razón por la que SIM5360 no responde? Estoy esperando la solución de alguien. Gracias por leer.

    
pregunta Aaron

1 respuesta

1

Lo siento, todos. El motivo fue el Código Arduino. Después del circuito de verificación (POWKEY, RESET)

pinMode(FONA_RST, OUTPUT);
pinMode(FONA_KEY, OUTPUT);
digitalWrite(FONA_RST,LOW);
delay(20);
digitalWrite(FONA_KEY,LOW); 
delay(200);
Serial1.println("POWKEY lOW");
digitalWrite(FONA_KEY,HIGH);
delay(2000);
digitalWrite(FONA_KEY,LOW);
Serial1.println("POWKEY HIGH");
delay(1000);

Gracias por leerme.

    
respondido por el Aaron

Lea otras preguntas en las etiquetas