вторник, 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. Спасибо, исправили! Слона то и не заметили :-)

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