проблема с внешней энергонезависимой памятью
- Войдите на сайт для отправки комментариев
всем привет, столкнулся с проблемой.
делаю авто полив на 4 цветка , все вроде норм , но тут я столкнулся с проблемой - память , точнее при отключении питания все переменные
и все что мой авто полив запомнил(количество поливов,сколько воды ушло,и на сколько я поставил влажность и.т.д) слетает,стирается.
нашел решение - внешнее EEPROM , но я узнал что он со временем когда уж очень часто перезаписывать (умирает),
знаю что там 100.000 можно циклов перезаписи , но меня это не очень устраивает.
слышал я что есть также внешние FRAM память, но она вроде энергозависимоя
, можно ли подключить по схеме конденсатор к FRAM чтобы поддержать питания , мне нужно чтоб он хранил данные около 3-6 дня. , ?
А вы на чем сам полив ваяли?
В стандартных ардуинах есть внутренний EEPROM на 512/1024/4096 байт. Если записывать ячейки 1 раз в час, то ресурса перезаписи в 100.000 раз хватит на 11 лет. И эти сто тысяч - это средний ресурс, то есть в реальности eeprom может выдержать как 10 тысяч циклов, так и 300 и даже миллион. То же самое относится и к внешнему eeprom.
К FRAM не нужен конденсатор, оно и само держать будет. Если писать в разные ячейки EEPROM, то, кол-во циклов виртуально увеличится: например (1024 ячейки / 10 байт) * 100 0000 = 10 200 000 записей.
Прочитай, что найдешь, про "ионистор". У мня, ради экперимента, PCF8583 живет на ём уже 143 дня. :)
ferot7a37 - начнем с того, что вы очевидно что-то неверно делаете, если вас вдруг озаботил ресурс ЕЕПРОМа. Поймите общий принцип - записывать данные в него надо только тогда, когда что-то меняется. Например, полили вы одно растение - записали. И до следующего полива ничего не пишете. Сколько раз вы поливаете цветок в день? - два, три. ну пять раз. Тогда значит ЕЕПРОМа вам хватит НА ГОДЫ.
И еще - в стандартной ардуино (Уно, Нано, Мега) - ЕЕПРОМ уже есть, встроенный, так что внешний докупать не надо.
И никакой FRAM не нужен
Я решил проблему по-другому. Правда на есп8266, но принцип один.
высокое питание-12в. Преобразователь dc-dc . Развязывающий диод. Низкая сторона 5в (на есп 3.3). Собственно контроллер.
на высокой стороне оптрон. На низкой он висит на одном из входов. Соответственно, когда на этом входе ноль, все ок, когда единица, то пропала высокая сторона. Мк обвешан конденсаторами. На есп мне хватает двух по 3300 мкф. Поэтому питания хватает понять , что на контрольной ноге единица, скинуть все критичные данные в еепром, ожидать в дэлээ , пока питание кончится.
при появлении питания все поднимается обратно в переменные и продолжает работать.
если на 3.3v емкости просто заменить на липольку, то и зарядника специального не нужно и можно уходить в дислип , и периодически просыпаясь что-нибудь изредка делать. Например на есп и аккуме 1500 это все передает температуру раз в пять минут в течение недели.
получается что лучше будет если я буду записывать данные в EEPROM только тогда когда я буду отключять ардуинку от питания? EEPROM подключается по I2C , а FRAM вроде бы нет . и с FRAM Как то сложней работать чем с внешним EEPROM . И с втроииным я думаю будет хуже чем с внешним, внешний можно заменить не выбрасывая ардуинку.
я не знаю, почему у вас так "получается"...
Я бы для вашей задачи
1)использовал встроенный ЕЕПРОМ
2) записывал в память действия сразу после их выполнения - полив по одному адресу. влажность по другому. ну и так далее. Не так много у вас действий, чтобы экономить циклы записи и писать данные только при выключении питания. При грамотном программировании вам ЕЕПРОМ хватит очень надолго.
Кроме того, ардуинки сейчас стоят копейки
Причем добавлю, что гарантированные 100 000 это на граничных диапазонах использования МК. При комнатной температуре они вырастают на порядки, не помню на этом форуме или другом проводили эксперимент. Ячейки начали дохнуть где-то на 6-7 миллионе записей. Девайс к тому времени рассыплется от старости.