связь serial-портов в Меге
- Войдите на сайт для отправки комментариев
Пнд, 02/10/2017 - 23:34
Коллеги, добрый день!
бьюсь уже несколько недель, но победить не могу...
есть скечт для Меги, который работает с SIM800 (serial3, напрямую, без библиотек) и Nextion display (serial2, также без библиотек).
Вроде все вылизал, все работает во все стороны.
НО: при отключении USB от компьютера половина работать перестает, как будто меняется режим работы портов (.
Вплоть до того, что не может прчитать из sim800 уровень сигнала. Втыкаю USB кабель в комп - все сразу появляется.
В чем может быть дело?
PS: код большой, поэтому не уверен, что сейчас надо его выкладывать...
Питание
2А от отдельного источника.
Хотя мысль интересная...
от этого же источника Arduino запитана через коаксиальный разъем...
насколько я понимаю, питание через USB и коаксиал различаются...
увы... проверил, втыкая в USB Меги вместо компа 5,2V - проблема остается...
Волновое сопротивление коаксиального кабеля согласовано с емкостью Arduino?
мне не смешно )
ProstoAlex, никаких коаксиальных разъёмов на меге нет. Не разбираетесь в терминологии -просто сфотографируйте свои подключения. В любом случае ответ #1 правильный.
скорее всего, для ТС коаксиал == https://ru.aliexpress.com/item/2-1x5-5mm-DC-Power-Female-Plug-Jack-Male-Plug-Jack-Connector-Socket-Connector/32800872676.html?spm=a2g0v.10010108.1000023.5.11958300YMDWwy
да, под коаксиалом я имел в виду именно разъем питания (альтернативнй питанию через USB).
но я вчера сразу проверил - включил от блока питания через USB (через этот же БП подключен и Nextion display и SIM800).
увы, не помогло.
циллографом в шину питания ткни. Ктота туда вдохновенна срёть.
Земля ?
коллеги, вернее, так КОЛЛЕГИ!
благодаря вам решил (ну, или полнял куда копать) свою проблему!
перепробовал все на свете, связанное с питанием, и в один момент когда для питания SIM800 не хватало питания (это было без подключения компа), нажал на сброс ардуины - и, о, чудо - скетч заработал!
дальше путем измышлений пришел к тому, что по какой-то причине при подключении к компу ардуина медленнее стартует, и SIM800 успевает инициализироваться.
Сделал на старте 5 сек задержку - и все пошло!!!!!
Да, вы не дали верный совет, но вы навели на мысль.
спасибовам!!!!
Ну да, в этих ваших интернетах модно ждать выполнения команд GSM-модемом с помощью delay, поэтому все пляски с бубном и случаются. Я вам даже больше скажу - то, что вы дали задержку на 5 секунд - проблему не решит, вы просто поставили костыль, который ПОКА работает.
Единственно грамотный и расово верный подход - конечный автомат с событийным интерфейсом, который понимает, что сейчас творится с модемом. Никаких delay в этом случае - не требуется, однако - более высокие требования к квалификации исполнителя.
к сожалению, я хоть и связан с ИТ, ни к контроллерам, ни к программированию отношения не имею.
Поэтому рад, что хоть так решил проблему )
Ваш выложенный где-то код смотрел, но понял, что разбираться с моей квалификацией внем придется не одну сотню часов.)
еще комментарий, может, кому пригодится...
в общем, продолжались у меня глюки с SIM800. причем по всем признакам, были завязаны на другие модули программы - типа, если что-то еще раобтает - то SIM800 глючит.
И вот когда я готов был уже обвинять DIYMan в сглазе, я перенес свои 18b20 с 46 ноги на 9-ю.
И ВСЕ ЗАРАБОТАЛО!!!
что за глюк - непонятно.
Ардуинка от keyestudio (считается неплохой), нигде описания нежелательности каких-то ног для 1-wire не нашел...
(кроме того, что ноги типа 11-12 используются для software serial - это меня и натолкнуло)....
9 нога используется в какой-то библиотеке (virtualware или просто ware - не помню, внутренний генератор на этом пине). Встречался с такими же проблемами.
хм... не прочитал что это на Меге проблемы, у меня были на УНО
У меня, конечно, меги нет, но распиновку в интернете посмотреть это не помешало. #46 - это RX Serial1, как я понял. Не знаю, как он участвует в вашем скетче, но я бы призадумался над этим фактом.
что я знаю про пины:
про 46 вообще ни слова (кроме того, что это шим - но как это связано с Serial???)....
А, сорри, я не на те прямоугольнички смотрел: http://pmsciart.com/wp-content/uploads/2016/07/arduino-mega-pinout-diagram.png
в том-то и дело... народ обсуждает, что softserial не на всех пинах работает, и это документировано.
а вот про остальные я ничего не нашел.
питание-наводки на домерней плате и все прочее такое отсек.
Получается, или глюк платы (разводки) или экземпляра (типа коротыша) или одно из трех )
но проверил 3 раза - при включении 1wire на 46 pin с SIM800 идет мусор.