Перейти к содержимому
Калькуляторы

Alexander_I

Пользователи
  • Публикации

    6
  • Зарегистрирован

  • Посещение

О Alexander_I

  • Звание
    Абитуриент
    Абитуриент

Информация

  • Пол
    Array

Город

  • Город
    Array

Посетители профиля

Блок посетителей профиля отключен и не будет отображаться другим пользователям

  1. А можно как-то узнать, с какой версии изменился вид веб-интерфейса? Перебирать все прошивки не хочется, а в списке изменений не нахожу ничего про изменение вида веб-интерфейса.
  2. Здравствуйте! С какой версии так сильно поменялся web-интерфейс? Все скриншоты на wiki и в документации приводятся в старом виде. Я обновил на рекомендуемую версию, и получил очень непривычный веб-интерфейс, неудобный. Почему неудобный, сразу приведу пример. В старом интерфейсе сверху отображались порты, можно было ткнуть на любой и получить внизу статистику этого порта. Ткнуть ещё раз - получить свежую статистику. В новом интерфейсе "Port monitoring" внизу страницы (на 1366х768 его и не видно, пока не прокрутишь), и при нажатии на порт открывается модальное окно, изменить размер его нельзя, можно только свернуть и развернуть, а чтобы обновить информацию в нём, нужно его закрыть и опять нажать на порт, и проскроллить до "input packets", например, если я наблюдаю за этим параметром. Также, например, Log view - я так и не смог увидеть через web (рекомендованная прошивка для S2965-8T). Это только пара примеров. Я всегда пользовался и терминалом, и веб-интерфейсом, в каждом виде доступа есть свои преимущества. Новый же web... не располагает к его использованию. И ещё, поправьте https://data.nag.wiki/, при выводе длинных имён файлов (более 50 символов) обрезает их, не видно версии. Спасибо.
  3. А вот прошивка под более правильный кварц (11.0592) не помешала бы! А то скорости только до 19200 понятно почему, но ведь пару раз паяльником ткнуть - и можно расширять список до 230400.
  4. Если я правильно понял вопрос.. Что, если попробовать HW Virtual Serial Port 3.1.2? (http://www.hw-group.com/products/hw_vsp/index_en.html) На вкладке Virtual Serial Port указать IP устройства и порт 50. Везде выключить NVT. По-моему, должно работать. Не пробовал, попробую - отпишусь. UPD: Попробовал, работает. Связка: счетчик CE102R5145AK, ERD-3.1 с прошивкой SNR-ETH-SERIAL-1.0, HW Virtual Serial Port 3.1.2 и AdminTools 3.3b (программа для работы со счетчиками Энергомера, http://www.energomera.ru/software/AdminTools).
  5. Спасибо, не откажусь, пригодится. Да, на ERD-3.0 этот софт тоже можно применить, заодно значительно увеличить функционал (стОит заглянуть в "make menuconfig", чтобы оценить, что ещё можно попытаться прикрутить). Для этого в проекте нужно сменить тип микроконтроллера, указать правильную тактовую частоту и правильное назначение портов ввода-вывода. Однако, ERD-2.0 вместе с дополнительной платкой всё-таки самое дешевое решение поставленной задачи (конвертор) из тех, что я вижу. Конечно, не самое лучшее.
  6. Прошивка позволяет использовать ERD-2.0 в качестве конвертора ethernet-RS485 (можно RS232 полудуплексом, без контроля, только TX и RX). Для работы устройства в этой роли требуется простенькая "дочерняя плата" с приемопередатчиком RS485 (RS232). Дочерняя плата подключается к разъемам J6 и J7, используя ноги TXD(31), RXD(30) и (для RS485) SDA(27) микроконтроллера ATmega328 (нумерация ног приведена для корпуса 32TQFP), а также землю и входное питание устройства. Приемопередатчик выбран ST485EBDR, дешёвый и с защитой от статики. Можно взять любой другой пятивольтовый. Питание на дочерней плате на всякий случай гладится стабилизатором с низким падением напряжения (IL2931AZ-5.0). При питании самого устройства пятью вольтами такая схема может выглядеть несколько по-идиотски (если не вовсе неправильной), но в наших условиях эксплуатации решение является оправданным (у нас напряжение питания чуть выше и менее стабильно, чем хотелось бы). Можно попробовать использовать трёхвольтовый приемопередатчик RS485 с соответствующим стабилизатором, тогда логика схематики станет на место, но цена "дочерней платы" вырастет, скорее всего, в разы. А в нашем случае вроде всё работает пока без нареканий. Из не очень приятных особенностей следует отметить, что стандартные скорости обмена получаются с погрешностями, т.к. используется внутренний тактовый генератор на частоте 8МГц. (Таблица с погрешностями для стандартных baudrate при тактовой 8МГц есть в даташите микроконтроллера). До 38400 погрешности получаются в пределах нормы для нормальной работы, и, кроме того, есть возможность программно менять параметр OSCCAL для корректировки тактовой частоты контроллера. В качестве основы взят (брезгливо и с омерзением) проект ethersex (http://www.ethersex.de/) и доработан до необходимого функционала. Выкладываю архив как есть, со всей кучей файлов, не очищая (ethersex2.zip). При проблемах с компиляцией можно использовать готовую прошивку: файлы ethersex.hex или ethersex.bin, которые также есть в отдельном файле ethersex.zip. Ещё при необходимости можно исправлять дефолтный MAC-адрес устройства прямо в .bin файле прошивки, здесь он находится по адресу с 0x98 по 0x9d (байты AC DE 48 96 00 00). Собирается с помощью avr-gcc под линуксом. В текущей конфигурации занимает более 99% флеша atmega328. Если сделать "make clean; make", то, вероятно, уже не поместится: видимо, размер прошивки зависит от последовательности сборки. Мне случайно удалось скомпилировать так, что уместилось - сначала выключил что-то (не помню) в меню конфигурации (make menuconfig), собрал (make), затем обратно включил это что-то, и снова собрал (make). Для уменьшения размера прошивки всегда можно просто совсем отключить что-то ненужное в конфигурации. При прошивке биты конфигурации (fuse bits) микроконтроллера ATmega328 следует установить следующим образом: Extended Fuse Byte: 0xFF (11111111). (заводская настройка) Fuse High Byte: 0xD9 (11011001). (заводская настройка) Fuse Low Byte: 0xE2 (11100010). (относительно заводской настройки выключен CKDIV8) В текущей конфигурации устройство по умолчанию имеет сетевые настройки: IP 192.168.15.20, маску 255.255.255.0, шлюз 192.168.15.10, для авторизации имя admin, пароль admin. При включении питания моргает светодиодом и начинает работать (для проверки пингуем). Если при включении удерживать кнопку, то мигает светодиодом медленнее, и после отпускания кнопки сбрасывает всю конфигурацию в значение по умолчанию (в том числе ip и пароль). Для конфигурации прошитого устройства лезем на него телнетом на порт 2701. Там отвечает интерфейс ECMD. Без авторизации устройство будет отвечать "authentification required". Для входа потребуется строка вида "auth <имя> <пароль>", то есть "auth admin admin". Устройство должно ответить "authentification successful". После этого можно сказать "help" для просмотра краткого списка доступных команд. К сожалению, описания команд и их синтаксиса мы здесь не увидим, и они не документированы (ethersex очень мало документирован). Поэтому я приведу краткое описание того, с чем разобрался. fuse - показать биты конфигурации микроконтроллера. osccal [XX] - показать/установить байт калибровки встроенного тактового генератора. Для чтения: просто "osccal", для изменения: добавить шестнадцатиричное значение в виде "osccal 8E". osccal w - сохранить байт калибровки в EEPROM (впоследствии считывается и устанавливается при каждом старте). hostname - показать имя устройства. eer <ADDR> <LENGTH> - читать <LENGTH> байт из адреса <ADDR> после блока конфигурации в EEPROM. Адрес и длина в десятичном виде (например, "eer 752 10" читает 10 байт, начиная с 752-го после массива конфигурации). Максимальная длина 25 байт. eew <ADDR> <HEXBYTES> - сохранить данные в EEPROM после массива конфигурации. Адрес в десятичном виде, данные в шестнадцатиричном, например: "eew 752 1122335588AAFFFF00" пишет девять байт. reset - осуществить перезагрузку микроконтроллера. wdreset - Go into endless loop to trigger a watchdog timeout. Перезагрузка посредством watchdog. pam <USER> <PASSWORD> - установить имя пользователя и пароль (в текущей конфигурации длина имени и пароля до 16 символов). io - работа с портами ввода-вывода. Порты нумеруются от 0 до 2 (соответствие портам контроллера: 0 - PB, 1 - PC, 2 - PD). Далее чуть подробнее, но для понимания потребуется осознание даташита на микроконтроллер в части портов ввода-вывода: io set ddr <PORTNUM> <HEXVALUE> [MASK] - Set the DDR of port PORTNUM to VALUE (possibly using the provided MASK). io get ddr <PORTNUM> - Display the current value of the DDR PORTNUM. io set port <NUM> <HEXVALUE> [MASK] - Set the PORT NUM to VALUE (possibly using the provided MASK). io get port <NUM> - Display the current value of the PORT NUM. io get pin <PORTNUM> - Display the current value of the PIN-register of the port PORTNUM. io get mask <PORTNUM> - Display the mask of the port PORTNUM. Пример чтения из порта D, c отпущенной кнопкой: io get pin 2 port 2: 0x1b с нажатой кнопкой: io get pin 2 port 2: 0x0b Чтение из порта B, без подачи напряжения на вход контроля и с подачей: io get pin 0 port 0: 0xcf io get pin 0 port 0: 0x4f adc get [CHANNEL] - получить значение из канала CHANNEL АЦП. Если номер канала не указан, выдает весь набор. adc vget [CHANNEL] - получить значение АЦП в вольтах из канала CHANNEL, или весь набор. adc vref [VOLTAGE] - получить/установить значение опорного напряжения АЦП, в милливольтах. mac [xx:xx:xx:xx:xx:xx] - получить/установить MAC-адрес устройства. 1w list - получить список присоединенных устройств OneWire. 1w get <DEVICE> - получить значение от OneWire устройства с идентификатором DEVICE. 1w convert <DEVICE> - инициировать АЦП преобразование OneWire устройства с идентификатором DEVICE или всех. 1w name set <ID> <DEVICE> <NAME> 1w name clear ID 1w name list 1w name save - команды для назначения имён устройствам OneWire и сохранения их в EEPROM. В текущей конфигурации ID в диапазоне от 0 до 3. ipstats - вывод статистики порта ethernet. ip [iP] - получить/установить значение IP-адреса устройства. netmask [MASK] - получить/установить значение сетевой маски. gw [iP] - получить/установить значение сетевого шлюза устройства. yport stats - вывод статистики асинхронного порта. yport baud [bAUDRATE] - получить/установить скорость обмена асинхронного порта. yport mode [MODE] - получить/установить режим обмена асинхронного порта. MODE в виде "8N1" означает длину символа 8 бит, без четности, один стоп. Длина символа может быть от 5 до 8, четность может быть "N", "E" или "O" (без четности, четность, нечетность), число стоповых бит - 1 или 2. help - вывод списка поддерживаемых команд. version - вывод какой-то версии софта. eeprom reinit - инициализация конфигурации значениями по умолчанию (то же, что и запуск с нажатой кнопкой). Теперь о работе устройства в режиме удаленного COM-порта. Под Windows используется бесплатная программа HW Virtual Serial Port 3.1.2 (www.hw-group.com). Для связи с устройством на вкладке "Virtual Serial Port" следует указывать IP-адрес устройства и порт 7970. На вкладке "Settings" нужно выключить "NVT enabled". В среде Unix-систем можно попробовать socat (socat PTY,link=/dev/YPort TCP:192.168.15.20:7970) или что-нибудь подобное (я пока не пробовал, планирую пользоваться сырым телнетом). Размер буфера 192 байта, если это где-то важно. Ещё, при попытке общаться дуплексом данные могут теряться. Но, собственно, RS485 - полудуплескный интерфейс. Применяем эту конструкцию для удаленного доступа к счетчикам электрической энергии. ethersex.zip ethersex2.zip