Нужна схема циклического сброса мк.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Вымогатель припоя
Сообщения: 599
Зарегистрирован: Ср янв 06, 2010 10:01:46

Сообщение metan »

Всем привет!
Что-то один я подумал, что может существовать гораздо более простое и правильное решение этой задачи?
Как зависает девайс? Если просто виснет, и мега перестаёт менять состояния своих выходов, то задача вырождается до поиска выхода, на котором во время зависания перестают иметься импульсы, и подключению к этому выходу простейшего детектора пропущенных импульсов. Выход детектора - на ресет (может через одновибратор). Всё.
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Таки да. Это самое оптимальное решение.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

На АОНах - когда то было решение - импульсы с выхода динамической индикации не давали зарядиться конденсатору сброса - когда импульсы пропадают (зависание мк) и состояние 0 или 1 - конденсатор сброса заряжается и сбрасывает схему.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 139
Зарегистрирован: Вс янв 16, 2011 21:25:24

Сообщение Ashatshem »

metan писал(а):Всем привет!
Как зависает девайс? Если просто виснет, и мега перестаёт менять состояния своих выходов, то задача вырождается до поиска выхода,
В том то и дело что не просто пропадают импульсы, а начинает выдавать импульсы хаотично, в итоге табло просто мерцает разными группами светодиодов....
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Сообщения: 599
Зарегистрирован: Ср янв 06, 2010 10:01:46

Сообщение metan »

Ashatshem писал(а):не просто пропадают импульсы, а начинает выдавать импульсы хаотично
Это хуже, конечно. Но все-таки посмотрите повнимательней на состояния выходов во время зависания, может на каком-то выводе импульсы все-таки пропадают? Там скорее всего динамическая индикация, может реально за состояния какого-то столбца, напрмер зацепиться? Если хаотично мигает, может перебор столбцов неравномерно начинает идти? Ведь детектор пропущенных импульсов можно настраивать в довольно широких пределах. Если есть хотя-бы какая-то неравномерность в ходе импульсов, тогда не все еще потеряно.
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 139
Зарегистрирован: Вс янв 16, 2011 21:25:24

Сообщение Ashatshem »

a_skr писал(а):компилировать в WinAVR
C WinAVR не разобрался, ну и ладно, час и 2 секунды тоже отлично подходит, спасибо огромное ещё раз!
Реклама
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

555, не?
Как сделать на ней аналоговое решение с задержкой в час? Мегаомные резисторы и тысячи микрофарад? :)
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 652
Зарегистрирован: Вс ноя 13, 2011 16:42:05
Откуда: Украина

Сообщение C@at »

Можно сказать совсем недавно, на практике, реализовывал схему с NE555 , минутные и часовые отрезки времени , насколько помню соотношение примерно 1000 мкф и 10 мом = ~180 минут.
Материал здесь http://radiokot.ru/circuit/digital/home/112/
так что, было бы желание.... и нех. не нужен.)))
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

1000 мкф и 10 мом = ~180 минут.
Нене, я бы засцал ставить 10 МОм. :shock:
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 139
Зарегистрирован: Вс янв 16, 2011 21:25:24

Сообщение Ashatshem »

a_skr писал(а):под какой AVR скомпилировать?

Код: Выделить всё

#include <avr/io.h>
#include <util/delay.h>

int main (void)
{
  DDRB = 1; // используем PB0
  while(1)
  {
    uint16_t i;
    PORTB = 0;  // низкий уровень на PB0 на 2 секунды
    _delay_ms(2000);
    PORTB = 1;  // высокий уровень на PB0 на 1 час (3600 секунд)
    for(i=0; i<3600; i++)  _delay_ms(1000);
  }
}
Подскажите пожалуйста, как это дело впихнуть в CodeVisionAVR V2.04.4a?
Вопрос отпал, в авр студии нормально всё выходит)
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Мож я не разобрался в теме, но вачдог включить не?
:dont_know:
Правда глушить косяки вачдогом не по пацански, однако если хочется...
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

КРАМ, в начале темы писано, что прошивка недоступна.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

примерно 1000 мкф и 10 мом = ~180 минут.
И осталось только найти такой конденсатор у которого будет отсутствовать ток утечки. Ладно уж, тогда проще использовать ионистор на 1 фарад и резисторы поменьше. Считанные килоомы. Но с такими емкостями возникнет проблема быстрого его разряда... меньше чем секунд за 20 такой не разрядишь, даже если замкнуть.

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

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

Если есть дамп прошивки, то можно попытаться отреверсить её - есть дизассемблеры и можно даже получить код на языках высокого уровня. Работы конечно гораздо больше чем тупо сбрасывать их каждые 2 часа но...
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 139
Зарегистрирован: Вс янв 16, 2011 21:25:24

Сообщение Ashatshem »

Там не бегущая строка, там матрица 24 линии на 8 столбцов, сама программа даёт импульсы неравномерно, то есть, пока идёт вывод эффекта-всё нормально, но в определённых местах эффект застывает секунд на 15, в этот момент импульсов никаких нет, то есть, ловить зависание программы по импульсам-довольно сложно, так как даже при зависании импульсы идут хаотично. А то что так заложено-это запросто))) Но таймер помогает, всё работает уже почти сутки. Дамп прошивки есть, но проще просто рессетить)))
ЗЫ: Индикация не динамика, драйверы DM134 управляют кучей IRFZ44. На картинке часть 1 коробки из 2.
Вложения
DSCF0796.JPG
(176.55 КБ) 496 скачиваний
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Странно, а транзисторов там 64 всего. Что-то мне кажется, что схема рассчитана на 64x64 светодиодов просто используются не все линии. Микросхемы вобщем-то используются бестолково - просто в качестве регистров сдвига. А там уже зависит динамика/не динамика от того как этими регистрами будет пользоваться контроллер.

Вещь вобщем-то довольно масштабная... и наверно даже не так уж сложно написать новую прошивку.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 139
Зарегистрирован: Вс янв 16, 2011 21:25:24

Сообщение Ashatshem »

Alexeyslav писал(а):Странно, а транзисторов там 64 всего.
Да нет, просто на фотке видно всего 2 платы, на самом деле в каждой коробке их по 3, таких коробок 2, вот и получаем 192 транзистора. А насчёт использование спец драйверов вместо логики, это меня тоже удивило.
Ответить

Вернуться в «Периферия»