альфа 2560 (@2560)

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

альфа 2560 (@2560)

Сообщение 507 » 28 мар 2015, 00:02

Рождение новой железки.

1. Компоновочное решение: шилдовая конструкция для обеспечения универсальности использования готовых модулей в различных вариантах исполнения, от розеточного размещения до отдельных боксов. В стандартном варианте щитовая дин рейка в корпусе на 6дин модулей. Далее описание стандартного исполнения.
2. Изернет реализован на ENC28J60.
3. Встроенная поддержка RS485, 1wire (ds2480), RF433.92, слот SD карты, IR-in, IR-out.
4. Часы реального времени на DS1307Z + батарейка.
5. Датчик освещенности - предусмотрен для управления подсветкой штатного ЖКИ для встраиваемых систем).
6. Бипер.
7. Графический ЖКИ 133х64 точки с различными вариантами подсветки в плоть до RGB. Интерфейс I2C, драйвер UC1601S. демо видео https://youtu.be/d-mr1ibm69E
8. Кнопки навигации по меню.
9. 20 свободно конфигурируемых пользователем с возможной переконфигурации в любой момент времени I/O имеющих оптоизолированную силовую обвязку (I/O, PWM, AN).
10. Шина расширения +20 I/O в такой же конфигурации - нужен дополнительно 6дин модуль, в нем же возможно размещение RF 2.4 ГГц, BT и прочего для чего может использоваться спай бас, ай-ту си и уарт шины.
11. Питание от внешнего источника: 220в для силовой части, 12в для шин 1вайр и 485, 5в для питания МК и логики.
За основу была схема взятая отсюда http://www.rlocman.ru/i/Image/2010/02/1 ... 60_sch.JPG к ней добавлены недостающие элементы и портирована на существующую платформу (тема про альфамодуль viewtopic.php?p=17146#p17146 ).
В результате получилось две группы портов по 20 GPIO в каждой группе, 1-я группа это GPIO inside, 2-я группа это GPIO outside (в таблице)
Так как изначально вся серия шилдов расширения была спроектирована под платформу PIC этим объясняется столь странная занятость портов и обусловлена взаимозаменяемостью модулей разных платформ PIC и ATmega.
В прилагаемой таблице есть соответствие ног и выводов.
МК Cхема GPIO
1 PG5 OC0B I/0 1
2 PE0 RXD0 PCINTB RF
3 PE1 TXD0 RF
4 PE2 XCK0 AIN0 LIGHT SENS
5 PE3 OC3A AIN1 I/0 1
6 PE4 OC3B INT4 I/0 1
7 PE5 OC3C INT5 I/0 1
8 PE6 T3 INT6 STATUS LED
9 PE7 CLKO ICP3 INT7
10 VCC
11 GND
12 PH0 RXD2 485
13 PH1 TXD2 485
14 PH2 XCK2 I/O
15 PH3 OC4A I/O 1
16 PH4 OC4B I/O 1
17 PH5 OC4C I/O 1
18 PH6 OC2B I/O 1
19 PB0 SS PCINT0 ETHR
20 PB1 SCK PCINT1 ETHR
21 PB2 MOSI PCINT2 ETHR
22 PB3 MISO PCINT3 ETHR
23 PB4 OC2A PCINT4 LED LCD B
24 PB5 OC1A PCINT5 I/0 2
25 PB6 OC0A PCINT6 I/0 1
26 PB7 OC0A OC1C PCINT7 SPK
27 PH7 T4 I/0 1
28 PG3 TOSC2 I/0 1
29 PG4 TOSC1 int485
30 RESET Reset
31 VCC
32 GND
33 XTLA2
34 XTLA1
35 PL0 ICP4 I/0 1
36 PL1 ICP5 I/0 2
37 PL2 T5 I/0 1
38 PL3 OC5A LCD LED R
39 PL4 OC5B LCD LED G
40 PL5 OC5C LCD LED W
41 PL6 I/0 1
42 PL7 SCL_CLOCK
43 PD0 SCL INT0 LCD
44 PD1 SDA INT1 LCD
45 PD2 RXD1 INT2 USB
46 PD3 TXD1 INT3 USB
47 PD4 ICP1 LCD RESET
48 PD5 XCK1 I/0 2
49 PD6 T1
50 PD7 T0 I/O 2
51 PG0 WR I/O 2
52 PG1 RD I/O 2
53 PC0 A8 I/O 2
54 PC1 A9 I/O 2
55 PC2 A10 I/O 2
56 PC3 A11 KEY D
57 PC4 A12 KEY U
58 PC5 A13 KEY R
59 PC6 A14 KEY L
60 PC7 A15
61 VCC
62 GND
63 PJ0 RXD3 PCINT9 1WIRE
64 PJ1 TXD3 PCINT10 1WIRE
65 PJ2 XCK3 PCINT11 IR IN
66 PJ3 PCINT12 IR OUT
67 PJ4 PCINT13 SD CS
68 PJ5 PCINT14 I/O 2
69 PJ6 PCINT15 INT ETER
70 PG2 ALE I/O 2
71 PA7 AD7 I/O
72 PA6 AD6 I/O
73 PA5 AD5 I/O 1
74 PA4 AD4 I/O 1
75 PA3 AD3
76 PA2 AD2
77 PA1 AD1
78 PA0 AD0 KEY ENTER
79 PJ7
80 VCC
81 GND
82 PK7 ADC15 PCINT23 POWER
83 PK6 ADC14 PCINT22 BAT POWER
84 PK5 ADC13 PCINT21 I/0 1
85 PK4 ADC12 PCINT20 I/0 1
86 PK3 ADC11PCINT19 I/0 1
87 PK2 ADC10 PCINT18
88 PK1 ADC9 PCINT17 I/0 1
89 PK0 ADC8 PCINT16 I/0 2
90 PF7 ADC7 TDI I/0 2
91 PF6 ADC6 TDO I/0 2
92 PF5 ADC5 TMS I/0 2
93 PF4 ADC4 TCK 2
94 PF3 ADC3 2
95 PF2 ADC2 2
96 PF1 ADC1 2
97 PF0 ADC0 2
98 AREF
99 GND
100 AVCC

Теперь самое интересное - прошивка. Есть много вариантов как ее создать, но наиболее оптимальным на мой взгляд это взять за основу проект Мега328 и адаптировать его на созданную железку. Дело за небольшим - кто за это возьмется?
Со своей стороны я могу предоставить железо для разработки прошивки не исключено так же и финансовое стимулирование.
Теперь хотелось бы услышать Ваше мнение либо встречные предложения?
Вложения
shild.jpg
shild.jpg (254.1 КБ) 8946 просмотров
shema.jpg
shema.jpg (241.15 КБ) 8946 просмотров

alexsis_76

Re: альфа 2560 (@2560)

Сообщение alexsis_76 » 28 мар 2015, 16:33

507 скажите пожалуйста , зачем вам это монстр, чем вам pic18f67j60 не угодил?
тут вроде как уже есть товарищ с
RHome на Atmega 2560

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: альфа 2560 (@2560)

Сообщение 507 » 28 мар 2015, 17:15

у PIC своя судьба. Будет и на нем ПЛК но несколько позже.
Я уже неоднократно говорил что я далек от программирования (правда за этот год стал несколько ближе) и мне как линейному пользователю близка система FBD, а этому отвечает программа FLprog, но ток как у разработчика пока свои приоритеты а давать код на сторону для допила он пока воздерживается то и было принято решение сделать шаг в сторону того что это ПО поддерживает и что может работать уже разработанным ранее железом.
И этим заменителем стал МК ATmega2560. Он конечно не без труда влез на крохотный клочок текстолита (зазоры и дорожки 0.15мм) но результатом я вполне доволен.
Что же касается RHome - да я знаю про этот проект, но у нас разная концепция - я больше ориентируюсь на встраиваемые системы с локальным размещением, а на сколько я смог понять RHome идет по пути более масштабного подхода к интеграции.
Ну как то так. (с)

alexsis_76

Re: альфа 2560 (@2560)

Сообщение alexsis_76 » 28 мар 2015, 17:25

а почему именно ATmega2560?

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: альфа 2560 (@2560)

Сообщение 507 » 28 мар 2015, 17:42

Для обслуживания внутренней периферии нужно около 20 GPIO, плюс на порты управления еще 20 GPIO, плюс ресурсы по объему памяти, вот и нарисовался кандидат, а лишнее вывел в шину расширения - шилд с силовой обвязкой, а это еще ровно 20 GPIO.

alexsis_76

Re: альфа 2560 (@2560)

Сообщение alexsis_76 » 28 мар 2015, 17:57

8Kbytes Internal SRAM
не маловато ресурсов ,кстати а что путного можно создать с помощью FLprog, я сколько читал так и не понял, твердят на каждом углу что теперь контроллеры может программировать даже домохозяйка, но как можно программировать не зная обьекта программирования,это все равно что изучать язык не зная алфавита

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: альфа 2560 (@2560)

Сообщение 507 » 28 мар 2015, 18:06

Ну не PIC конечно, но думаю что для мох потребностей будет достаточно.
Касаемо FBD - не все так печально - я вроде неплохо знаю схемотехнику на уровне простой логики и что как соорудить в FBD для меня совсем не сложно а вот с "птичьем" языком у меня как то пока не срослось.
Последний раз редактировалось 507 28 мар 2015, 18:21, всего редактировалось 1 раз.

alexsis_76

Re: альфа 2560 (@2560)

Сообщение alexsis_76 » 28 мар 2015, 18:18

понятно, желаю творческих успехов ;)

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: альфа 2560 (@2560)

Сообщение 507 » 28 мар 2015, 18:22

И на том спасибо.

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: альфа 2560 (@2560)

Сообщение 507 » 11 апр 2015, 03:03

вот пришли платки для "тушки" под МК 2650
mm.jpg
mm.jpg (83.44 КБ) 8679 просмотров
ppdn.jpg
ppdn.jpg (86.72 КБ) 8679 просмотров
после сборки это будет выглядеть примерно вот так
up.jpg
up.jpg (92.72 КБ) 8679 просмотров
dn.jpg
dn.jpg (81.51 КБ) 8679 просмотров
А вставляться это будет вот в такой шилд носитель.
Стоит отметить что этот шилд одинаково воспринимает тушки на разных МК. На данный момент разработаны и изготовлены тушки под МК PIC18, ATmega 2560 и ATmega 328.
shatl.jpg
shatl.jpg (72.73 КБ) 8679 просмотров
Ну а шилд носитель стыкуется еще с одной платой (будет готова к среде) на которой размещена вся силовая обвязка для 20 I/O и разъёмы.
И все это помещается в шестидиновом корпусе щитового оборудования для дин рейки.
А габариты тушки были выбраны с таким расчетом что б ее можно было разместит в стаканах подрозетника для скрытой установки в помещении.
Шлид для подрозетника пока еще в разработке но на нем обязательно будет LCD экран, несколько светодиодов и биппер.
Так же планируется еще ряд модификаций различного форм фактора в том числе и с увеличенным по габаритам в двое размером LCD.

alexsis_76

Re: альфа 2560 (@2560)

Сообщение alexsis_76 » 11 апр 2015, 10:06

Если хотите с sd картой , то нужно переработать данный стэк или отказаться от него в пользу другого, причина как я уже говорил в том что он не может передавать несколько пакетов подряд,даже если взять ваш 2560 то даже при увеличении буфера содержимое sd карты не поместится в 1 пакет (если использовать таблицы стилей,скрипты и прочее)в случае с центральным сервером это не важно , т к весь интерфейс обеспечивает сервер, девайс вообще может его не иметь
эта прошивка основана на трудах уважаемого Lifeloverа
тема про него оказалась никому не интересна
viewtopic.php?f=1&t=735
вот то что накорякал я,оригинал прошивки сдесь http://we.easyelectronics.ru/electro-an ... -seti.html
кое что убрал кое что добавил, в часности заменил fatfs на более мелкую версию Petitfat
данные передаются пакетами по 512 байт(размер сектора sd карты)
мои изменения
1 все манипуляции (почти все)с аппаратными ресурсами обеспечиваются через уровень hal, он представляет собой набор макросов
#define OUT_D(val) DDRXD |= (1<<(val))//порт на выход
в нужном месте OUT_D(6); шестую ногу порта D на выход
сделано для того что бы обеспечить легкий переход на различные контроллеры
заменил уровень HAL и все , не надо метаться по прошивке выискивая что где следует поменять
2 hardware.c там должна располагаться инициализация периферии, вызывается в основной программе 1 раз в начале
3 hardware_exe.c управления аппаратными ресурсами (переключения входов выходов)как видите в нем нет ни одной записи типа PORTD=0XFF,все общение происходит посредством hal
4 папка modules,там располагаются блоки кода для модулей
5 позволяет отключать и подключать нужные ненужные модули
в файле mod_config есть такие строки #define Dimmer
#define Adc
это директивы условной компиляции если определено #define Adc то будет подключен код для Adc
вообщем надо пробывать если что пишите
еще есть вложения с тестовой веб страницей за основу взят проект от микрочип поэтому много неиспользуемых файлов
Вложения
ddd.rar
(16.37 КБ) 243 скачивания
TCP_PETIT.rar
(173.43 КБ) 245 скачиваний

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: альфа 2560 (@2560)

Сообщение 507 » 11 апр 2015, 10:36

вот спасибо, будет чем заняться безработному.

alexsis_76

Re: альфа 2560 (@2560)

Сообщение alexsis_76 » 11 апр 2015, 13:03

кстати совсем забыл
хранение скомпилированой веб страницы создает не только преимущества но и некоторые проблемы, в частности вы уже не сможете так просто поменять элемент страницы, придется использовать скрипт, но с другой стороны он поможет создать динамическую страницу

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: альфа 2560 (@2560)

Сообщение 507 » 11 апр 2015, 13:55

Не думаю, что это большая проблема.


507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: альфа 2560 (@2560)

Сообщение 507 » 11 апр 2015, 22:22

А вот если такое решение? На сколько оно будет оправдано?
Отказаться от WEB интерфейса в пользу программы конфигуратора. В прошивке для PIC ведь именно так и сделано. А конфигуратор написать можно хоть бы и на джаве.
При таком решении вообще все упрощается.

alexsis_76

Re: альфа 2560 (@2560)

Сообщение alexsis_76 » 12 апр 2015, 03:20

Отказаться от WEB интерфейса в пользу программы конфигуратора
без разницы что там будет , как то пробовал с telnet,памяти освободилась вагон и маленькая тележка,казалось бы вот оно счастье,но когда у вас есть сервер который предоставляет вам свой интерфейс это одно, а чтобы пользоваться например тем же телнетом нужно открыть командную строку,что то там набирать на клавиатуре причем без помощи мыши больше половины пользователей с этим категорически не согласны, можно сделать конфигуратор, но браузер удобнее,открыл на любом компе и вперед, все удобно , красиво,просто
пример настройка различных сетевых устройств(модемы, маршрутизаторы , точки доступа) никто к ним не пишет конфигураторов, у них есть возможность конфигурирования через telnet,но я не видел ни одного человека который этим пользуется, веб -просто-доступно-понятно-не требует каких то специфических знаний
вариант с картой и вебам вам показался слишком сложным?

кстати вот взгляниете можете взять за основу http://kernelchip.ru/Jerome.php
а вот еще появился новый http://kernelchip.ru/Laurent-2.php идеальный вариант автономного управления, особенно хороша cat система и система сторож

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: альфа 2560 (@2560)

Сообщение 507 » 12 апр 2015, 12:03

alexsis_76 писал(а): вариант с картой и вебам вам показался слишком сложным?
Нет, не в этом дело. Сложностей в проекте предостаточно и это не самая сложная задача.
Вше предложение по новому стеку уже в проработке и надеюсь что оно воплотится.
Я про WEB в том аспекте что в этом проекте внутренняя логика МК реализуется в FBD, а следовательно для WEB остаются только сетевые настройки., которые можно делать через терминальное ПО.

alexsis_76

Re: альфа 2560 (@2560)

Сообщение alexsis_76 » 12 апр 2015, 12:10

интересно а как с помошью FBD сделать например парсер

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: альфа 2560 (@2560)

Сообщение 507 » 12 апр 2015, 16:35

Ну если Вы поясните что Вы вкладываете в это понятие и если это окажется именно логикой для GPIO то я попробую смоделировать.
Мне этот термин так же не знаком как полагаю Вам термин амбивалентная ригидность, а Гугл дал противоречивые объяснения этого термина.

Ответить