Перейти к содержанию
    

Не оживает радиомодуль HC-12 (UART) на SI4463

Прошу не пинаться, если задаю чаниковский вопрос, но ответа, за ближайшую неделю поисков по инету, я так и не нашел  (включая англоязычный инет и даже китайский)

Давеча приобрел сабж  - HC-12 (UART) на SI4463, прикрутил его к переходнику UART-USB, вошел в терминале, как положено и....
На любое нажатие любых клавиш, модуль выдает "ERROR".
Попытка набрать
"AT"-команду ни к чему не приводит.
Что бы не нажималось с клавиатуры (или даже посылалось пакетом) - на все ответ "ERROR".

Исключение английская буква "d" или русская буква "Ю" коды 0х3F (dec 63) или 0xDE (dec 222)
На "d" - просто повторяет этот символ в эхо ответе
А на 0xDE (dec 222) почему-то выдает "ОК+".
Есть еще пара кодов, на которые модуль просто никак не реагирует.

Никакие, положенные по документации, команды "AT" - модуль не жует. И вообще общаться отказывается.
Что я делаю неправильно ?

Изменено пользователем Rroma47

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, Pyku_He_oTTyda сказал:

А скорость?

Вывод S прижат к земле?

КОНЕЧНО !

На вход подается положенные 9600 8N1
А Set - уперт в землю.

Само собой, модуль просто не будет ни на что реагировать, если Set не притянуть к земле.
 

19 минут назад, x893 сказал:

А SET ?

 

Все, что показано на ролике и на страничке этого ролика я проделывал много раз.
И напрямую с компом (через UART-USB), и через Ардуино.

Ничего не помогает.

Такое ощущение, что модуль находится в каком-то странном режиме (типа как в спящем), но вывести его обратно никак не удается. На AT команды - не реагирует.

 

19 минут назад, x893 сказал:

А SET ?

 

Все, что показано на ролике и на страничке этого ролика я проделывал много раз.
И напрямую с компом (через UART-USB), и через Ардуино.

Ничего не помогает.

Такое ощущение, что модуль находится в каком-то странном режиме (типа как в спящем), но вывести его обратно никак не удается. На AT команды - не реагирует.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, x893 сказал:

Там есть режимы FU1... FU4

Насколько я понимаю, это режимы скорости радио-передачи.
Через них настраивается скорость передачи в радиоэфире, а заодно регулируется уровень потребления электроэнергии (актуально при использовании аккумуляторов или батареек).
 

На команндный режим и на режим работы терминала UART - это не влияет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему думаете что 9600? Лучше попробовать перебрать все скорости. Мои например при переходе в командный режим, работают на 38400.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, jcxz сказал:

Почему думаете что 9600? Лучше попробовать перебрать все скорости. Мои например при переходе в командный режим, работают на 38400.

Перебирал. Само собой перебирал. Чисто на шару. Вдруг заработает.
Но ответ приходит в 9600.
На терминале, при других скоростях просто ничего не отображается.
Подключался осциллографом и в двоичном режиме читал посылки от этого модуля (там всего-то пяток байтов) - все верно. Работает на 9600.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Rroma47 said:

Почему думаете что 9600?

Потому что у него на этой скорости "ERROR" выдаёт.

Остаётся питание. Попробуйте поставить конденсатор микрофарад на 1000-4700. Иногда помогает, особенно кто пытается запитаться по USB от ноута. Ещё нужно убедится, что в конце у вас 0x0D0A передаётся. Попробуйте только 0x0D передать. Если покупали на алиэкспрес,  то вероятность брака почти 100%.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа!
Прошу прощения за беспокойство и искренне благодарю тех кто проявил участие и отписался.
ОЖИЛО.

Прошивка HC-12_V2.4 - жуткая вещь.

Эта прошивка НЕ работает под терминалом и через UART-USB.
Дело в том, что терминал отправляет нажатия клавиш непосредственно в порт по мере нажатий их оператором.
Микропрограмма контроллера принимает очередной символ и если в течение какого-то в ней заданного интервала не приходит следующий символ - то идентифицирует ошибку и выдает "ERROR"
Для полноценной работы необходимо высылать AT-команды ПАКЕТОМ. Без временных разрывов. (на ютубе - полно роликов, где аналогичные модули с другой версией прошивок прекрасно работают из PuTTY)
Скетч на Ардуино как раз и делает именно это - ждет полную строку и после нажатия энтера - высылает ее в HC-12 целиком.
(те, кто работал с модемами и другими терминальными устройствами будут приятно удивлены - такой "странности" микропрограммы. Походу у китайцев закончилась оперативка в этом контроллере)

Далее.
В отличие от других прошивок (сам не тестировал, но на ю-тубе полно роликов) - для ЭТОЙ ВЕРСИИ прошивки, в конце строки должен стоят именно символ NL (новая строка)
Если не ошибаюсь, это код 0x0A.
Не возврат каретки. Не оба символа, как это принято во многих системах. А именно NL и никак иначе.

Ну и третье - это уж совсем китайский беспредел - в большинстве систем - AT команды являются регистронезависимы.
В ЭТОЙ ПРОШИВКЕ команды можно подавать ТОЛЬКО в верхнем английском регистре и никак иначе.

Несоблюдение хотя бы одного из перечисленных условий - приводит к описанному результату.

В инете временами встречаются описание подобных траблов, но за неделю поисков я не нашел решения.
Возможно кому-то этот опыт будет полезен.

Поэтому тему можно закрывать. Но удалять - нет смысла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прикольный баг. Я такого не замечал, но виндозным терминалом никогда не пользовался, работал в этом - https://digitalchip.ru/terminal-1-9b-rabotaem-s-com-portom/ и команды всегда вводил ТОЛЬКО большими буквами.

 

Зато могу поделиться другим багом - у меня 2 модуля, оба работают в режиме FU2. В этом режиме у модуля пониженное энергопотребление с прослушкой эфира. При этом куча ограничений - скорость только 4800 и какие-то задержки при передаче. Плюс ещё и длинные последовательности байт (по моим наблюдениям больше 10) не передаёт. Но мне этого оказалось достаточно.

Так вот, один из модулей при входе в командный режим (SET:=0) всегда включает скорость уарта 9600, другой то включит 9600, то так и остаётся на 4800. Пришлось сделать в прошивке проца хак - сперва он стучится в модуль по 4800, если тот не ответил - врубает 9600. Только после этого система стабильно заработала.

 

Процы у меня - один STM32F030, другой - STM32L152.

И ещё раздражает то, что невозможно переключить радиоканал без запоминания его в EEPROM управляющего STM8. Где-то попадалась статья, чуваки пытались поменять STM8 на какой-то STM32, но там, по-моему, дело ничем внятным не закончилось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...