|
EEPROM. Счетчик времени наработки., AT24C02B + mega128 |
|
|
|
Jul 13 2008, 07:01
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 25-01-06
Из: Самара
Пользователь №: 13 578

|
Цитата(aaarrr @ Jul 13 2008, 04:20)  Цена одинаковая - около 0. Количество записей совпадает. Интерфейс на меге придется делать программно. Ну, на самом деле, 93С46 будет подороже. чем 24С02. А вот насчет интерфейса - пожалуйста, поподробнее. Кажется, на большинстве ATMega SPI интерфейс аппаратный? Кстати, 24С02 не стоит использовать - сейчас минимальный кристалл, рекомендованный производителями - 24С04. Что касается удобства и простоты сохранения данных - лучше, на мой взгляд, использовать SPI память типа 93C46 или 25040A (или людой другой емкости) - она просто быстрее в обмене, чем I2C. Для увеличения ресурса записи можно посмотреть рекомендации Atmel'а "AVR101: High Endurance EEPROM Storage". Но в своей практике я предпочитаю продукцию RAMTRON - FM24C04 или FM24C16. Их основное преимущество - отсутствие 5 мсек задержки на запись и 1Е12 циклов записи в одну ячейку, что перекрывает любые мыслимые потребности... Кстати, у RAMTRON'а есть и SPI память, если хочется побыстрее. Цена вполне сопоставима с 93С46 и в полтора раза выше, чем у AT24C16.
|
|
|
|
|
Jul 13 2008, 17:31
|

Участник

Группа: Участник
Сообщений: 71
Регистрация: 24-02-08
Из: Москва
Пользователь №: 35 348

|
Цитата А чем не подходит стандартная реализация? Так и хотел сделать. С EEPROM вроде все ясно. Я стал смотреть в сторону FRAM... Оправдано ли её применение здесь, или стоит остановиться на EEPROM...?
|
|
|
|
|
Jul 13 2008, 17:54
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 4-05-06
Пользователь №: 16 779

|
Цитата(Spym @ Jul 13 2008, 21:31)  Так и хотел сделать.
С EEPROM вроде все ясно. Я стал смотреть в сторону FRAM... Оправдано ли её применение здесь, или стоит остановиться на EEPROM...? А зачем? Встроенной ЕЕРROM должно хватить. Только стирать её всю не надо, а по заполнению переписывать ячейки сначала. Ну и стандартные рекомендации - не использовать нулевой адрес, включить BOD.
|
|
|
|
|
Jul 13 2008, 21:04
|

Частый гость
 
Группа: Свой
Сообщений: 176
Регистрация: 2-04-08
Из: Днепропетровск
Пользователь №: 36 406

|
Цитата(Spym @ Jul 13 2008, 20:31)  Так и хотел сделать.
С EEPROM вроде все ясно. Я стал смотреть в сторону FRAM... Оправдано ли её применение здесь, или стоит остановиться на EEPROM...? Не забивайте голову выбором - юзайте FRAM.
--------------------
Ребята, как же это вы без гравицапы пепелац выкатываете из гаража? Это непорядок. ©
|
|
|
|
|
Jul 14 2008, 07:29
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 7-05-08
Пользователь №: 37 343

|
Serjio: "...ресурсов хватит почти на 2 года..."
Пожалейте эксплуататоров. В результате придется каждый год менять.
|
|
|
|
|
Jul 15 2008, 03:40
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 4-04-07
Пользователь №: 26 760

|
ИМХО количество запусков лучше считать при подаче питания. Спросите, а как же сбросы контроллера? Если прибор имеет хорошее питание, то их число минимально и ими можно принебречь.
Делал года три назад приборчик маленький, в нем записть во внутреннюю EEPROM контроллера осуществляется каждые 2-3 минуты. Прибор до сих пор работает и "умирать" не собирается.
В ответственных приложениях лучше использовать FRAM. Много плюсов имеет. Да и скорость записи выше, чем у еепром.
Отличный вариант хранить не большой объем данных в часах.
|
|
|
|
|
Jul 15 2008, 09:41
|
Группа: Новичок
Сообщений: 2
Регистрация: 8-07-08
Пользователь №: 38 805

|
Если не критична точность - можно просто обновлять значение в EEPROM с соответствующей периодичностью. При обновлении раз в минуту получается 500000 записей на год работы (и это учитывая лишь время включения станка).
|
|
|
|
|
Jul 15 2008, 11:38
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 4-04-07
Пользователь №: 26 760

|
Цитата(aaarrr @ Jul 15 2008, 14:57)  ИМХО, самый плохой вариант, если нужно считать время наработки. Кончится батарейка и данные будут утеряны безвозвратно. Смотрим в сторону FM31xx от Ramtron. Часы + Память в одном флаконе. Замечательное решение!
|
|
|
|
|
Jul 15 2008, 11:57
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 4-04-07
Пользователь №: 26 760

|
Вариантов привели огромное количество. Думаю автор поста сможет выбрать из предложенных вариантов наиболее подходящий.
|
|
|
|
|
Jul 15 2008, 13:43
|
Профессионал
    
Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347

|
Цитата при записи раз в 10 минут ресурсов хватит почти на 2 года это что за станок такой, который включается/выключается каждые 10 минут круглосуточно ? даже если писать раз в час, внутреннего eeprom хватит минимум на 5 лет, если организовать кольцевой буфер на 10 записей - то на 50 лет. думаю станок раньше загнется  .
|
|
|
|
|
Jul 15 2008, 20:39
|
Частый гость
 
Группа: Свой
Сообщений: 137
Регистрация: 3-09-04
Пользователь №: 594

|
Курим datasheet на мегу8 (и прочие меги) : 512 Bytes EEPROM Endurance: 100,000 Write/Erase Cycles
Предположим, что писать будем раз в 10 минут. т.е. при отсчитывании очередных 10 мин. производится запись суммарной наработки в eeprom. Если станок обессточивается во время работы, то максимальное неучтенное время - почти 10 мин. (Это как повезет). При наихудшем стечении обстаятельств за (предположим) неделю было 10 отключений (обед + конец смены)*5рабочих дней вы можете потерять 10*10=100 минут наработки. Мы в свое время выводы сделали и наработку считаем в FRAM по 10 сек. Теперь, если писать все время в одну ячейку (EEPROM), то ее хватит 100000*10/(60*24*365)=1.9 Года (Это соответственно при непрерывной работе станка), но кто даст гарантию, что станок не будет работать в 3 смены. Если станок необходим в производстве, то так оно и будет. Простои оборудования-это убытки. Кольцевой буфер конечно может спасти, но за счет усложнения мат обеспечения, и если есть свободные ресурсы (по таймингу, по свободной памяти программ и EEPROM).
|
|
|
|
|
Jul 16 2008, 07:36
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Вот как я представляю себе это  Прошу критиковать. (применение FRAM, батареек - простите, это другая песня, речь идёт именно об использовании родного ППЗУ в кристалле). В EEPROM выделяем буфер N слов. Слово 4 байта ( 3 байта число минут, хватит на 32 года, 1 байт CRC). При прошивке расписываем буфер нулями с правильным CRC. При включении прибора ищем ближайшее слово с правильным CRC. (адрес P) Его значение переписывааем в RAM, там наращиваем каждую минуту. Дальше ищем от P+1 до P-2 по кольцу слово с правильным нулём (в смысле CRC), адрес Q. Если нет - пишем нуль+CRC в P+1 .. P-2 пока получится. Во время работы каждую минуту записываем значение времени в Q с проверкой. Не получилось - ищем/организуем следующее слово для записи, как описано выше. Что получается. Буфер содержит "хвост" из счётчиков последних включений с правильным CRC. По жизни EEPROM исчерпывает ресурс, и тогда получается неверный CRC. Вся эта байда работает, пока не испортятся все слова буфера, кроме одного. Тогда в нём содержится счётчик наработки на момент исчерпания ресурса. Точность 1 минута, потери возникают при включении меньше, чем на минуту и при каждом выключении. То есть прибор при нормальной работе включается на десятки минут. Чтобы не писать каждую минуту и избежать потерь при выключении, можно организовать контроль питания и буферный кондёр такой, чтобы хватило на запись. Но это уже третья песня  Что хочется узнать. Как портятся ячейки EEPROM - становятся FF, 00 или ещё как-то? Для проверки правильности записи - CRC или ещё что-то?
Сообщение отредактировал Maik-vs - Jul 16 2008, 07:44
|
|
|
|
|
Jul 18 2008, 08:00
|

Частый гость
 
Группа: Свой
Сообщений: 176
Регистрация: 2-04-08
Из: Днепропетровск
Пользователь №: 36 406

|
Цитата(prm @ Jul 15 2008, 14:38)  Смотрим в сторону FM31xx от Ramtron. Часы + Память в одном флаконе. Замечательное решение! А вы пробовали? Кстати, народ, обратите сразу внимание на несколько неудобную реализацию reset у этих чипов.
--------------------
Ребята, как же это вы без гравицапы пепелац выкатываете из гаража? Это непорядок. ©
|
|
|
|
|
Jul 18 2008, 08:22
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 25-01-06
Из: Самара
Пользователь №: 13 578

|
Цитата(Maik-vs @ Jul 16 2008, 12:36)  Вот как я представляю себе это  Прошу критиковать. (применение FRAM, батареек - простите, это другая песня, речь идёт именно об использовании родного ППЗУ в кристалле). В EEPROM выделяем буфер N слов. Слово 4 байта ( 3 байта число минут, хватит на 32 года, 1 байт CRC). При прошивке расписываем буфер нулями с правильным CRC. .... Что хочется узнать. Как портятся ячейки EEPROM - становятся FF, 00 или ещё как-то? Для проверки правильности записи - CRC или ещё что-то? Поскольку изначально предлагалось писать в 24С02, то вопрос использования внутреннего EEPROMа не поднимался. Для использования EEPROM я применял лет пять назад следующий алгоритм: 3 зоны памяти - 2 байта, 256 байтов и 4х256. В первой зоне - два старших байта (3 и 2) сохраняемого числа. Они пишутся с разрядкой 1/65536 относительно частоты записи. Во втором блоке - средний байт (1), причем адрес внутри блока определяется байтом (2). Младший байт пишется в массив 1024(4х256) по адресу, определяемому байтом (1) и младшими разрядами байта (2). Запись в каждую зону - строго по изменению соответствующего байта. Таким образом, живучесть каждой записи определяется живучестью записи самого младшего байта - 600 000 Х 1024, что дает порядка 20 лет неперывной записи с периодом в 1 секунду... Естественно, применялась 24С16 - 2К байтов. Свободные ячейки пошли на служебные параметры процессора... Правда, такой вариант применим только при наличии внешней EEPROM, поскольку надежность записи напрямую зависит от объема памяти. Еще одна проблема внутреннего EEPROMа - запись в одну ячейку за раз, в то время, как 24 серия имеет буфер на 8-16-32 байта одновременной записи.
|
|
|
|
|
Jul 24 2008, 16:45
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 25-01-06
Из: Самара
Пользователь №: 13 578

|
Цитата(Spym @ Jul 24 2008, 14:53)  Уже готова разводка под FM25C160 (FRAM). Планирую записывать время наработки 1 раз в секунду, используя 2 ячейки (запись в каждую ячейку через раз), то есть в случае отключения питания в процессе записи счетчик потеряет не более 1 секунды. Для FRAM'а существенно напряжение питания: 4.5 ..5.5 В. Если питание будет ниже 4.5 В во время обращения к чипу (все равно - по записи или чтению), вы рискуете потерять не только данные в ячейке обращения, но и во всех связанных с ней ячейках строки регенерации - конкретно для FM25C160 - 4 байта в 4-х разных банках. Поэтому производитель настоятельно рекомендует (page 3) контролировать питание и принимать меры, чтобы хотя бы сигнал CS был "1" при пониженном напряжении. В своих схемах я перед обращением к FRAM'у проверяю уровень "сырого" питания (до стабилизатора), выбранный так, чтобы времени разряда конденсатора фильтра до минимального входного напряжения стабилизатора хватило на операцию записи/чтения. При этом важные данные хранятся блоками с CRC. Кстати, не стоит полагаться на внутренние подтягивающие резисторы выводов процессоров - обязательно подтягивайте CS резистором 10..100 КОм к плюсу питания.
|
|
|
|
|
Aug 25 2008, 12:59
|
Частый гость
 
Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801

|
Цитата(Spym @ Jul 13 2008, 01:37)  Доброго времени суток.
Требуется хранить в энергонезависимой памяти количество запусков станка и время наработки, для чего предполагается использовать что-то вроде Atmel AT24C02B.
Запись значений в EEPROM производится при отключении питания, пока конденсаторы держат 5В.
С целью увеличить ресурс памяти, была мысль организовать работу с ней следующим образом:
Изначально во все ячейки записаны 0x00. При отключении устройства пишем значения в ближайшие свободные ячейки. При последующем включении читаем последнюю ячейку перед 0x00. Если после прочитанной ячейки нет свободных, записываем во все ячейки 0x00 (т.е. следующая запись с первой ячейки).
(Скорость в данном случае не критична). Возможно, кто решал схожие задачи? Если нужно писать более одного байта то лучше использовать FLASH.. Тем более что она и пишется быстрей (4.5мС против 8-9мС у EEPROM)
|
|
|
|
|
Aug 25 2008, 13:20
|
Частый гость
 
Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801

|
Цитата(Igor26 @ Aug 25 2008, 16:06)  Послушайте уважаемый. Вы темы читаете полностью, или только заголовки? Интересно, на сколько тем вы еще ответите за сегодня. Человек спросил, я ему дал совет из своего опыта....Хотел помочь
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|