Gprs shild v3 куча проблем и вопросов.

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем n1x0n, 6 мар 2020.

  1. n1x0n

    n1x0n Нерд

    1) То что шилд не хочет стабильно работать с библиотекой амперки, как я понял все уже смирились..
    При условии подключенного дополнительного питания 12в 1а, и попытках загрузить классический скетч из документации:
    Код (Javascript):
    var sim = require('@amperka/Sim900r').connect();
    sim.powerOn();
    sim.smsSend("+79160001122", "hello", function(error){
      console.log(error);
    });

    Модуль то пишет ошибку cmd error, то disconnect, то снова коннектится и отправляет смс, а потом отправляет много пустых смс.
    В общем не работает. Это будет правильная характеристика его поведения.

    Далее я нашел подобную тему и сообщение модератора форума от 2016 года:

    Теперь вопросы:
    Код (Javascript):
    var sim = require('@amperka/Sim900r').connect({powerPin : P9});
    Первый вопрос, почему powerPin : P9?
    В документации http://wiki.amperka.ru/js:gprs-shield powerPin это P2.
    Это связано с старой версией шилда?
    Второй вопрос код приведенный из библиотеки espruino:
    Код (Javascript):
    Serial3.setup(9600,{ rx: P0, tx : P1 });
    Почему rx: P0, tx : P1 если на плате наоборот rx: P1, tx : P0, это видно и на изображении.

    [​IMG]
    В документации противоречия самим себе.В самом начале:
    Далее в тексте TX уже 1 пин а не 0, вобщем что пишем не проверяем..
    на изображении видно что RX=1 и TX=0 так же как и на само плате, но если в скетче указать как это изображено на плате - ничего не работает! вот пример:
    Если я в скетче библиотеки espruino указываю rx: P1, tx : P0 так изображено на плате и в документации:
    Код (Javascript):
    Serial3.setup(9600,{ rx: P1, tx : P0 });
    вылазит ошибка
    Код (Javascript):
    >ERROR: Pin B10 is not capable of USART3 RX
    Suitable pins are:
    B11 C11
    Если же я ставлю вопреки тому что пишут в документации и вопреки тому что написано на само плате rx: P0, tx : P1:
    Код (Javascript):
    Serial3.setup(9600,{ rx: P0, tx : P1 });
    Ошибок не возникает все работает.

    Следущее:

    Код (Javascript):
    var gprs =require('SIM900').connect(Serial3,P9,function(err){
    Откуда этот powerЗin (P9)?
    Ставлю P2 как в документации вылетает disconnect
    Меняю на P9 никаких проблем.

    Если указать powerPin9 и rx(P0) tx(P1) что противоречит документации и маркировкам на плате - библиотека от espruino отправляет смс нормально.
    При подключении библиотеки gprs отрабатываю все методы( gprs.getVersion и др) НО при попытке присоедениться к интернету методом gprs.connect долго думает потом уходит в disconnect
    Код (Javascript):
    var gprs =require('SIM900').connect(Serial3, P9 ,function(err){

      if (err) throw err;


      gprs.init(function(){
        console.log("Initialised!GPRS");

       gprs.connect('internet', 'gdata', 'gdata', function(err) {
        if (err) throw err;
          console.log('internet', err);
         gprs.debug();
           http.get("http://www.pur3.co.uk/hello.txt", function(res) {
            console.log("Response: ",res);
            res.on('data', function(d) {
              console.log("--->"+d);
            });
          });
        });


       gprs.getVersion(function(err, version){
         if (err) throw err;
         console.log(version);
        });



    });
    });
     
    В чем можеь быть проблема с disconnect ?
    Нашел примечание в документации библиотеки gprs от espruino
    Хорошо, если этот disconnect связан с бп почему тогда не подходить бп заявленный в документации к шилду от амперки 12в 1а.

    Почему разняться данные пинов в документации и на самой плате и в библиотеках...
    Может быть именно поээтому не работают библиотеки от амперки и модуль в целом?

    Что скажете, что посоветуете?
     
    Последнее редактирование: 7 мар 2020
  2. Daniil

    Daniil Гуру

    Про Rx и Тх
    Rx - приемник, Тх - передатчик. Где что обозначают на платах не всегда ясно. Когда нужно соединить 2 устройства, то нужно соединить передатчик одного с приёмником другого и аналогично 2-ю линию. И тут появляется путаница. Что подписывают на плате? Rx/Tx самого устройства или подключение другого устройства, соответственно, при настройке нужно указать какие пины - самого устройства или подключаемого? Самым простым ответом на вопрос будет являться чтение дашиков с установкой определения где приемники и передатчики у используемых устройств и документации библиотеки - где какие пины указываются.
    С JS не работал, поэтому больше не подскажу.
     
    Последнее редактирование: 7 мар 2020
    SergeiL нравится это.
  3. n1x0n

    n1x0n Нерд

    Ну я понял, но получается мне нужно сидеть и делать работу за разработчиков этого шилда.. Просто какой тогда смысл покупать этот шилд за 3000р если он корректно не работает, по крайней мере с iskra js, я мог купить шилд с алиэкспесс, за другие деньги и с таким же успехом работать через библиотеки espruino, брал специально шилд амперки тк русская библиотека, нормальное описание, да и в целом железки амперки всегда работали без особых проблем.. Но по факту ничего не работает.
     
  4. Daniil

    Daniil Гуру

    А это читали? вот.
    Почитал я про сериал и powerPin - мне кажется, что вы придираетесь. Да, первый опыт, незнакомые термины - понимаю. Но если хотите агрессивно нападать, то приводите еще схемы, а не словесное описание, а то информации не хватает.
     
    Последнее редактирование: 8 мар 2020
  5. n1x0n

    n1x0n Нерд

    Мне просто хочется уже разобраться в причине проблем работы этого модуля ,или библиотеки. Но судя по тому что и библиотека espruino работает глично видимо дело не только в библиотеках. Схемы я не приведу я не настолько в этом разбираюсь. У меня задача была приобрести ШИЛД(это удобное модульное решение под ключ) Настроить его по документации и работать.
    В чем основные вопросы. Это в пинах rx и tx почему при настройке даже стандартного Serial3 он их не принимает? Куда мне смотреть когда я делаю настройку порта? на плату ? в документацию? на плате rx соединен джампером с портом p1 tx с P0 указываю их при настройке:
    Код (Javascript):

    Serial3.setup(115200, { rx: P1, tx : P0 });
     
    вылазит ошибка:
    Код (Javascript):
    >ERROR: Pin B10 is not capable of USART3 RX
    Suitable pins are:
    B11 C11
    Что тогда писать туда, куда смотреть?
    Пока это наверно основной вопрос..
    С пином питания P9 более менее понятно, это наверно был пин питания в старой ревизии шилда.

    Так же остается открытым вопрос по питанию, у меня подключен 12в 1а, модуль вылетает в disconnect
     
    Последнее редактирование: 8 мар 2020
  6. Daniil

    Daniil Гуру

    на все и сразу.
    Еще раз, у вас есть пины rx и tx на шилде, у вас есть пины rx и tx на программируемой плате (я не знаю какая у вас). Вам нужно соединить передатчик одной с приемником другого и запрограммировать их пины rx и tx на ардуинке их как serial. При этом в функции пины нужно указать строго как они реализованы в микросхеме.
    Я вам ссылку уже кинул. А фразу
    я не понимаю. На какой плате? Зачем вы их накрест перемкнули, если речь про гпрс-шилд?
     
  7. n1x0n

    n1x0n Нерд

    у меня iskra js и GPRS Shild v3. шилд я одеваю прямо на искру, единственное что я делаю это меняю джампер питания на искре на vin-vin3 чтобы подключить сторонний бп 12в 1а.
    На gprs шилде по умолчанию стоят 4 джампера(tx:0,rx:1,pk:2,st:3) которые соеденяют управляющие пины с пинами платы.Их можно увидеть на фото:
    [​IMG]
    Если у контроллера эти пины заняты чем-то другим как я понял можно снять джампер и перекинут перемычками на любой другой пин, вот пример.
    [​IMG]

    На моей плате iskra js как я понимаю ничего перекидывать ненужно:
     
  8. Daniil

    Daniil Гуру

    Спасибо, за конкретику.
    На искре rx (приемник) висит на нулевом пине (на картинке подписано).
    На gprs, при наличи джампера, на 0-м пине tx (передатчик).
    Когда вы одеваете gprs на искру вы соединяете нулевые пины (приемник с передатчиком)
    Далее, в программе вы должны сказать искре, чтобы она работала с нулевым пином как с приемником, т.е. Rx (как подписано на плате искры). Как Tx этот пин работать не умеет.
    Аналогичные рассуждения с пином 1.

    Проблема в том, что программирование микроконтроллеров должно учитывать схемотехнику. МК состоит из функциональных блоков, которые можно подключать к пинам. У каждого пина есть свой, строго ограниченный, набор блоков. У разных пинов этот набор может отличаться. В используемом МК на искре есть блок, который можно использовать как UART. Приемник (rx) этого блока выведен на 0-й пин, а передатчик (tx) на 1-й.
     
  9. Daniil

    Daniil Гуру

    У них в примерах есть "умная" розетка. Там используется БП 5В=1А, хотя в описании шилда говорят о 2А с от 7 до 12 В. Тут я ничего не подскажу, могу посоветовать подобрать более мощный БП.
    Да и powerPin тоже что-то странное. Если перемычка на Р2, то с Р2 и должно работать.
    Модулей таких нет, боюсь не помогу. Можно попробовать позвонить в саму амперку или написать письмо по обратной связи. Помогают.
     
  10. n1x0n

    n1x0n Нерд

    Спасибо за развернутый ответ с tx и rx, вопрос тогда к разработчикам шилда зачем устроили путаницу с пинами rx и tx, ведь и на обычной ардуино rx тоже висит на 0 пине. Документация для шилда для неопытных людей создает сильную путаницу. С powerPin 2 вроде разобрался все более менее нормально..
    С блоком питания - надо пробовать 2-3 амперные 7-12в Заявленный к ШИЛДУ по ссылке в документации 12в-1а не подходит. Пробовал подключать 5в (2а) через vin3-v5 тоже не подходит. При подключении gprs уходит в disconnect и перезагрузку.
     
  11. Daniil

    Daniil Гуру

    Ну почему же путаница? На платах указывается что находится у целевого мк на этом пине.
    У искры приемник, у шилда передатчик. При соединении приемник соединяется с передатчиком.
    Другими словами у ардуины (искра, нео, уно...) всегда будет rx на 0, а у шилдов всегда tx на 0. Это нужно для того, чтобы при соединении пины всегда совпадали. То есть это не путаница, а честно сообщают где-что, но при этом, т.к. шилд сверху, то видно только его обозначение, а оно инвертировано относительно ардуины, что не удобно... Поэтому стараются писать со всех сторон.
    Мне кажется, стоит им позвонить/написать если не получится с более мощным бп.
     
  12. Airbus

    Airbus Радиохулиган Модератор

    Путаницы никакой нет.Джамперы подключают шилд либо к аппаратному Serial либо к програмному.И китайские также устроены.Везде в примерах програмные а я использую аппаратный.
     
  13. SergeiL

    SergeiL Оракул Модератор

    С Амперковским GPRS Shied-ом проблем нет.
    С Амперковкой Мегой он с декабря отлично работает.
    С JS не пробовал.
     
  14. ктоб на него схему выложил.
     
  15. SergeiL

    SergeiL Оракул Модератор

    Так а там все по даташиту,
    Есть особенности подключения питания (сначала внешнее, потом USB, через активный USB хаб) а так все стандартно.
     
  16. Airbus

    Airbus Радиохулиган Модератор

    Зачем тебе?У тебя свои устройства лучше Амперковских
     
  17. n1x0n

    n1x0n Нерд

    Более мощное питание(7в 3а, 7в-5а,12в-2а,12в-3а) не подошло.. Методом тыка в мастеркой амперки, пробовали другую искру и другой шилд, эффект один и тот же, пробовал другие пк, все тоже самое - выполнение скетча и дисконнект.
    Соответственно если загрузить прошивку то уходит в циклическое выполнение скетча и дисконнект.

    Однажды по какой-то неведомой причине он начал рабоать и стабильно работал минут 15, отправлял смс, отправлял http запросы, и принимал ответы, показал ip. Но при очередном запросе начал снова уходить в disconnect.

    Потом начал ковырять библиотеки, и ат команды и пришел к выводу что проблема происходит на уровне настройки сериал порта.

    Я удалил весь код кроме:

    Код (Javascript):
    Serial3.setup(9600, { rx: P0, tx : P1 });
    console.log('setup port!');
    При выполнении такого простого скетча, он отрабатывает в консоле "setup port!" и уходит в disconnect.

    Я снимаю шилд с платы, запускаю тот же скетч:
    Код (Javascript):

    Serial3.setup(9600, { rx: P0, tx : P1 });
    console.log('setup port!');
    отрабатывает "setup port!" и никаких проблем с disconnect не возникает, одеваю шилд, запускаю и снова отрабатывает "setup port!" и уходит в disconnect.

    Может есть какие идеи?
     
  18. n1x0n

    n1x0n Нерд

    Так же пробовал подключение через активный usb хаб как писали выше, переустановку драйвера stm32, переброс пинов. Пробовал другой компьютер, правда тоже на win10, другую искру js и другой gprs шилд v3. На windows 10 на разных компьютерах разные искры и шилды ведут себя одинаково - Disconnect через 5 скунд после настройки serial3.
     
  19. Daniil

    Daniil Гуру

    Выложите весь код, так, может кто с помощью и найдется по-быстрее
     
  20. n1x0n

    n1x0n Нерд

    Код (Javascript):
    Serial3.setup(9600, { rx: P0, tx : P1 });

    console.log("Connecting to SIM900 module");
    var gprs = require('SIM900').connect(Serial3, P2, function(err) {
      if (err) throw err;
      gprs.connect('internet', '', '', function(err) {
        if (err) throw err;
        gprs.getIP(function(err, ip) {
          if (err) throw err;
          console.log('IP:' + ip);
          require("http").get("http://www.pur3.co.uk/hello.txt", function(res) {
            console.log("Response: ",res);
            res.on('data', function(d) {
              console.log("--->"+d);
            });
          });
        });
      });
    });
    Идея в том что через 4 секунды после Serial3.setup().. С подключенным gprs шилдом v3. происходит disconnect espruino web ide. (OS Win10) Библиотеки из репозитория edpruino