Jdy 40 модуль, отсутствует передача управляющих сигналов портов

Тема в разделе "Проводная и беспроводная связь", создана пользователем Yurrrch, 7 май 2023.

  1. Yurrrch

    Yurrrch Нуб

    Привет.
    Разбираюсь с модулем JDY-40 из функций которого мне требуется радиопередача замыкания канала порта первого модуля и приём замыкания вторым модулем.
    Проблема: не работает передача сигнала замыкания канала кнопкой.


    [​IMG]
    На рисунке слева передатчик, справа приёмник. Собрано по данной схеме из инструкции к модулю, за исключением количества каналов (у меня 1) и номинала резистора светодиода. Светодиод сверхяркий, поэтому R = 10кОм вместо 1к.
    Инструкция под рукой (ссылка)

    1. Для программирования модулей в соответствующие режимы С1, С4 используется макет с микропроцессором с одновременной подачей питания на модули и программированием через два UART интерфейса.

    2. Управление модулями АТ командами успешно, они мне отвечают, корректно настраиваются на С1 и С4, что индицируется отдельным светодиодом, подключённым к процессору, по принципу "количество миганий = режим модуля": А0 - 1 мигание, С0 - 2, С1 - 3 и т.п.), а текущий режим модуля проверяется соответствующим запросом к модулю АТ командой.
    Далее модули переводятся в рабочий режим установкой высокого уровня пина SET. Пин сна "CS" постоянно заземлён - модули не спят.

    Подключение кнопки к разным пинам порта, подвод к ним прямого отвода "земли" от источника питания - нет изменений. Осциллографом изменение напряжения пинов приёмника не детектируются, светодиод не зажигается. Свежие модули из упаковки аналогичны.

    3. Настроив оба модуля в режим А0 - полудуплексной передачи информации по UART, модули корректно срабатываются и тестовые байты по воздуху принимаются - фиксируется на пине ТХ приёмника осциллографом.
    А вот в режимах С1-С4 (передатчика-приёмника сигнала по портам) - не работает.

    4. Дополнительно ввёл перенастройку значений по-умолчанию идентификаторов и номера радиочастотного канала - задал свои и одинаковые (подпрограмма конфигурации одна, по условию выбирается только режим работы модуля). Не помогло.

    Есть ли идеи что модулям не нравится?

    Под спойлером подпрограмма конфигурации модулей на языке си.
    b_uart[0] = 'A'; //"AT+CLSS\r\n" команда режима работы модуля
    b_uart[1] = 'T';
    b_uart[2] = '+';
    b_uart[3] = 'C';
    b_uart[4] = 'L';
    b_uart[5] = 'S';
    b_uart[6] = 'S';
    #ifdef JDY_MODE_TRANSPARENT
    b_uart[7] = 'A';
    b_uart[8] = '0';
    #endif
    #ifdef JDY_MODE_C1C4
    b_uart[7] = 'C';
    if (side == ID_TSIDE) b_uart[8] = '1'; // РЕЖИМ С1 передачи без индикатора
    if (side == ID_RSIDE) b_uart[8] = '4'; // РЕЖИМ С4 приёма
    #endif
    b_uart[9] = '\r'; // r CR
    b_uart[10] = '\n'; // n LF
    UART_WriteBytes(side, b_uart, 11);

    delay_main(DLY_DREB);
    b_uart[0] = 'A';
    b_uart[1] = 'T';
    b_uart[2] = '+';
    b_uart[3] = 'R';
    b_uart[4] = 'F';
    b_uart[5] = 'I';
    b_uart[6] = 'D';
    b_uart[7] = '4';
    b_uart[8] = '4';
    b_uart[9] = '4';
    b_uart[10] = '4';
    b_uart[11] = '\r'; // r CR
    b_uart[12] = '\n'; // n LF
    UART_WriteBytes(side, b_uart, 13);

    delay_main(DLY_DREB);
    b_uart[0] = 'A';
    b_uart[1] = 'T';
    b_uart[2] = '+';
    b_uart[3] = 'D';
    b_uart[4] = 'V';
    b_uart[5] = 'I';
    b_uart[6] = 'D';
    b_uart[7] = '4';
    b_uart[8] = '4';
    b_uart[9] = '4';
    b_uart[10] = '4';
    b_uart[11] = '\r'; // r CR
    b_uart[12] = '\n'; // n LF
    UART_WriteBytes(side, b_uart, 13);

    delay_main(DLY_DREB);
    b_uart[0] = 'A';
    b_uart[1] = 'T';
    b_uart[2] = '+';
    b_uart[3] = 'R';
    b_uart[4] = 'F';
    b_uart[5] = 'C';
    b_uart[6] = '0';
    b_uart[7] = '4';
    b_uart[8] = '4';
    b_uart[9] = '\r'; // r CR
    b_uart[10] = '\n'; // n LF
    UART_WriteBytes(side, b_uart, 11);

    delay_main(DLY_DREB);
    b_uart[0] = 'A';
    b_uart[1] = 'T';
    b_uart[2] = '+';
    b_uart[3] = 'P';
    b_uart[4] = 'O';
    b_uart[5] = 'W';
    b_uart[6] = 'E';
    b_uart[7] = '3';
    b_uart[8] = '\r'; // r CR
    b_uart[9] = '\n'; // n LF
    UART_WriteBytes(side, b_uart, 10);

     

    Вложения:

    Последнее редактирование: 7 май 2023
  2. Yurrrch

    Yurrrch Нуб

    Разобрался с модулем.

    1) Снял пины сна "CS" обоих модулей с земли, объединил, завёл в процессор под управление. В режиме конфигурации модулей CS настраивается на выход, уровень низкий. В рабочем режиме С1-С4 CS настраивается на вход (с точки зрения модуля разрыв цепи). В рабочем режиме А0 CS остаётся выходом с низким уровнем.
    2) Пины "SET" - в режиме конфигурации модулей настраиваются на выход, уровень низкий. В рабочем режиме С1-С4 настраиваются на вход (разрыв). В рабочем режиме при А0 остаются выходом с высоким уровнем.
     
    Последнее редактирование: 8 май 2023