Прошивка MegaD-328 (релизы, обсуждения, предложения)

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
moxli
Сообщения: 72
Зарегистрирован: 28 фев 2012, 11:18

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение moxli » 30 янв 2014, 00:02

Андрей, на первой странице в двух разных сообщениях, Вы предоставили разные значения для Low-фьюза. На найденом в Интернете фьюз-калькуляторе, согласно указанным в сообщении параметрам, выходит первый из нижепредставленных. Но, для уточнения, подскажите, какой правильный:

Код: Выделить всё

Low: 0x62
или

Код: Выделить всё

Low: 0x60
Эти фьюз-биты подойдут для Atmega328-PU, стоящего на всех ревизиях Мега-девайса, или только на последних?

Andrey_B
Администратор
Сообщения: 5325
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 30 янв 2014, 00:18

0x62 - по умолчанию
0x60 - на всех ревизиях MegaD-328

moxli
Сообщения: 72
Зарегистрирован: 28 фев 2012, 11:18

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение moxli » 30 янв 2014, 00:41

AlexZ, хочу заметить, что megad-cfg.php работает только если в устройстве уже установлена новая прошивка 3.14 (ну и выше)
Andrey_B,
Как я понял из Вашего поста на первой странице, для добавления функции удаленной прошивки алгоритм такой:

Единожды для MegaD-328 ревизий 2.0-5.0:
1) Через программатор шьём последнюю прошивку(>=3.14);
2) Меняем фьюзы для старта с загрузчика(bootloader), который передаст управление устанавливаемой в пункте(4) прошивке;
3) Через программатор записываем в МК MegaD-328, программу загрузчика;
Записываем последнюю прошивку для MegaD-328 с удаленного компьютера:
4) Указаной командой, используя Ваш скрипт megad-cfg.php:

Код: Выделить всё

php megad-cfg.php --fw megad-328.hex -f
Вопрос. Выполняя пункт(4), MegaD-328, должна быть подключена к локальной сети? А если у меня 10 устройств MegaD-328 в локальной сети? Как скрипт определит, какое устройство шить?
Последний раз редактировалось moxli 30 янв 2014, 22:07, всего редактировалось 2 раза.

Andrey_B
Администратор
Сообщения: 5325
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 30 янв 2014, 11:47

moxli, если вы впервые прошиваете загрузчик, то пункт 1 можно пропустить.
Выполняя пункт (4) MegaD-328 должна быть подключена к сети. Если вы впервые прошиваете ваши устройства с помощью загрузчика, делайте это последовательно, а не все сразу.
Выполнение скрипта с ключом -f предназначено для первичного программирования устройства, когда прошивки в нем нет, а есть только загрузчик.
А когда загрузчик и прошивка загружены во все устройства, тогда перепрошивка выполняется с другими параметрами.
php megad-cfg.php --ip 192.168.0.14 --fw megad-328.hex -p sec
где мы явно указываем какое именно устройство перепрошиваем.

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Dron » 30 янв 2014, 17:41

Andrey_B писал(а):Dron, любопытно будет узнать - это неисправность или неправильные настройки роутера (если восстановить заводские настройки?) или есть какая-то особая причина.
Использую у себя различные коммутаторы, как управляемые, так и нет. Никогда ничего подобного не замечал. Подключать к роутерам не пробовал.
обнулил, не помогло. на днях попробую другую прошивку роутера. или поломался(

Andrey_B
Администратор
Сообщения: 5325
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 30 янв 2014, 17:49

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

moxli
Сообщения: 72
Зарегистрирован: 28 фев 2012, 11:18

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение moxli » 30 янв 2014, 21:16

Andrey_B,
То есть, возможно, исходя из ваших слов здесь, PHP-скрипт megad-cfg.php, в будущем, может быть адаптирован в MegaD-328 Web-интерфейс? Было бы отлично. Указываешь путь к прошивке, и апгрейдишь. Конечно же, если будете вносить изменения в консольную версию megad-cfg.php, было бы хорошо его с прошивками выкладывать.

Вобще, к примеру было бы замечательно, зайти на любую MegaD-328, через Web-интерфейс; получить список всех MegaD-328 в локалке, видя их IP-адреса и alias-имена, поле для ввода пути прошивки, пароля и кнопку "прошить". Или "прошить все", одинаковой прошивкой и если пароли на всех одинаковые. Но это так, идея. Конечно же её можно реализовать, но возможно позднее.
Последний раз редактировалось moxli 30 янв 2014, 22:04, всего редактировалось 4 раза.

moxli
Сообщения: 72
Зарегистрирован: 28 фев 2012, 11:18

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение moxli » 30 янв 2014, 21:42

Andrey_B и уважаемые ab-log.ru корифеи,

Пользуясь случаем, хотелось бы узнать, появится ли в будущем аппаратная реализация диммирования в исполнительных модулях MegaD-328 в готовом виде? Я понимаю, что это требует дополнительной обвязки и радиаторов на симисторы, что изменит форм-фактор исполнительных модулей. Здесь конечно же, возможны три варианта представления исполнительных модулей диммирования:

1. AC(двигатели, приводы, лампы),
2. DC(двигатели, приводы),
3. DC(светодиоды,светодиодные панели и ленты).


Для 1-го варианта потребуется реализовать фазовое пропускание AC для разных напряжений с разными частотами. Со 2-ым вариатном, для разных DC напряжений. А для 3-го варианта, виду, многообразия светодиодных лент и панелей, можно выбрать конкретные светодиоды или ленты. Светодиоды работают от DC адаптера через светодиодные драйверы. То есть, по-сути, подобный исполнительный модуль от MegaD-328, должен будет выполнять роль N-канального драйвера с ШИМ(широтно-импульсной модуляцией).

Но вот вопрос, возможно ли в конкретном обозримом будущем наладить выпуск исполнительных модулей согласно вышеуказаным 3-м пунктам? Может кто-то из обитателей форума, создающие MegaD-328-подобные устройства, уже планируют сделать это? Простите за небольшой off-topic.

Andrey_B
Администратор
Сообщения: 5325
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 30 янв 2014, 22:04

Я планирую интегрировать megad-cfg в MegaD-Panel. Тогда получится примерно то, о чем вы говорите.
Промышленный выпуск исполнительных модулей с поддержкой регулирования уровня мощности (диммерования), совместимых с данной платформой, планируется. Надеюсь, в обозримом будущем. Внимательно изучаю все предложения, спасибо.

plusQ
Сообщения: 115
Зарегистрирован: 01 фев 2013, 15:29
Контактная информация:

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение plusQ » 30 янв 2014, 22:15

такая реализация интересна,
Cам планирую реализовать димирование с помощью модулей S216S02 (SHARP, Zero Cross триак с оптической развязкой), в этой реализации не нравиться работа с ~220В, неизбежные шумы в сеть и пульсации света (хоть и не видны, но напрягает, имеется в виду применение светодиодных драйверов поддерживающих димирование триаком, таких счас полно)
Также рассматриваю применение светодиодных драйверов от Mean Well серии LDD-L или LDH-45, в LDH-45 есть аналоговое димирование, но мощность несколько большая, дороже и габаритнее

moxli
Сообщения: 72
Зарегистрирован: 28 фев 2012, 11:18

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение moxli » 30 янв 2014, 22:27

Я уже использую 1-Wire диммеры для AC и DC.
AC - для насоса, DC - для светодиодов, адаптировав вот такую подобную схему реализации драйвера как обвязки для управляющей микросхемы DS2890 в 1-Wire модуле. Но строю дом и там планирую оргинизовать систему управления как по 1-Wire, так и по Ethernet c помощью MegaD-328. Именно такая гибридная схема, в моём случае, будет более подходящая. Таким образом отследив недостатки реализованных обвязок вышеуказанных диммеров, хотелось бы не увидеть их в возможных реализациях исполнительных диммер-модулях MegaD-328.
Последний раз редактировалось moxli 30 янв 2014, 22:36, всего редактировалось 1 раз.

plusQ
Сообщения: 115
Зарегистрирован: 01 фев 2013, 15:29
Контактная информация:

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение plusQ » 30 янв 2014, 22:35

если использовать самодельный драйвер, то возможно применение DC-DC драйверов MP2481 или MP2483 с полной защитой от дурака, которые поддерживают аналоговое димирование
а последний MP2483 на ток 2,5А и напряжение 55В т.е. можно применять источник питания 48В, что дает возможность применять светодиодные модули на 40 вольт

ЗЫ почему я акцентирую на аналоговом димировании я могу пояснить, а имеено это не только пульсации света (да это спорный вопрос) но и в случае реализации схемы на стороне исполнительного устройства, а не непосредственно рядом со светодиодом, может убереч от многих проблем, таких кам шумы ШИМ димирования и принятие в расчет емкости и индуктивности линии проводки от драйвера до светодиода (я не шучу!)

moxli
Сообщения: 72
Зарегистрирован: 28 фев 2012, 11:18

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение moxli » 31 янв 2014, 03:52

Согласен

Andrey_B
Администратор
Сообщения: 5325
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 31 янв 2014, 12:20

Изменена команда, по которой устройства отвечают на сканирование ip-адреса для того, чтобы избежать конфликта при перепрошивке, когда в сети несколько устройств.
http://ab-log.ru/files/File/ip_manager3 ... _beta2.zip

Новая функция в скрипте megad-cfg
http://ab-log.ru/files/File/megad-cfg/megad-cfg.zip
Теперь прошить устройство можно командой
php megad-cfg.php --ip 192.168.0.14 -p sec -w
Ключ "-w" - Скачать автоматически с сайта ab-log последнюю скомпилированную прошивку и запрограммировать устройство
Если дополнительно указать ключ "-b" скрипт скачает последнюю бету.

В данный момент (пока в тестовом режиме) качается только beta, но в последствии -w (без -b) будет качать релиз.

Я не писал об этом, но стоит. В том случае, если в момент перепрошивки произошел сбой или если прошивка загрузилась некорректно, ничего страшного не случится. Программатор не нужен.
Нужно выключить устройство.
Затем необходимо запустить скрипт с ключом "-e". Вот так:
megad-cfg.php --fw megad-328.hex -f -e
или
megad-cfg.php -w -f -e

Скрипт отобразит "Connecting... "
Теперь включим устройство. Скрипт автоматически соединится с программой загрузчика и попытается перепрошить устройство заново.

Andrey_B
Администратор
Сообщения: 5325
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 31 янв 2014, 17:18

http://ab-log.ru/files/File/ip_manager3 ... _beta1.zip
Скомпилированная версия доступна через megad-cfg с ключами -w -b

В Action (и только в Action! В ответе сервера или в GET-запросе не работает) можно указать вот так: 7:1;p10;7:0
Это будет означать - включить порт 7, подождать 1 секунду, выключить порт 7
Цена деления - 1 = 0,1 секунды
Если в процессе паузы произошло срабатывание входа повторно, то выполнение сценария начинается с самого начала.

plusQ
Сообщения: 115
Зарегистрирован: 01 фев 2013, 15:29
Контактная информация:

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение plusQ » 31 янв 2014, 18:20

какой диапазон установки значений паузы?

Andrey_B
Администратор
Сообщения: 5325
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 31 янв 2014, 18:24

Теоретически до 65535, а это значит 6553 секунды
Практически из-за текущих ограничений поля Action (ведь после паузы должна стоять какая-то команда...) - 99 или почти 10 секунд.
Можно попробовать увеличить размер поля Action.

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение kod.begemot » 31 янв 2014, 22:23

Огромное спасибо за паузы!!! :) :)
Сейчас буду пробовать!

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Dron » 31 янв 2014, 23:33

присоединяюсь к благодарностям!! то, чего сильно не хватало... осталось только ШИМ с ловлей нуля сделать))))
кстати, а почему Вы отказались от GET паузы? трудно реализуемо? считаете избыточным?
... хотя за такой срок такой объём работы уже очень и очень круто. ещё раз спасибо, что прислушиваетесь к простым смертным =-)
Andrey_B писал(а):Практически из-за текущих ограничений поля Action (ведь после паузы должна стоять какая-то команда...) - 99 или почти 10 секунд.
т.е. для порта 13 я паузу не поставлю из-за длины поля Action? не знал про это ограничение...
не было нужды городить большие строки, но с паузой всё меняется...
в теории (вряд ли понадобится, но вдруг, если поле будет увеличено) 2 паузы в одной команде возможно?
поясняю, простейший пример: сейчас у меня сервер после выключения света в туалете (если он горел больше 20 сек, с мегой лишнее, можно обрабатывать в любом случае), то через 10 сек на 5 мин включает вытяжку. вот что бы такое же смогла отработать мега самостоятельно. а это АЖ 2 паузы. т.е. команда будет выглядеть как 2:0;р100;12:1;p3000;12:0

и есть ли возможность сброса последовательности? нууу.. кто-то зашёл в туалет))) хотя я уже придираюсь, это не обязательно.
Andrey_B писал(а): Если в процессе паузы произошло срабатывание входа повторно, то выполнение сценария начинается с самого начала.
идеальное решение, очередное спасибо!

Andrey_B
Администратор
Сообщения: 5325
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 01 фев 2014, 09:43

В текущий момент максимальный размер поля Action - 11 байт, но, думаю, его можно немного увеличить.
Две паузы в одной команде возможны.
Наиболее ценный ресурс МК в данной конфигурации - оперативная память, поэтому с GET-запросами вопрос. Сервер отправил команду, предполагая ее выполнение. Это команду целиком нужно поместить в оперативную память и держать ее там, пока она не выполнится. Для GET-запросов возможная длина команды значительно больше, чем для Action. А что если во время выполнения команды поступит вторая, а потом третья? Ведь все этим команды могут работать с разными портами. Сохранять все команды в памяти невозможно - ее для этих целей просто нет. Прерывать выполнение запущенной? Это может привести к очень нехорошим результатам, например, "подвисание" звука дверного звонка. С другой стороны, команды отправляет умное устройство, которое и само может выдерживать паузы и выдавать команды порциями. Учитывая вышесказанное, можно попытаться все-таки доделать реализацию пауз для GET-запросов с прерыванием выполнения в случае поступления новой команды, но пользователь/разработчик должен четко понимать к чему это все может привести.
Команду отмены выполнения сценария можно предусмотреть.

Ответить