реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Много вопросов накопилось... Сильно не глумитесь, ATMega16 & etc
demaven
сообщение Dec 3 2006, 15:24
Сообщение #31


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



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

"Допустим 10 кОм поставим."

а резистор на 10 ком поместиться? 220/10 =22ма множим на 220 имеем почти 5 ватт, в пору что-нибудь жарить
Go to the top of the page
 
+Quote Post
archi2000
сообщение Dec 3 2006, 15:38
Сообщение #32


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 30-09-05
Пользователь №: 9 098



Поставим 100 кОм.
Но пока не сказано какая точность по времени в разных каналах Int0 и Int1 все равно хочется поставить две цепочки и настроить прерывания по заднему фронту.
Еще вопрос - какая тактовая частота процессора? сколько потребляет процессор, ЖКИ и клавиатура у автора? Как правильно запитать это все без трансформатора, если допустим ток потребления большой?
Допустим 10 мА?

Сообщение отредактировал archi2000 - Dec 3 2006, 15:58
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 3 2006, 16:02
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(defunct @ Dec 3 2006, 02:09) *
Гм.. Аппаратно - это не громко, а точно сказано, т.к. имеются средства аппаратуры, которые автоматически блокируют возможность вызова прерываний того же уровня. Чтобы повторить это на AVR, Вам потребуется на входе в прерывание вручную блокировать все прерывания того же уровня, и лишь после этого устанавливать флаг I. Т.о. накладные расходы получатся весьма значительными, а выигрышь от всего этого - практически никаким.

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

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

И что тут страшного? Ну идёт, и что???? На то он и стэк! Это даже замечательно! Проблема может возникнуть как раз если работа идёт не через стек, а обходным путём. Ну например, для экономии в двух равных прерываниях использованы вместо push SREG, mov save_sreg,sreg.

Цитата
Ну-ну.. smile.gif
Компилятор ни о чем не позаботится, ему все равно какие строки переводить в код. Заботиться обо всем нужно разработчику.
...
Вот это и есть та самая забота - по устранению проблем связанных с синхронизацией, которую компилятор за Вас не сделает.
...
Ключевое слово "если" wink.gif

Мы говорили уже на эту тему. В том плане, что "это не проблема реализации, а проблема опытности разработчика". И говоря что "компилятор" обо всём позаботится я имел ввиду начинающих программистов. Проблемы начнуться тогда когда они станут "профи" и начнут запрещать компилятору использовать регистры и использовать вручную, начнутся тогда, когда они начнут вставлять свои куски ассеблерного кода или начнут переписывать обработчики прерываний, начнутся тогда, когда попытаются в прерывание воткнуть пол-головы и начнут м/у прерываниями передавать сложные данные. Иначе ничего не будет. Обычно прерывания логически слабо связаны м/у собой, так как они обрабатывают РАЗНЫЕ события. И, как правило, ничего страшного не происходит если из прерывания, которое формирует временные метки будет вызвано прерывание от USART а из него прерывание от Int0.

На самом деле это что-то сродни обсуждаемому вопросу: "зачем нужна OS". Лучше возможно и не станет, но красивее - точно. Каждый процесс логически закончен! А здесь ещё и выигрыш для конкретного обработчика (проигрыш для остальных).

У меня сейчас - светодиодное панно. Прерывания от USART - 3 (rs485), от таймера (таймаут для rs485), от таймера - регенерация экрана, от таймера (софтовое - каждое девятое прерывание регенерации) - обработка команд и голова приём команд. Высокоуровневое - регенерация. Графика и анимированная графика, полутона и цвет. Никаких специальных приёмов - нет. С максимальной оптимизацией по времени. IAR C. Кстати малейшие девиации при отображении картинки - видны на глаз.

Можно ли написать без этого? Да безусловно! В этом особая прелесть программирования, - творчество и совершенная свобода выбора. Будет ли красивее? Вполне возможно, но уже не мной. К тому же красота - субъективное понятие.
Но главное - у меня всё работает тоже. И я оцениваю своё решение как красивое. Значит моё решение тоже имеет право на жизнь. И я думаю, многие програмисты используют мой подход, так как я ни в коей мере не считаю его "своим изобретением". Возможно он родился раньше меня.

PS: А.Г.Алексенко,А.А.Галицын,А.Д.Иванников "Проектирование радио-электронной аппаратуры на микро-процессорах", Москва "Радио и связь" 1984г. (Когда-то была бестселером по i8080) стр. 51 "Для задания простого приоритетного режима не требуется никаких дополнительных команд, кроме команд инициализации. ... Поэтому для организации многоуровневой системы прерываний необходимо выполнить програмную установку этого тригера командой EI (РАЗРЕШИТЬ ПРЕРЫВАНИЯ) МП. ... Для реализации многоуровневой системы прерываний каждая из п/программ обслуживания должна иметь определённую структуру (рис.1.26)"
(1.26) Начало -- сохр. в стеке исп. регистров -- EI -- тело -- DI -- Сброс разряда регистра прер. (для avr не надо) -- EI -- RET
Go to the top of the page
 
+Quote Post
xemul
сообщение Dec 3 2006, 16:14
Сообщение #34



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(archi2000 @ Dec 3 2006, 15:05) *
Автор топика не говорит какой у него стабилитрон.
У меня вот какие мысли по этому поводу.
Чтобы с точностью допустим микросекунды отловить нули сетевого напряжения

Прежде, чем допускать эту точность, очень желательно оценить шумы в электрической сети.
Цитата
в двух каналах Int0 и Int1 нужно две цепочки диод резистор стабилитрон. Диоды включить
...

А смысл всего этого мероприятия? Компаратор в AVR'ах удовлетворительно работает около земли. Не проще ли подать сигнал через резистор кил в 500-1000 на вход компаратора (естесно, нужна пара защитных диодов встречно-параллельно на землю; если предполагается использовать SMD-резисторы, то придется ставить последовательно не меньше двух типоразмера 1206), опору повесить на землю, и попытаться порадоваться жизни? Потом огорчиться, обнаружив шумы в сети, и задуматься над проблемой фильтрации этих самых шумов. А вот здесь уже можно будет подумать и про требуемую/желаемую точность определения 0 напряжения.
Go to the top of the page
 
+Quote Post
archi2000
сообщение Dec 3 2006, 16:38
Сообщение #35


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 30-09-05
Пользователь №: 9 098



Итак есть ФАЗА и НОЛЬ. Ноль на вывод земли процессора подключим. Дальше пока на внешних прерываниях будем работать.
К ФАЗЕ диод, резистор 30 кОм и стабилитрон 5В. И это подключить к двум выводам МК?
Int0 настроить на передний фронт, а Int1 на задний?
Дальше к стабилитрону подключить развязывающий диод Шоттки и электролит для фильтрации пульсаций и запитать процессор?
Так надеюсь будет работать при токе процессора 10мА.
Go to the top of the page
 
+Quote Post
xemul
сообщение Dec 3 2006, 16:54
Сообщение #36



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(archi2000 @ Dec 3 2006, 16:38) *
Итак есть ФАЗА и НОЛЬ. Ноль на вывод земли процессора подключим. Дальше пока на внешних прерываниях будем работать.
К ФАЗЕ диод, резистор 30 кОм и стабилитрон 5В. И это подключить к двум выводам МК?
Int0 настроить на передний фронт, а Int1 на задний?
Дальше к стабилитрону подключить развязывающий диод Шоттки и электролит для фильтрации пульсаций и запитать процессор?
Так надеюсь будет работать при токе процессора 10мА.

Если предполагается управлять тиристором, включенным именно по фазе (т.е. нагрузка привязана к нулю), то удобнее Vcc контроллера привязать к фазе, а балласт по питанию включать со стороны Gnd контроллера.
Питание контроллера и цепь z-cross лучше не объединять.
Чем Вы собираетесь занять контроллер, чтобы он начал потреблять 10 мА? Для бестрансформаторного питания, имхо, это многовато.
И в чем цимес использования и INT0, и INT1 для определения 0? Кста, если соберетесь считать погрешности и точности, сравните токи входов контроллера в режимах цифры и аналога.
Go to the top of the page
 
+Quote Post
archi2000
сообщение Dec 3 2006, 16:59
Сообщение #37


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 30-09-05
Пользователь №: 9 098



Да, спасибо за ответы.
Я вообще не знаю зачем автору два прерывания. Достаточно выпрямить это диодным мостом, будут полуволны 100 Гц, можно отлавливать один задний фронт одним внешним прерыванием и управлять симистором. Я никогда не делал безтрансформаторное включение - поэтому и спрашиваю.
Go to the top of the page
 
+Quote Post
xemul
сообщение Dec 3 2006, 17:24
Сообщение #38



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(archi2000 @ Dec 3 2006, 16:59) *
Да, спасибо за ответы.
Я вообще не знаю зачем автору два прерывания. Достаточно выпрямить это диодным мостом, будут полуволны 100 Гц, можно отлавливать один задний фронт одним внешним прерыванием и управлять симистором. Я никогда не делал безтрансформаторное включение - поэтому и спрашиваю.

Если выпрямлять, то симистор (aka симметричный тиристор) не нужен, достаточно обычного. Но при большой мощности нагрузки суммарные потери на тиристоре и выпрямителе будут больше, чем на одном симисторе.
Неудобство без выпрямителя - питание схемы только от одного полупериода, но это не самое большое зло при ее среднем потреблении до 2-3 мА. Чтобы уложиться в такое потребление (тиристорам средней мощности нужно дунуть в управляющий электрод 5-20 мА, чтобы они открылись), имеет смысл открывать тиристор не уровнем, а пачкой коротких импульсов.
Go to the top of the page
 
+Quote Post
archi2000
сообщение Dec 3 2006, 19:18
Сообщение #39


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 30-09-05
Пользователь №: 9 098



Я бы такое устройство побоялся покупать без гальванической развязки. Нажимать на кнопки клавиатуры зная, что к контактам внутри кнопки фаза через резистор как-то страшно.
Трансформатор наверное желательно поставить.
Go to the top of the page
 
+Quote Post
xemul
сообщение Dec 3 2006, 19:36
Сообщение #40



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(archi2000 @ Dec 3 2006, 19:18) *
Я бы такое устройство побоялся покупать без гальванической развязки. Нажимать на кнопки клавиатуры зная, что к контактам внутри кнопки фаза через резистор как-то страшно.
Трансформатор наверное желательно поставить.

У автора треда вопросы про z-cross и про клавиатуру вроде бы разнесены по разным пунктам.
Вы в магазинах электротоваров видели регуляторы яркости лампочек? И наши, и вражеские. Все с сертификатами, но без трансформаторов. А во времена незапамятные "Светлана" (?) делала контроллеры для такого дела вообще с сенсорным управлением, и люди как-то выживали. А вот контроллеры дохлиwink.gif. Так что неизвестно, кому больнее - людям или микросхемам.
Go to the top of the page
 
+Quote Post
Screw
сообщение Dec 3 2006, 20:33
Сообщение #41


Частый гость
**

Группа: Свой
Сообщений: 149
Регистрация: 29-11-06
Из: Барнаул
Пользователь №: 22 916



А тема как оказалось очень живая wink.gif

Спасибо всем за обсуждение, пара вопросов отпала сама собой.

Транс стоит - через мост и 7805 запитан контроллер и лсд. Фаза и ноль - пока что подаются через мегаомники напрямую к int0 (было решено проверять PIND.2..... выводы нужны), в дальнейшем можно будет с транса попробовать.....
По поводу симисторов - не мой случай, алгоритм такой, что симисторы не подойдут.

Фактически, вся программа была сведена к одному прерыванию - датчику нуля. Так что весь тред по-поводу многоуровневом прерывании был затеян, как выяснилось, зря.

Интересен еще один момент - кто как делает развязку силовой части и контроллера? В моем случае надо управлять тиристорами. Хотел поставить высокочастотные трансформаторы - но дорого, объемно, да и нет у нас их в городе.

С оптопарами как-то не имел дело, может вы мне чем поможите...
Тиристоры предполагаются со следующими номиналами: Uобр 400-450 В, рабочий ток до 200мА.

Кстати, имеет ли смысл искать что-то быстродействующее(я про тиристоры)?

Цитата(archi2000 @ Dec 3 2006, 16:59) *
Да, спасибо за ответы.
Я вообще не знаю зачем автору два прерывания. Достаточно выпрямить это диодным мостом, будут полуволны 100 Гц, можно отлавливать один задний фронт одним внешним прерыванием и управлять симистором. Я никогда не делал безтрансформаторное включение - поэтому и спрашиваю.


Мне надо знать какая идет по счету полуволна + надо знать, положительная или отрицательная wink.gif
Не все так просто wink.gif

Сообщение отредактировал Screw - Dec 3 2006, 20:31
Go to the top of the page
 
+Quote Post
archi2000
сообщение Dec 3 2006, 20:52
Сообщение #42


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 30-09-05
Пользователь №: 9 098



Про оптроны и тиристоры можно тут посмотреть.
http://www.qrx.narod.ru/bp/up.htm
Есть трехквадрантные симисторы, может подойдут
http://www.dectel.ru/dectel_el/publications/3q.shtml

Сообщение отредактировал archi2000 - Dec 3 2006, 21:06
Go to the top of the page
 
+Quote Post
Screw
сообщение Dec 3 2006, 22:24
Сообщение #43


Частый гость
**

Группа: Свой
Сообщений: 149
Регистрация: 29-11-06
Из: Барнаул
Пользователь №: 22 916



Да общий принцип-то понятен.... интересует вся обвязка от вывода контроллера до тиристора с номиналами...

Смотрю я в сторону оптотиристоров - но рука по 80 р. за каждый отдавать не поднимается.... а надо 12 штук...
Go to the top of the page
 
+Quote Post
xemul
сообщение Dec 3 2006, 22:41
Сообщение #44



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Screw @ Dec 3 2006, 22:24) *
Да общий принцип-то понятен.... интересует вся обвязка от вывода контроллера до тиристора с номиналами...
Смотрю я в сторону оптотиристоров - но рука по 80 р. за каждый отдавать не поднимается.... а надо 12 штук...

MOC3021, MOC3023, MOC3041, MOC3042, MOC3061..3 - стоят 10-20 руб. До 200 мА можно прямо ими, больше - привесить к ним что-нибудь помощнее. Подробности в даташитах.
Go to the top of the page
 
+Quote Post
Screw
сообщение Dec 3 2006, 22:57
Сообщение #45


Частый гость
**

Группа: Свой
Сообщений: 149
Регистрация: 29-11-06
Из: Барнаул
Пользователь №: 22 916



Цитата(xemul @ Dec 3 2006, 22:41) *
Цитата(Screw @ Dec 3 2006, 22:24) *

Да общий принцип-то понятен.... интересует вся обвязка от вывода контроллера до тиристора с номиналами...
Смотрю я в сторону оптотиристоров - но рука по 80 р. за каждый отдавать не поднимается.... а надо 12 штук...

MOC3021, MOC3023, MOC3041, MOC3042, MOC3061..3 - стоят 10-20 руб. До 200 мА можно прямо ими, больше - привесить к ним что-нибудь помощнее. Подробности в даташитах.


Спасибо!!! a14.gif
То, что надо!!!

Поторопился с ответом - там симисторы.... Но всеравно спасибо, будем искать wink.gif
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th July 2025 - 12:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01487 секунд с 7
ELECTRONIX ©2004-2016