вторник, 27 марта 2012 г.

IComSat GPRS Shield тонкости настройки.

IComSat GPRS Shield, работа через программный UART (библиотека SoftwareSerial), особенности Seeeduino Mega (Arduino Mega).

Cогласно http://arduino.cc/hu/Reference/SoftwareSerial библиотека SoftwareSerial не может работать на контактах, которые не поддерживают прерывания по изменению. На платах серии Mega ограниченное число контактов может работать с такими прерываниями (10,11,12,13,50,51,52, 53,62,63,64,65,66,67,68,69). Если хотите понять почему, смотрите на распиновке контроллера http://www.compcar.ru/forum/showthread.php?t=8604.
Таким образом мультиплексором на шилде переключать TXD бесполезно (кроме положений 0)    


Чтобы использовать программный UART:

   1. Из списка контактов, поддерживающих прерывания выберите контакт для приёма данных с шилда, например 13.

   2. Для передачи данных можно выбирать любой контакт 2-7 (0,1 заняты аппаратным UART). Например мы выбрали 2.

   3. Пропишите его в GSM_Shield.cpp. Найдите строчку и подправьте:
SoftwareSerial mySerial(13,2);  //rx, tx
Теперь мы получаем ответы шилда на 13-м контакте, а посылаем через 2. На шилде это наоборот TXD, RXD.

   4. Установите джампер мультиплексора RXD на 2 (в нашем примере). Проведите проводок от ряда контактов TXD шилда к контакту 13. Теперь пример работает (GSM_Shild.cpp).


4 комментария:

  1. В названии темы и в тексте сообщения нужно исправить на GPRS.

    ОтветитьУдалить
  2. IComSat GRPS Shield написано специально, так как много задавали вопросов по данному шилду, по работе через программный UART.

    ОтветитьУдалить
  3. Я про GRPS исправить на GPRS.

    ОтветитьУдалить
  4. Спасибо, исправили! Слона то и не заметили :-)

    ОтветитьУдалить