SmartLiving.ru

Обсуждение проекта
 
Текущее время: Вт ноя 21, 2017 10:19 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 203 ]  На страницу Пред.  1 ... 14, 15, 16, 17, 18, 19, 20, 21  След.
Автор Сообщение
 Заголовок сообщения: Re: ПЛК (Arduino Mega 2560 + W5100)
СообщениеДобавлено: Ср сен 13, 2017 10:10 am 
Не в сети

Зарегистрирован: Сб мар 12, 2016 6:33 pm
Сообщения: 148
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Кстати есть куча готовых устройств, не думаю, что есть особый смысл делать свое железо, если не собираетесь производить устройства хотя бы десятками.


Изображение
$169 Industrial-PLC-Open-Source-Arduino-Mega-2560-DIN-Rail-Enclosure-LAN-WiFi-RTC

[Показать] Скрытый текст:
Изображение

$56 Arduino Industrial STM32 STM32F103 Maple Analog inputs 24V Arduino PLC OLED 0.96
[Показать] Скрытый текст:
Изображение

Ну Controllino от €115 до €265, эти подороже, но и посерьезнее реализация.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega 2560 + W5100)
СообщениеДобавлено: Ср сен 13, 2017 11:06 am 
Не в сети
Аватара пользователя

Зарегистрирован: Вс июл 26, 2015 9:21 pm
Сообщения: 191
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Да, я собираюсь производить десятками. Ссылки хорошие, посмотрю на устройства.

Только мне нужно кнопочное поле и индикатор для управления устройством через иерархическое меню. Я пока не находил нужного мне вида конструктива, а Controllino - это фантик просто бессмысленный.

Я планирую вот такой вид, т.к. к нему у меня уже и софт практически есть готовый.


Вложения:
2017-09-13_13-01-36.png
2017-09-13_13-01-36.png [ 273.32 КБ | Просмотров: 539 ]

_________________
Россия навсегда!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega 2560 + W5100)
СообщениеДобавлено: Ср сен 13, 2017 12:35 pm 
Не в сети

Зарегистрирован: Пт янв 22, 2016 10:08 am
Сообщения: 435
Благодарил (а): 2 раз.
Поблагодарили: 26 раз.
запрещено исполнение команд LPM и SPM в секции приложения
я имел ввиду что второй загрузчик помещается вместе с основной программой в конце пространства памяти.

Цитата:
Нужно ещё отделить модуль CPU от остального, чтобы я потом мог безболезненно перейти на arm, заменив плату CPU.
сделайте взаимодействие с аппаратной частью через HAL,когда вам будет нужен другой процессор заменяете HAL и все будет работать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega 2560 + W5100)
СообщениеДобавлено: Ср сен 13, 2017 1:48 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс июл 26, 2015 9:21 pm
Сообщения: 191
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Со вторыми загрузчиками не всё так просто. Нужно предусмотреть удобную логику совместной их работы в разных ситуациях. Дело в том, что порядок их расположения в boot секции влияет на поведение платы в случае отсутствия программы и при наличии конфигурационного файла на карте. Сами вторые загрузчики тоже имеют свою логику и нужно тестировать разные варианты их поведения. Например, Arduino загрузчик выполняет только одну операцию и переходит на запуск программы. Это неудобно при работе с ним из AVR Studio, так как утилита прошивки там не умеет сбрасывать мк перед своей работой (переходе между вкладками). В общем, нужен тюнинг всей этой загрузочной системы.

Хочу ещё свой загрузчик в IAR'e пересобрать, т.к. он ровно в 4096 байт укладывается для AVR GCC, а мне нужна ещё небольшая логика (указать адрес для прошиваемого файла).

А пока разбираюсь с примерами нативной работы с W5100.

_________________
Россия навсегда!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega 2560 + W5100)
СообщениеДобавлено: Ср сен 13, 2017 2:48 pm 
Не в сети

Зарегистрирован: Пт янв 22, 2016 10:08 am
Сообщения: 435
Благодарил (а): 2 раз.
Поблагодарили: 26 раз.
Цитата:
т.к. он ровно в 4096 байт укладывается
а почему так много? у вас ведь стек протоколов аппаратный,с enc занимает меньше хотя там стек программный.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega 2560 + W5100)
СообщениеДобавлено: Ср сен 13, 2017 3:30 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс июл 26, 2015 9:21 pm
Сообщения: 191
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Мой загрузчик состоит из двух частей: работа с файловой системой FAT32 (PetitFS) и операции записи во флеш (стандартные из avr/boot.h). Не встречал пока библиотек, которые поддерживали бы FAT32 с меньшим размером кода.
Это в основной части. Ещё есть управление светодиодом программирования и чтение конфигурационного файла. Также есть проверки наличия кода перед переходом на него. Не так просто оказалось найти C инструкцию для дальнего перехода (так и не нашёл, сделал асм вставку).

Приберусь в исходниках, выложу на github.

_________________
Россия навсегда!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega 2560 + W5100)
СообщениеДобавлено: Ср сен 13, 2017 7:28 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс июл 26, 2015 9:21 pm
Сообщения: 191
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Назовём загрузчик uniboot. Актуальное описание нужно смотреть в исходниках на svn.

[Показать] Скрытый текст: uniboot
Код:
Название:   Загрузчикиспользующий sd-карту
Автор
:      Вячеслав Мезенцев <viacheslavmezentsev@ya.ru>
Плата:      Arduino Mega2560
Лицензия
:   GNU General Public License
Дата
:       11 Сентября 2017
Компилятор
AVR GCC

Описание
:
Загрузчик позволяет загружать программу во флеш мкиспользуя
sd
-карту (FAT32). Размер загрузчика укладывается в 4 Кб.
Имя файла должно быть указано в файле BOOT.CFG.

Если загружается пользовательская программато в файле BOOT.CFG
должна находиться строка 
(без перевода строкиследующего формата:

FILE=FILENAME.BIN

Если загружается второй загрузчик
то в файле BOOT.CFG
должна находиться строка 
(без перевода строкиследующего формата:

BOOT=FILENAME.BIN

Имя файла должно быть в верхнем регистре и иметь формат 8.3
.

Второй загрузчик (при его использованиибудет записан в boot-секцию
выше основного
Для его активации не нужно изменять фьюзыдостаточно 
в файле конфигурации BOOT
.CFG указать строку:

BOOT=RUN

Замечания
:
Если sd-карта отсутствует или нет файла BOOT.CFGили в файле находится
строка
FILE=RUNто управление сразу передаётся пользовательскому коду
если он есть (перед переходом это проверяется).

Перед переходом на второй загрузчик также проверяется его наличие.

Если нет пользовательской программы или загрузчикато управление переходит
в вечный цикл 
(ожидается перезапуск).

На время записи флеш зажигается светодиод PROGLED.

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

Ссылки:

1. Исходник uniboot (svn) .

*** *******
Antispam service cleantalk.org ***

_________________
Россия навсегда!


Последний раз редактировалось uni Чт сен 14, 2017 8:08 am, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega 2560 + W5100)
СообщениеДобавлено: Ср сен 13, 2017 7:29 pm 
Не в сети

Зарегистрирован: Пт авг 14, 2015 11:24 am
Сообщения: 110
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.
uni писал(а):
Также есть проверки наличия кода перед переходом на него.

А как делается проверка наличия кода?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega 2560 + W5100)
СообщениеДобавлено: Ср сен 13, 2017 7:31 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс июл 26, 2015 9:21 pm
Сообщения: 191
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Можно посмотреть в исходниках. Я отправил сообщение, но оно ждёт одобрения модератора. Там будет ссылка на мой svn.

Вкратце, так:
Код:
    // Запуск по умолчанию, либо если файл BOOT.CFG содержит строку
    // "Bxxx=RUN" или "Fxxx=RUN".
    if ( run )
    {
#ifdef DEBUG
        PutChar( 'R' );
#endif        
        // Старт пользовательской программы.
        if ( pgm_read_word(0) != 0xFFFF ) 
        
{
            // Переход в прикладную область.
            boot_rww_enable();

            goto * 0;
        }

        // Переходим на второй загрузчик.
        if ( pgm_read_word_far( BOOT2_ADR ) != 0xFFFF )
        { 
            asm volatile
( "jmp %0" :: "i" ( BOOT2_ADR ) ); 
        
}
    }

_________________
Россия навсегда!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ПЛК (Arduino Mega 2560 + W5100)
СообщениеДобавлено: Чт сен 14, 2017 2:43 pm 
Не в сети

Зарегистрирован: Пт янв 22, 2016 10:08 am
Сообщения: 435
Благодарил (а): 2 раз.
Поблагодарили: 26 раз.
Цитата:
PetitFS
самая маленькая,на сайте элм чена есть примеры работы с ней.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 203 ]  На страницу Пред.  1 ... 14, 15, 16, 17, 18, 19, 20, 21  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB