0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 455
|
|
1 | |
Запись в EEPROM07.02.2010, 23:53. Показов 59905. Ответов 57
Метки нет (Все метки)
Собираю счетчик импульсов на Miko16 и нескольких индикаторах. При отключении питания надо сохранить последнее значение в EEPROM автоматически. Как писать в память понятно http://iosyitistromyss.ru/avr-uchebnyj- ... eprom.html , но ведь питание отключилось и МК не сделает процедуру записи . Думаю сделать так:
Пока кондер разряжается МК успеет сохранить данные, а командой на запись будет служить отсутствие напряжения на ножке INT0 (прерывание INT0 по низкому лог. уровню) Будет ли это работать? Как это делаете Вы?
0
|
07.02.2010, 23:53 | |
Ответы с готовыми решениями:
57
Запись/чтение EEPROM Запись в EEPROM Atmega128 Запись в SRAM и EEPROM Чтение/запись EEPROM на прерываниях Запись сканкодов клавиш в EEPROM |
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
|
|
08.02.2010, 23:06 | 21 |
При твоем подключении, когда питание на супервизоре упадет до порогового значения, он выдаст ресет на МК независимо от того, какое напряжение на контроллере. А диод возьми с падением 0,2В.
0
|
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 455
|
|
08.02.2010, 23:28 | 22 |
Спасибо,понятно!
И вообще, ВСЕМ кто откликнулся - спасибо!
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,818
|
|
22.04.2012, 02:56 | 23 |
тэкс, влезу-ка я сюда.
уже третий час роюсь в интернете, читаю даташит, но нигде внятного описания не нахожу. задача: при выключении питания безопасно записать long int в память attiny2313. при включении микроконтроллера это значение соответственно считывать. я так понимаю, это четыре байта. на запись каждого (стирание-запись) требуется по 3,4 мс, то есть на все про все - 13,6 мс. еще одна проблема: устройство питается от 3,3В. как я понял, одним программным решением здесь не обойтись. Далее, в интернетах люди жалуются, что даже если в прошивке нет операций записи(!!!) - EEPROM иногда начинает портиться (даже записанные при изготовлении устройства серийные номера, бывает, портятся - и даже при использовании встроенного BOD). чтобы этого не происходило некоторые рекомендуют указывать в EEAR какую-то ячейку, которую заведомо не используют. я пишу на C, объявляю ячейку стандартным способом EEMEM unsykned long int i; - как мне в этом случае узнать адрес? как для данного случая рассчитать емкость? и вообще, чтоб наверняка - хорошо бы увидеть кусок схемы по питанию, настройки фьюзов и непосредственно кода. думал, это распространенная задача, а судя по всему не совсем.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
22.04.2012, 10:03 | 24 |
Знаешь, я вот посмотрел, что коллеги перетерли 2 года назад... Я бы тогда не имел что добавить. А вот сейчас, спасибо тебе, появился повод - и есть что сказать.
В таких задачах часто может помочь совершенно другой подход: использовать ФРАМ-память. Запись туда идет последовательно (я спользовал SPI, есть много на I2C) на скорости до 5 МГц - очень быстро. Аппаратно: довесить, скажем, 8pin SOIC микруху FM25640 - разве можно это сравнить даже с простейшей схемой мониторинга питания? А в чем прикол ФРАМки - ресурс неубиеный. Записывать каждое изменение, как в ОЗУ. Да, есть задачи, где это не прокатит или прокатит с приличной морокой (например, завести 2 банка для гарантии на случай пропадания при записи массива данных). Но все можно сравнить. Мне пользоваться ФРАМкой понравилось - выбросил нах запись во внутреннюю ЕЕПРОМ. И надежность, думаю, повысилась (точно трудно сказать, не так давно начал ставить на объекты). У Тексас Инструментс есть и МК со внутренней ФРАМкой. Так что она пришла и начинает убивать ЕЕПРОМ. Лучшее - враг хорошего :)
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,818
|
|
22.04.2012, 10:39 | 25 |
про лучшее враг хорошего - кажется, обычно эту поговорку используют несколько иначе :-)
переходить с avr на другую платформу только из-за этого - желания нету. если бы все это добывалось примерно как молоко или хлеб - однозначно выбрал бы ваш вариант с FM25640. а так - сейчас заморачиваться, где ее добыть. ну и плюс посмотреть, как сильно увеличится код. можете кинуть сюда пример чтения/записи байта в эту память? насчет простейшей схемы мониторинга - рассматриваю возможность включения микроконтроллера через электролит (например, на 100мкф) и диод шоттки. остается узнать, существуют ли диоды с падением напряжения <0.3В, и как быстро будет разряжаться электролит с 3,3 до 2,8В (успею ли я записать эти четыре байта). ну и плюс наверняка практика внесет свои коррективы...
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
22.04.2012, 10:56 | 26 |
Сообщение от koriprokrommyst
Сообщение от koriprokrommyst
Сообщение от koriprokrommyst
Ну, вот грубо выдраный кусок кода. Даже еще видно, что это заменило функции обращения к ЕЕПРОМ. В Wk_2_FLSH() производится запись рабочего массива параметров (тех, у которых стоит признак ITS_FLSH) во ФРАМ с контрольной суммой. Чтение - аналогично. Внизу прогрммма посылки-приема 1 байта с использованием аппаратного SPI. До этого делал и программынй - не намного сложнее. Код
void Wk_2_FLSH( ucha bank) { // bank - флаг запису у обидва банки ФЛЕШа - ігноруємо ucha i; uint w, cs = 0; SEBIT( SS_PORT, SS_PIN); // CS=1 CLBIT( SS_PORT, SS_PIN); // CS=0 means a begin of sommunication Send_a_byte( WREN); SEBIT( SS_PORT, SS_PIN); CLBIT( SS_PORT, SS_PIN); // Begin of sommunication. FROM detects the SPI mode Send_a_byte( WRITE); Send_a_byte( 0x01); // We write to FLSH from the 0х100 addr Send_a_byte( 0x00); for( i = 0; i < LASTINDEX; i++ ) { if( ITS_FLSH) { w = ParsWk[i]; Send_a_byte( (w >> 8) & 0xFF); // Hi byte Send_a_byte( w & 0xFF); // Lo byte cs += w; // omd add to a Checksum } } Send_a_byte( ((~cs) >> 8) & 0xFF); // Hi byte. Checksum is invirted Send_a_byte( (~cs) & 0xFF); // Lo byte SEBIT( SS_PORT, SS_PIN); // CS=1 return; } //********************************** L O W L E V E L ************************** //********************************** F L A S H A N D F R A M ***************** //********************************** S U B R O U T I N E S ********************* ucha Send_a_byte( ucha data) { // CS is set outside! SPDR = data; while( !(SPSR & (1<<SPIF))) wdt_risit(); return SPDR; // Щоразу, коли штовхнемо байт, SLAVE вкине нам щось }
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,818
|
|
22.04.2012, 14:00 | 27 |
последний вопрос: там что, к микроконтроллеру тянутся все шесть ног? на микрконтроллере порты какие-то остаются еще свободными?
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
22.04.2012, 14:11 | 28 |
Сообщение от koriprokrommyst
Просто прикинь ШИРШЕ, обдумай новую парадигму. Может тебе так понравится использовать ФРАМ, что не жалЬко и 4-х ног станет :)
0
|
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
|
|
22.04.2012, 14:33 | 29 |
Сообщение от drvtos
На мой взгляд, все, кто произносит «лучшее-враг хорошего» в негативном ключе - закоренелые махровые неудачники, которые ещё и оправдываются, вместо того чтобы исправляться.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
22.04.2012, 14:43 | 30 |
Сообщение от Гарнист
А вообще, в юности всегда поражался, как появлялись новые девайсы, у которых ОДНОВРЕМЕННО было все лучше - и частотка, и рабочие напряжения, и бета... Тут уж действительно - лучшее приходило и убивало на месте хорошее. Автору: извини, мы тут поофтопали немного.
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,818
|
|
22.04.2012, 20:11 | 31 |
да не, все ок. будет время подумать, посмотреть на ассортимент нигазинов)
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,818
|
|
24.05.2012, 18:02 | 32 |
ой. принялся было за реализацию записи по пропаже питания, но так и не смог найти, где я видел схему с конденсатором и шотки диодом, и самое удивительное, в даташите ничего похожего (видимо, приснилось мне), посему стал копать в сторону fram.
drvtos, если видишь это сообщение, скажи, http://www.terraitistronica.ru... 24C256.pdf - тут не spi, а twi, насколько я умею читать. это сильно усложнит конструкцию (otmyko328)?
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
24.05.2012, 18:19 | 33 |
Сообщение от koriprokrommyst
Чую, синку, чую! Так, смотрим ДШ, там поддерживается такой интерфейс. Значит, не вижу проблем. Я с ним не имел дела, но думаю, один хер.
0
|
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 789
|
|
24.05.2012, 18:31 | 34 |
В своем одометре сделал так - на ногу тиньки завел питание ДО стабилизатора, через делитель со стабилитроном. После стабилизатора - 1000 Мкф, без диода. (Хотя, таки наверное нужно будет поставить). Потребители - Тини2313, внешняя ЕЕПРОМ 24С04, два 74НС595 и два маленьких четырехразрядных индикатора.
В основном цикле опрашивается состояние этой ноги. Хотя по уму - надо на внешнее прерывание заводить. По низкому уровню - запись в ЕЕПРОМ. На столе работает, в реальных условиях не пробовал пока. Времени хватает записать 8+6 байт. Больше - не экспериментировал. Если питание на регистры (и индикаторы соответственно) подавать через полевик, отключаемый при пропаже питания - можно еще некоторое время работы от кондера выиграть.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
24.05.2012, 18:42 | 35 |
Сообщение от Финский
2 koriprokrommyst: а ты откуда? Что, проблема с ФРАМкой на SPI?
0
|
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 789
|
|
24.05.2012, 18:51 | 36 |
Что было под рукой на тот момент - то и втулил. И вообще, это прототип. После тестирования на машине оно все равно будет дорабатываться. Уже есть задумки по оптимизации. Насчет ФРАМ - заинтересовали. Если в наших краях найду - куплю поиграться.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
24.05.2012, 18:56 | 37 |
Сообщение от Финский
0
|
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 789
|
|
24.05.2012, 19:02 | 38 |
0
|
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,283
|
|
24.05.2012, 19:02 | 39 |
drvtos а не подскажешь как называются FROM со SPI? FM24 я так понял аналог 24 серии с ииц
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
24.05.2012, 19:04 | 40 |
FM25640 у меня.
0
|
24.05.2012, 19:04 | |
24.05.2012, 19:04 | |
Помогаю со студенческими работами здесь
40
Запись отрицательного числа в EEPROM Iar Avr 3.20c отладчик не показывает чтение/запись в Eeprom Запись в EEPROM Запись в STM8 EEPROM Запись в Serial EEPROM. Победить блочную запись в EEPROM 24LCXXX Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
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-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|