Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

RS-триггер с памятью на МК

Непрочитано 16.07.2012, 09:49  
E_C_C
Почётный гражданин KAZUS.RUN
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,827
Сказал спасибо: 750
Сказали Спасибо 679 раз(а) в 382 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию RS-триггер с памятью на МК

Всем здравствуйте. Потребовалось сделать RS триггер с запоминанием состояния при отключении питания, сделал на МК тини13. На столе все работает четко, но в полевых условиях обнаружился баг. Если предыдущее состояние было - 0(сброшено) , то при сбоях питания возможно самопроизвольное переключение в состояние 1(установлено). Наоборот если было состояние 1 , то переключение в ноль не происходит , как ни дергай питание. Как добиться четкого запоминания ? Схема и линк ниже.
По схеме- резистор на светодиоде есть, подтягивающие резисторы в МК включены, пробовал ставить внешние - результат тот же. Керамика на МК и источнике есть.
Код:
 
#asm("cli") 
 PORTB.3 = 0;  // изначально выход сброшен
  
 
 for(i=0;i‹50;i++)     // начальная задержка
 { 
    delay_ms(1);
    PORTB.0=!PORTB.0;   // часто моргаем светодиодом
   #asm("wdr");
   }

 buffer =  readEEPROM(Adr);  // Читаем в буфер предыдущее значение выхода     
                        
 PORTB.3 = buffer;       // выход    
 #asm("sei") 
 #asm("wdr") 
 TCCR0A=0x40;
 TCCR0B=0x05;             // запустим таймер для моргания светиком
 while (PINB.4)  // пока есть питание, (на входе PINB.4 единица)
      {
         if (PINB.1 ==0)  PORTB.3 = 0;   // сброшен
         if (PINB.2 ==0) PORTB.3 = 1;   // установлен
        
         #asm("wdr");             
         if (PORTB.3 ==buffer)       // если значение  изменилось 
            {
              flag1=0;
              } 
         else 
         {
         flag1=1;        // выставим флаг
         } ;
      } 
       // питание пропало, выход из программы 
       
      #asm ("cli")
      #asm("wdr")
      PORTB.0=1;           // светодиод потушен
       TCCR0A=0x00;       // таймер стоп
        TCCR0B=0x00;  
         
      if(flag1);       //  если значение изменилось 
         { writeEEPROM(Adr,PORTB.3); //  запишем  
          
           #asm("wdr")  
      
           while (EECR.1 != 0);     // ждем  готовности ЕЕПРПОМ  
             EEAR = 0;              
  
           
           #asm("wdr") 
         }  
                
       
         while(1);
                                 
                   // сваливаемся в бесконечный цикл.
                // пока не снимется питание или не перезапустится МК от собаки
      
   }
‹/lj-cut›
Нажмите на изображение для увеличения
Название: 121212.JPG
Просмотров: 93
Размер:	104.3 Кб
ID:	36775
Реклама:
__________________
Да здравствует Разум,да сгинет Маразм!

Последний раз редактировалось E_C_C; 16.07.2012 в 15:51.
E_C_C вне форума  
Сказали "Спасибо" E_C_C
warel (29.06.2019)
Непрочитано 16.07.2012, 09:57  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

Вы не забыли, что EEPROM не бессмертный? Это так, дополняя общую картину.
С конденсатором тоже не все так просто. А что будет, если питание пропало и появилось? А конденсатор не успел разрядится.
Easyrider83 вне форума  
Эти 3 пользователя(ей) сказали Спасибо Easyrider83 за это сообщение:
E_C_C (16.07.2012), gary2007 (16.07.2012), warel (29.06.2019)
Непрочитано 16.07.2012, 10:06  
E_C_C
Почётный гражданин KAZUS.RUN
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,827
Сказал спасибо: 750
Сказали Спасибо 679 раз(а) в 382 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

Сообщение от Easyrider83 Посмотреть сообщение
Вы не забыли, что EEPROM не бессмертный? Это так, дополняя общую картину.
С конденсатором тоже не все так просто. А что будет, если питание пропало и появилось? А конденсатор не успел разрядится.
Помню, для тестов 10000 циклов хватит, потом сделаю перебор адресов.
Если питание просто кратковременно пропало , то программа уходит в бесконечный цикл и сбрасывается сторожевым таймером. Проблем с зависанием МК нет, как ни дергай питание проверяли по всякому. Именно проблема с самопроизвольным переключением в 1. Хотя разница опять же только в питании на столе у меня лабораторный источник , а в поле простой импульсный. Навешивание емкостей на источник не помогает.
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Сказали "Спасибо" E_C_C
warel (29.06.2019)
Непрочитано 16.07.2012, 10:08  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,458
Сказал спасибо: 3,227
Сказали Спасибо 3,511 раз(а) в 2,392 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

1. Контроль питания включен?
2. Светодиод без резистора.
ForcePoint вне форума  
Сказали "Спасибо" ForcePoint
warel (29.06.2019)
Непрочитано 16.07.2012, 10:27  
E_C_C
Почётный гражданин KAZUS.RUN
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,827
Сказал спасибо: 750
Сказали Спасибо 679 раз(а) в 382 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

1 нет, , включать на 4,3 нет смысла т.к диод по питанию уже съест 0,7В. Получается следующее значение 2,7в, есть сомнения , что корректно пройдет запись, до того как BOD сработает.
Тут надо попробовать, просто я где-то читал, что не рекомендуется включать BOD при работе с еепром.

2 резистора нет т.к это симуляция, на самом деле он есть. в остальном схема совпадает.
__________________
Да здравствует Разум,да сгинет Маразм!

Последний раз редактировалось E_C_C; 16.07.2012 в 10:30.
E_C_C вне форума  
Сказали "Спасибо" E_C_C
warel (29.06.2019)
Непрочитано 16.07.2012, 10:54  
DK
Почётный гражданин KAZUS.RUN
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,480
Сказал спасибо: 734
Сказали Спасибо 1,899 раз(а) в 777 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

А что, ноги просто в воздухе висят? Те, на которых кнопки? Подтяжка внутренняя?
Я в АВР - как свинья в апельсинах. Может быть подтяжка слишком высокоомная? Я б 10к поставил, не больше. И емкость на землю.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Сказали "Спасибо" DK
warel (29.06.2019)
Непрочитано 16.07.2012, 11:10  
E_C_C
Почётный гражданин KAZUS.RUN
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,827
Сказал спасибо: 750
Сказали Спасибо 679 раз(а) в 382 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

Сообщение от DK Посмотреть сообщение
И емкость на землю.
подтяжка внутренняя , но я пробовал и с внешней 1Ком.Отделить бы мух от котлет , кто виноват ложно срабатывает кнопка или некорректно считывается память. Самое главное на столе от ЛБП таких глюков нет, эксперименты надо производить на месте, а там условий нет . Попробую притащить всю ту требуху к себе собрать может что и проясниться.
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Сказали "Спасибо" E_C_C
warel (29.06.2019)
Непрочитано 16.07.2012, 11:31  
kratmel
Прописка
 
Регистрация: 02.08.2010
Сообщений: 133
Сказал спасибо: 9
Сказали Спасибо 65 раз(а) в 50 сообщении(ях)
kratmel на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

В рекомендациях от Атмела нельзя писать в 00 ячейку - она сама себя при сбоях питания портит (так как адресный регистр самообнуляется).

Не нравится мне идея запоминать сосотяние во внутренней епром (особенно на 2313). "Протирается" она. Дублировать запись в нескольких ячейках и т.д. + алгоритм самопроверки при включении + алгоритм "наименьших потерь" при непрохождении проверки + внешний супервизор питания - сильно большая война изза RS тригера.

Встречный вопрос, а на кмоп-е с батарейкой (аккумулятором) сгородить не получится. Два диода для переключения на резерв- питание.
kratmel вне форума  
Эти 2 пользователя(ей) сказали Спасибо kratmel за это сообщение:
E_C_C (16.07.2012), warel (29.06.2019)
Непрочитано 16.07.2012, 11:33  
st__1
Заблокирован
 
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
st__1 на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

R1 не к выходу КРЕН, а к входу... и последовательно стабилитрон...
Тогда хватит времени и "дребезг" отработать...
Светодиод при фиксации спада питающего напряжения выключать... для снижения потребления...
Попробуйте "троировать" запись в EEPROM... это поможет локализовать причину сбоя...
st__1 вне форума  
Эти 2 пользователя(ей) сказали Спасибо st__1 за это сообщение:
E_C_C (16.07.2012), warel (29.06.2019)
Непрочитано 16.07.2012, 11:50  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

Сообщение от kratmel Посмотреть сообщение
Встречный вопрос, а на кмоп-е с батарейкой (аккумулятором) сгородить не получится.
С батарейкой и сам проц в своем ОЗУ удержит. Потребление меньше микроампера
niXto вне форума  
Сказали "Спасибо" niXto
warel (29.06.2019)
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
D-триггер evgenjke Микроконтроллеры, АЦП, память и т.д 19 24.11.2011 11:26
Микроконтроллеры с FRAM памятью niXto Микроконтроллеры, АЦП, память и т.д 63 01.08.2011 21:24
Схема импульсника с ПЗУ памятью Damon Dragon Поиск схем. Делимся схемами 1 01.06.2010 20:19
Работа с памятью серии AT29 andreiesafov Микроконтроллеры, АЦП, память и т.д 2 02.08.2008 16:40
Pic с внешней памятью и дисплеем dvg89 Микроконтроллеры, АЦП, память и т.д 0 12.04.2008 02:32


Часовой пояс GMT +4, время: 00:30.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.