С Новым годом! Форум программистов, компьютерный форум, киберфорум Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/324: Рейтинг темы: голосов - 324, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 455
1

Запись в EEPROM

07.02.2010, 23:53. Показов 59902. Ответов 57
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собираю счетчик импульсов на Miko16 и нескольких индикаторах. При отключении питания надо сохранить последнее значение в EEPROM автоматически. Как писать в память понятно http://iosyitistromyss.ru/avr-uchebnyj- ... eprom.html , но ведь питание отключилось и МК не сделает процедуру записи . Думаю сделать так:

Пока кондер разряжается МК успеет сохранить данные, а командой на запись будет служить отсутствие напряжения на ножке INT0 (прерывание INT0 по низкому лог. уровню) Будет ли это работать? Как это делаете Вы?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.02.2010, 23:53
Ответы с готовыми решениями:

Запись/чтение EEPROM
Первый раз столкнулся со встроенным еепромом, немного погуглил, понял что есть 3 пути работы с ним...

Запись в EEPROM Atmega128
Добрый день! В коде ниже проблемка: записывает только один символ и все. В чем может быть...

Запись в SRAM и EEPROM
Выписать в память EEPROM первые 10 чисел кратные 4, а по адресу $71 в SRAM их сумму. Спасибо!

Чтение/запись EEPROM на прерываниях
Здравствуйте. Подскажите, есть у кого готовый модуль для работы с внутренним EEPROM для mega328,...

Запись сканкодов клавиш в EEPROM
Задача: устройство на МК серии Atmega (или ATTINY) считывает сканкоды с USB клавиатуры, только...

57
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
08.02.2010, 00:14 2
По-моему, не будет. MC34064 проресетит прорцессор, как только питание от источника понизится. Записать ничего не успеешь.
0
SWK
08.02.2010, 00:28 3
Как это делаете Вы?
Обычно для этого контролируют напряжение питания ДО стабилизатора. Когда оно падает, контроллер сохраняет нужные данные, готовясь к прекращению работы. Заряда емкостей, стоящих после стабилизатора, обычно для этого хватает. После записи его можно перевести в режим контроля напряжения, и в случае восстановления, продолжить работу. Если же не восстановится, и начнет падать также и после стабилизатора, сработает внутренний сброс по понижению напряжения, который должен быть разрешен фузами.
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
08.02.2010, 04:15 4
Как это делаете Вы?
Я делал так:

<Изображение удалено>
Половина сдвоенного выключателя подключена параллельно контактам реле. При его замыкании в 1-й момент ток течет через выключатель, замыкая цепь питания БП и контакты реле. МК начинает работать, анализирует наличие "0" на РВ0, который подается на МК второй половиной выключателя. "0" есть- выдаем "1" на РВ1, открывшийся транзистор удерживает контакты реле. Выполняется основная программа. Разомкнув выключатель, получаем на РВ0 "1". Отследив ее, завершаем необходимые манипуляции в программе (транзистор продолжает удерживать реле замкнутым), после чего выставляем "0" на РВ1. Реле размыкается и схема обесточивается.
На схеме не указан MC34064, но его нужно поставить.
0
SWK
08.02.2010, 11:03 5
Разомкнув выключатель, получаем на РВ0 "1". Отследив ее, завершаем необходимые манипуляции в программе (транзистор продолжает удерживать реле замкнутым), после чего выставляем "0" на РВ1. Реле размыкается и схема обесточивается.
К сожалению, ваш вариант с ручной коммутацией не поможет, если пропадет напряжение сети или случайно выдернут вилку из розетки (у нас, например, почти каждый день хоть ненадолго, но сеть отрубается, то из за перегрузок, то еще чего).
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
08.02.2010, 14:22 6
К сожалению, ваш вариант с ручной коммутацией не поможет, если пропадет напряжение сети или случайно выдернут вилку из розетки (у нас, например, почти каждый день хоть ненадолго, но сеть отрубается, то из за перегрузок, то еще чего).
Может, я не очень понял вопрос, но речь шла об отключении, а не о пропадании питания. Я и написал, что схема дает отложенное отключение нагрузки. А если надо отследить пропадание питающего напряжения, то и эта задача решается довольно просто:

<Изображение удалено>
Входной резистор и конденсатор надо считать в зависимости от напряжения. Как работает, думаю, понятно без объяснений. Оптрон типа АОТ101.
0
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
08.02.2010, 14:35 7
А зажигание диодов не будет сдвинуто по фазе от реальной точки? На тот самый косинус фи?
0
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
08.02.2010, 14:38 8
Цитата Сообщение от ArkusB
А зажигание диодов не будет сдвинуто по фазе от реальной точки? На тот самый косинус фи?
А какая разница, если нужно просто успеть сохранить данные в ЕЕПРОМ? Сдвиг конечно будет, тут же емкость в делителе. Но я преследовал цель отследить 220 и развязаться по питанию.
0
SWK
08.02.2010, 15:20 9
А если надо отследить пропадание питающего напряжения, то и эта задача решается довольно просто:
Да нет, проще все-таки со входа стабилизатора через делитель взять. И деталей меньше, и в высоковольтные цепи лишний раз не лезть.
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 2
08.02.2010, 15:30 10
У меня в часах резервное питание на ионисторе сделано. Хватает минимум на 5-6 часов. Но при этом сам avr большую часть времени в глубоком сне проводит и к портам индикаторы не подключены.
И если делать как говорит SWK, то как только питание пропадает нужно сразу выключить индикаторы.
0
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
08.02.2010, 15:52 11
Да нет, проще все-таки со входа стабилизатора через делитель взять. И деталей меньше, и в высоковольтные цепи лишний раз не лезть.
Можно и так. И даже вместо С1 батарейку поставить, с добавлением диода на C34064 (или его исключением). Тогда запишет, однозначно.
В моем случае управляющий и управляемый девайс питались от бесперебойника и выключение должно было произойти корректно, а не тогда, когда батарейка в УПС сядет. Вот и был введен узел на оптроне, который отслеживал напряжение в розетке и небыл завязан на бесперебойник.
Это бы ответ на
Как это делаете Вы?
Кстати, чет топикстартер не проявляется никак.
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 204
08.02.2010, 16:05 12
хм, по соображениям электробезопасности(и экономии) оптимальней брать напряжение со вторичек, низких напряжений.
0
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
08.02.2010, 16:20 13
Цитата Сообщение от oohz
хм, по соображениям электробезопасности(и экономии) оптимальней брать напряжение со вторичек, низких напряжений.
Ага, а когда на мегаомном резисторе напряжение сети гасят и все это без развязки заводится на ножку МК, это как? А ведь даже в апнотах описано;)_
С электробезопасностью тут порядок- платка паяется к 2-контактному разъему питания (типа как для видиков-плееров), от нее к плате мк идут 2 провода (R1 стоит на плате контроллера). А вторички просто нет: используется AIMTEC. Да и, повторю, запитывалось все это с упса.
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 204
08.02.2010, 16:37 14
"даже палка один раз в год стреляет"
лучше перебдеть, чем нюхать корешки ромашек...
0
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
08.02.2010, 16:46 15
Цитата Сообщение от oohz
"даже палка один раз в год стреляет"
лучше перебдеть, чем нюхать корешки ромашек...
Тогда переходим все на батарейное питание!
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 204
08.02.2010, 16:50 16
ну-у-у-у, и 12 вольт убить может...
0
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 455
08.02.2010, 18:45 17
Получается правильная схема у меня. Емкость большая стоит, диод(чтоб питание кондера только на мк расходовалось). Осталось на макетке собрать и проверить.
to STT .........с добавлением диода на МC34064 (или его исключением) - а для чего диод на МС34064 ставить? И куда?
0
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 2
08.02.2010, 19:24 18
Цитата Сообщение от mobtoko
Получается правильная схема у меня. Емкость большая стоит, диод(чтоб питание кондера только на мк расходовалось). Осталось на макетке собрать и проверить.
to STT .........с добавлением диода на МC34064 (или его исключением) - а для чего диод на МС34064 ставить? И куда?
Диод к нему нужен, что бы сброс произошел когда питание на самом МК снизится, а не на выходе стабилизатора. Точнее супервизор нужно подключать после диода, который уже нарисован (тот что VD1) :) И после срабатывания прерывания нужно в первую очередь отключить индикаторы.
Хотя после перехода на avr я супервизорами пользоваться перестал, а включаю встроенный BOD.
0
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
08.02.2010, 19:55 19
Тот контакт МС34064, что в твоей схеме идет на Vcc нужно оторвать и подключить на катод VD1 (+конденсатора С1).
0
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 455
08.02.2010, 22:23 20
Короче схема эта работает в железе, только без МС34064(ее у меня нет,заказал,будет в понедельник).
При подключении +5В к МК через диод, до контролера доходит только примерно 4В (падение напряжения на диоде).При отключении питания, напряжение на МК садится до 2,7В(у меня МК низковольтная,с буквочкой L) за 264 милисекунд, тогда как для записи нужно максимум 9 милисекунд(книга Юрий Ревич).Так что можно успеть 30 регистров запомнить при емкости в 1000мкф.
С монитором питания только так и не понял: для чего именно после диода его нужно втыкать ,а не непосредственно на шину питания. И заказывать надо было не МС34064 - она на срабатывание на 4,7В, а какую нибудь с порогом срабатывания 2,7В.Или вообще без нее, просто с внутренним BOD.
0
08.02.2010, 22:23
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.02.2010, 22:23
Помогаю со студенческими работами здесь

Запись отрицательного числа в EEPROM
Пробую записать с помощью eeprom_write_dword, но сохраняется как положительное число. Как сохранить...

Iar Avr 3.20c отладчик не показывает чтение/запись в Eeprom
Симулятор IAR не показывает чтение/запись в EEPROM. Из файла загружал память и вручную забивал,...

Запись в EEPROM
Не могу осуществить запись в EEPROM (проверка с помощью PIC SIMULATOR IDE) под pic16f676 чтение...

Запись в STM8 EEPROM
Переменные: #pragma location=0x004001 //stort eeprom address __no_init int16_t CorrectionValue; ...

Запись в Serial EEPROM.
Пишу в память. void LOGGER_Write(uint32_t address, uint32_t lenght, uint8_t *data) { #if...

Победить блочную запись в EEPROM 24LCXXX
Нихерасики не получается..... :( Есть устройство stm32F100CBT в качестве мозгов и 24LC64 в роли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru