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

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

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

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

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

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

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

 
Опции темы
Непрочитано 16.07.2012, 09:49  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,829
Сказал спасибо: 741
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
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,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
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.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,829
Сказал спасибо: 741
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
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.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,868
Сказал спасибо: 2,950
Сказали Спасибо 3,138 раз(а) в 2,127 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

1. Контроль питания включен?
2. Светодиод без резистора.
ForcePoint на форуме  
Сказали "Спасибо" ForcePoint
warel (29.06.2019)
Непрочитано 16.07.2012, 10:27  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,829
Сказал спасибо: 741
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
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.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,528
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: RS-триггер с памятью на МК

А что, ноги просто в воздухе висят? Те, на которых кнопки? Подтяжка внутренняя?
Я в АВР - как свинья в апельсинах. Может быть подтяжка слишком высокоомная? Я б 10к поставил, не больше. И емкость на землю.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Сказали "Спасибо" DK
warel (29.06.2019)
Непрочитано 16.07.2012, 11:10  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,829
Сказал спасибо: 741
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
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.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
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, время: 12:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot