Перейти к контенту
МОРСКОЙ АКВАРИУМ - форум Аква Лого

Содержание Если вы решили приобрести крупного попугая, то нужно подойти к этому вопросу со всей ответственностью. Крупный попугай - не просто домашний питомец, это потрясающе умная и красивая птица, это ваш друг и соратник на десятилетия. Что же следует учесть при желании завести в доме крупного попугая?
1) Это очень сообразительные и общительные птицы, им необходимо общаться с хозяином. В день для этого должен быть выделен как минимум час, а то и больше. Без этого они будут скучать и от стресса могут не только громить квартиру, но и ощипывать самих себя. Подробнее

Кольчужные сомы

Рыбы без кольчуги

Рыбья кольчуга

Рекомендуемые сообщения

Да можно, но всетаки 485 интерфейс значительно надежнее, помехоустойчивей. На I2C сложнее организовать 2х стороннюю связь.

Не очень понятно, в чем сложность двухстронней связи в I2C? Периодические запросы?

 

А вот что я бы не стал делать, это - передавать питание (+5В) по длинному тонкому проводу, а поставил бы отдельный стабилизатор рядом с мегой8.

Поделиться этим сообщением


Ссылка на сообщение
Не очень понятно, в чем сложность двухстронней связи в I2C

Пожалуй я немного переборщил, это возражение снимается, но остальное по поводу применения I2C остается в силе. Дифференциальная связь намного стабильнее.

А вот что я бы не стал делать, это - передавать питание (+5В) по длинному тонкому проводу, а поставил бы отдельный стабилизатор рядом с мегой8

Полностью согласен. Надо передать по проводу 9-12вольт и стабилизаторы с защитой от к.з в периферийных блоках. Тем самым исключается опасность вырубания всей системы при кз в блоке.

Поделиться этим сообщением


Ссылка на сообщение
Проверял не все выходы, но на трех из восьми проблема есть, причем с разной частотой. Целый день все нормально, а к вечеру пару раз за час мигнула (гасла) одна МГ, а подключенная к другому каналу горела без проблем, но таки один раз под конец тоже мигнула.

 

Может это к вечеру помехи по сети идут, но как они могут повлиять на ВЫКЛЮЧЕНИЕ симисторов? Обычно наоборот бывает, трудно выключить на индуктивной нагрузке, снаббер цепляют и прочее.

 

Я с этим в свое время тоже поимел проблемы. Причем исключительно на МГ с электронным балластом.

Причину так и не понял так как разбираться особенно времени не было. Заменил твердотельное на механическое реле и все стало хорошо. Может такой подход и не спортивен но зато работает. :)

Поделиться этим сообщением


Ссылка на сообщение

Я с этим в свое время тоже поимел проблемы. Причем исключительно на МГ с электронным балластом.

Причину так и не понял так как разбираться особенно времени не было. Заменил твердотельное на механическое реле и все стало хорошо. Может такой подход и не спортивен но зато работает. :)

Ага, значит и на твердотеле те же проблемы. Борис, твердотел у тебя с zero cross был, не помнишь? Чуство у меня интуитивное, что в этом самом zero-cross как раз проблема и сидит. А не в просто симисторах.

Реле поставить конечно можно, но только если ничего больше не поможет. Отдельную линию питания тянуть неохота.

Поделиться этим сообщением


Ссылка на сообщение
Реле поставить конечно можно, но только если ничего больше не поможет. Отдельную линию питания тянуть неохота.

Зачем тянуть, если все под рукой? :)

Реле с обмоткой на 220 не редкость, и размер бывает совсем небольшой, внутрь розетки влезет.

Поделиться этим сообщением


Ссылка на сообщение

Ага, значит и на твердотеле те же проблемы. Борис, твердотел у тебя с zero cross был, не помнишь? Чуство у меня интуитивное, что в этом самом zero-cross как раз проблема и сидит. А не в просто симисторах.

Реле поставить конечно можно, но только если ничего больше не поможет. Отдельную линию питания тянуть неохота.

 

Твердотел был с zero-cross.

Поделиться этим сообщением


Ссылка на сообщение

Зачем тянуть, если все под рукой? :)

Реле с обмоткой на 220 не редкость, и размер бывает совсем небольшой, внутрь розетки влезет.

Что-то я не подумал о миниатюрных реле на 220 (в памяти остались только старые, клацающие, огромного размера реле на 220). Надо поискать. Может ссылку подкините? В принципе, если в розетку влезет, то это был бы идеальный вариант, чтолбы не перепаивать схему.

 

Сегодня посмотрел форму тока в цепи 220 вольт от симисторов к нагрузке (напряжение на последовательно включенном резисторе 1 ом).

1. Обычная лампа накаливания, форма тока - чистый синус.

post-2056-1252051812.jpg.

2. МГ 150 ватт с электронным балластом. Видна ступенька при переходе через 0.

post-2056-1252051896.jpg

3. Другой экземпляр такой же лампы с таким же балластом.

post-2056-1252051970_thumb.jpg

Поделиться этим сообщением


Ссылка на сообщение

Вот эти спайки и могут сбивать с толку детектор zero-cross, перезапуская его не вовремя. Электронный балласт всегда будет шуметь. Надо или между балластом и симисторами ставить сетевой фильтр, хотя не факт что поможет или переходить на реле.

Реле на 220 с хорошими контактами и еще малогабаритное, чтото не видел. У меня есть, но оно размером со спичечный коробок, в розетку не влезет. Врядли ты такое маленькое найдешь.

Вот, не думаю что есть намного меньшие

http://cgi.ebay.com/4-Omron-MY2-DPDT-220-2...p3286.m20.l1116

Изменено пользователем Oleg_il (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение
Что-то я не подумал о миниатюрных реле на 220 (в памяти остались только старые, клацающие, огромного размера реле на 220). Надо поискать. Может ссылку подкините?

Первое, что попалось:

http://electronlab.com.ua/pi/products_id/137076

Подойдет?

Поделиться этим сообщением


Ссылка на сообщение

Для этого надо использовать не I2C, a UART (Rs232) процессора и подключить его к RS485 драйверам.

Олег, я начал было разбираться с этим, но проблема в том, что USART главного процессора (ножки RXD и TXD) у меня используется для связи с настольным компом через его COM порт по протоколу RS232. То есть отдельную сеть по RS485 уже не подключить?

Поделиться этим сообщением


Ссылка на сообщение

Ну почему не подключить, все можно сделать. Самое простое, между процессором и драйвером ставится мультиплексор, 74HC(HCT)4053 или другой ему подобный аналоговый, это неважно. На два входа мукса, драйвер RS232, на другие два - драйвер RS485 и работаешь себе поочередно. На это тебе понадобятся еще два свободных ИО процессора. Один для переключения мукса, 2й для переключения RXD/TXD в 485м.

Скорость и протокол связи оставляешь тот же что у тебя есть сейчас. Для твоих задач такого мультиплексирования достаточно.

Поделиться этим сообщением


Ссылка на сообщение

Думаю, что возникнут проблемы с синхронизацией. Например, программа с настольного компа запрашивает данные, а линия на Atmega в этот момент отключена мультиплексором. Работа с COM портом в Windows и так через одно место сделана. Короче, не уверен, что это наш путь.

Поделиться этим сообщением


Ссылка на сообщение

Конфликты есть, они решаемы на уровне софтвера и правильной синхронизации. Изложи вначале мне задачу, чем занимаеся у тебя РС.

С контроллером понятно, раз в секунду посылает розеткам подтверждение статуса, периодически опрашивает датчики. Все вроде? А РС, только получает эту информацию или еще что то делает со связью? И когда это происходит, по чьему запросу, кто инициатор связи?

Например, программа с настольного компа запрашивает данные, а линия на Atmega в этот момент отключена мультиплексором

Ну и замечательно ;) Подождет пока линия освободится. Как только микроконтроллер получит запрос связи от РС, он прекратит сканирование 2го порта, выдаст пакет ответов в сторону РС и продолжит работу, до получения следующего запроса от РС. Или останется на связи с РС до отключения программы, в зависимости от задачи. если ты на РС рисуешь график температуры, то нет нужды дергать контроллер на связь, чаще чем раз в несколько минут. итд

Изменено пользователем Oleg_il (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение

Олег, я начал было разбираться с этим, но проблема в том, что USART главного процессора (ножки RXD и TXD) у меня используется для связи с настольным компом через его COM порт по протоколу RS232. То есть отдельную сеть по RS485 уже не подключить?

Работу UART можно и на обычных ножках сэмулировать. В CVAVR даже готовая процедура была для этого, если память не изменяет.

Поделиться этим сообщением


Ссылка на сообщение

Задачу Карена можно решить множеством способов. Все зависит от конкрентых потребностей. Один вариант я предложил.

Второй - взять другой процессор с несколькими UARTми.

Третий - взять два процессора АТмега, соединенных между собой по I2C. Один из них, основной, второй как внешний UART. У меня в одной старой системе так и было сделано, только процессоры соединялись по параллельной 4х битной шине.

Но все это требует опыта в писательстве:oops:, самое простое - это помоему первый вариант.

Эмуляцию тоже в принципе можно попробовать, если есть готовая библиотека.

Изменено пользователем Oleg_il (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение

Третий - взять два процессора АТмега, соединенных между собой по I2C.

Этот вариант уже мелькал у меня в голове и кажется наиболее простым (если не считать самый простой - оставить все как есть, на шине I2C, работает же!)

А из драйверов RS485 какую микросхему лучше взять из имеющихся здесь в наличии, а то глянул на список, глаза разбегаются: http://www.platan.ru/cgi-bin/qweryv.pl/0w126.html

Поделиться этим сообщением


Ссылка на сообщение

Драйверы тебе годятся любые, недорогие. Например ADM485 или MAX485. Это с 5вольтовым питанием.

Более навороченные просто не нужны. Все мои рекомендации исходя из того, как я бы строил систему с 0, и так как привык.:oops: Конечно, можно и не придираться к протоколам и довести и так до рабочего состояния, но как правило система построенная изначально с ошибками, потом падает или появляются препятствия к ее расширению.

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

Поэтому я и посоветовал подумать насчет смены интерфейса. Итак с 485 имеем помехозащищенную связь на расстоянии нескольких сотен метров и до 256 приборов, и обесточенные чипы драйверов не коротят линию. Питание лучше сделать у каждого блока свое, или хотябы передавать по кабелю 9-12в не стабилизированне (для простоты) и в каждом блоке свой стабилизатор и предохранитель.

(если не считать самый простой - оставить все как есть, на шине I2C, работает же!)

Доктор, я жить буду - будете!

И ходить буду - будете, ..... под себя. :gygy:

 

РС: У меня есть одна система, с точно такой-же конфигурацией. RS232 на РС и 485 на 64 периферийных блока. Причем РС с виндоус, может послать запрос на связь в произвольное время. Процессор с одним UART. Чтобы выкрутится, было сделано, так. Процессор с муксом на его UARTе, все время работает с 485. На линии связи с РС, сидит еще маааленький контроллер и ждет команды "приглашение на связь", если такая команда поступает, он через внешний интеррапт дает знать основному контроллеру, что его ждут со стороны РС. Контроллер завершает текущий процесс, переключает мукс на RS232, посылает в РС ответ "я здесь",получает следующий пакет комманд , отвечает чем положенно, и уходит на основной процесс до следующего запроса. Так это работает. Поскольку на РС только сервисный интерфейс, которому периодически требуются данные, задержки ответа достигающие 100миллисекунд на все эти процедуры никто не видит, и никому это не мешает.

Поэтому мне казалось, что для тебя это будет самое простое. Вот ;) А с 2мя UART, мне кажется тебе будет сложнее оперировать.

Поделиться этим сообщением


Ссылка на сообщение

На линии связи с РС, сидит еще маааленький контроллер и ждет команды "приглашение на связь", если такая команда поступает, он

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

Поделиться этим сообщением


Ссылка на сообщение

С радиоканалом у меня нет опыта, не пробовал. В таких чипах как правило нет никакой обработки сигнала. То есть в протокол тебе обязательно надо будет добавить средства контроля (не знаю как это по русски, честно :oops: ). Parity check bit, checksum, header/trailer. Не обязательно все сразу, но хотябы часть контроля надо. При таких условиях должно работать, почему бы и нет.

А это как реализовано, если не секрет

Не секрет, системе уже 10лет. :gygy: Это отдельный процессор со своим UART (AT89C2051). У него две функции, первую я описал. Вторая это прием из РС кодированного (от конкурентов)НЕХ файла, распаковка его и программирование по SPI основного процессора.

Поделиться этим сообщением


Ссылка на сообщение

То есть в протокол тебе обязательно надо будет добавить средства контроля (не знаю как это по русски, честно:oops: ). Parity check bit, checksum, header/trailer.

Parity check bit - бит контроля четности.

Checksum - контрольная сумма.

Header/trailer - стартовый и стоповый биты или, в случае последовательности битов, преамбула и стоповая посылка.

Поделиться этим сообщением


Ссылка на сообщение

Спасибо Mike.

То есть для радиосвязи, да и проводной, желательно правильно организовать информационный пакет. Что то типа "заголовок(стартовый байт)+адрес устройства+дата*N+контрольная сумма пакета+стоповый байт" или "заголовок+адрес устройства+информация о ожидаемой длине пакета+дата*N+контрольная сумма пакета" и тд.

И ни в коем случае не еспользовать однобайтные команды, крайне ненадежно. Из личного :), была таки система с однобайтными командами, более менее функционировала. Но иногда люди жаловались, что она периодически влетает в непонятный режим. Выяснилось, что была там однобайтная команда FF, и помехи в проводе ее имитировали. Нарисуй в формате RS232, FF и станет понятно :gygy:. С того времени все подобные номера на однокристалках были похоронены и использовальсь 5...10байтные пакеты. ;)

Поделиться этим сообщением


Ссылка на сообщение

То есть для радиосвязи, да и проводной, желательно правильно организовать информационный пакет. Что то типа "заголовок(стартовый байт)+адрес устройства+дата*N+контрольная сумма пакета+стоповый байт" или "заголовок+адрес устройства+информация о ожидаемой длине пакета+дата*N+контрольная сумма пакета" и тд.

Я и по I2C сейчас стараюсь так делать. Правда пока дошло, уже много кода (вполне работающего, как всегда :) ) понаписано, исправлять лень (пока).

Радиосвязь, честно говоря, захватила перспективой (выйти далеко за пределы контроля аквариума - в доме и во дворе есть много чего, что надо контролировать :)). Но как же неохота во все это влезать! Хотя, уже затягивает.

 

Да, а с миганием ламп - ошибка в программе была (как всегда).

Поделиться этим сообщением


Ссылка на сообщение

И ни в коем случае не еспользовать однобайтные команды, крайне ненадежно.

 

помнится мне в лохматые годы была такая машинка PDP-11. если не ошибаюсь была машинка восьмибитная, впрочем как и ее система команд, т.е. однобайтная, если за него считать 8 бит.

работала просто отлично и была одним из чудес света. не зря наши ДВК-3 с нее содрали :)

 

Это уже потом буржуины придумали системы команд плавающей длины.

Поделиться этим сообщением


Ссылка на сообщение

Пожалуйста, авторизуйтесь, чтобы оставить комментарий

Вы сможете оставлять комментарии после авторизации



Войти

×
×
  • Создать...

Политика обработки персональных данных