суббота, 17 января 2015 г.

MSP430 Interfacing to SIM900A


Про подводные камни платы SIM900A Mini v3.4 читать тут

Схема подключения UART простая: RX в TX, TX в RX.
Питания для SIM900A: для запуска мне хватило питания 3.3V от LaunchPad'a, но это нарушает даташит - необходимо 4V. Тем не менее, все работает.




Изначально джамперы находятся в таком положении для преобразования UART через MAX232:

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


На картинке, зеленый кабель - RX, белый - TX.

Минимальная программа для Energia

Задача минимум - отправлять комманду "AT" пока нам не ответят "OK". Это означает что мы синхронизировались по скорости передачи и можем отправлять более сложные команды.

int incomingByte = 0;

void setup(){
  Serial.begin(9600);
  pinMode(P1_6, OUTPUT);
  pinMode(P1_7, OUTPUT);
  digitalWrite(P1_6, LOW);
  digitalWrite(P1_7, LOW);
}

int isOK() {
  if (incomingByte == 'O') {
    incomingByte = Serial.read();
    if (incomingByte == 'K') {
      return 1;
    }
  }
  return 0;
}

void loop() {
  boolean ok=false;
  do {
    do {
      digitalWrite(P1_6, HIGH);
      Serial.println("AT");
      digitalWrite(P1_6, LOW);
      delay(500);
    } while (!Serial.available());
    incomingByte = Serial.read();

    // Skip garbage
    while(Serial.available() && incomingByte == 255)
      incomingByte = Serial.read();
    while(Serial.available()) {
      if (isOK())
        ok = true;
      else
        incomingByte = Serial.read();
    }
  } while (!ok);

  while(1);
}


Комментариев нет
Отправить комментарий