Является ли EEPROM лучшей альтернативой для хранения энергонезависимых значений с помощью Arduino?
SD-карты способны хранить значения, даже если они отключены.
Я не знаю, как долго EEPROM может хранить значение в своей памяти, но, конечно, это лучше, чем энергозависимая память.
Есть ли другие способы хранения энергонезависимых значений для Arduino?
Каким из них требуется встроенное оборудование, а каким нет?
Является ли EEPROM лучшей альтернативой (с точки зрения возможностей, долговечности и стоимости) для хранения энергонезависимых значений, когда мы говорим об Arduinoх (или даже микроконтроллерах в целом)?
@Guilherme, 👍-3
Обсуждение1 ответ
Лучший ответ:
EEPROM на Atmega328P (например, на Arduino Uno) содержит 1 КБ (1024 байта) и имеет документированный цикл записи/стирания, равный 100 000 операций записи.
Итак, если вашему приложению необходимо хранить только 1024 байта в энергонезависимом виде, и вы не планируете записывать более 100 000 раз, тогда это подходит.
Я бы использовал EEPROM для запоминания настроек (например, скорости вентилятора, температуры духовки, пароля для доступа к Wi-Fi и тому подобного).
Лично я также использую его для «запоминания»; Коды RFID-карт для доступа в мой дом. По моему опыту, используя его для этой цели, он никогда не «забывал» код. Согласно паспорту, он сохранит данные в течение 100 лет при температуре 25°C.
Это удобно, поскольку не нужно никакого дополнительного оборудования.
Другими альтернативами являются внешние EEPROM на базе SPI или I2C, такие как NVRAM (энергонезависимое ОЗУ), которые будут иметь большую емкость, но вам придется их подключить. Скорее всего, это будет около 5 проводов и место для размещения чипа. Примером этого является Adafruit I2C FRAM Breakout.
Для записи можно использовать карту micro-SD, которую я использовал в другом проекте. измерение температуры каждые 15 минут. У него гораздо больше емкости, чем у EEPROM, и тогда вы можете просто вынуть SD-карту и прочитать ее на обычном ПК. Для этого требуется дополнительное оборудование (например, держатель для SD-карты и, возможно, переключатели уровня напряжения). Однако вы можете купить его примерно за 20 долларов, и его достаточно легко подключить.
Я не знаю, как SQL попал в дискуссию по этому вопросу, но это язык (язык структурированных запросов), а не аппаратное обеспечение.
Другая альтернатива, если вам не особенно нужна переносимость, — отправить данные по соединению с компьютером и записать их там. Возможно, для этого можно использовать Wi-Fi.
Скорость
С точки зрения скорости я бы сказал, что EEPROM является самым быстрым, поскольку он изначально находится внутри чипа. Другие альтернативы требовали отправки сообщений по проводам (I2C, SPI или, возможно, USB) куда-то еще, а это требует времени.
Запись происходит медленнее, чем чтение, поскольку запись требует использования электричества для химического изменения в чипе (превращение 1-бита в 0-бит), но все же это происходит довольно быстро.
Попробуйте FRAM, SPI или I2C, чтение и запись миллиардами. 32K x 8. Вот ссылка: https://learn.adafruit.com/adafruit-i2c-fram-breakout/wiring-and-test, @Gil
@Гил Найс. Простой в использовании и смехотворно дешевый. Я мог бы заказать себе один... или несколько. :) Моя единственная проблема заключалась бы в том, что вам нужно было бы повозиться, чтобы получить данные (если это было требованием). Использование SD-карты упрощает эту часть., @Nick Gammon
Он работает как внешняя EEPROM, но без задержек при чтении или записи. При желании вы можете делать одно место за раз. В целом технологии памяти на основе сегнетоэлектриков (FeRAM, FeFET и FTJ) демонстрируют высокую скорость записи/чтения, длительное хранение, высокую долговечность и низкое энергопотребление записи., @Gil
- Является ли использование malloc() и free() действительно плохой идеей для Arduino?
- Как читать и записывать EEPROM в ESP8266
- Какой реальный срок службы EEPROM?
- Как запомнить значения переменных после перезагрузки платы Arduino Uno R3
- Получить доступ к EEPROM ATtiny с помощью кода Arduino?
- Очистка EEPROM
- Как сохранить переменную с плавающей запятой в EEPROM
- Spiffs против Eeprom на esp8266
лучшая альтернатива для хранения энергонезависимых значений. Обновленный вопрос, @Guilherme
Знаете ли вы, что такое SQL?, @Guilherme
Я имею в виду, дорогой, как лучше всего хранить энергонезависимые значения в Arduino?, @Guilherme
это язык манипулирования базами данных... к вопросу это как бы не имеет отношения, @jsotola
Итак, разве EEPROM и SQL не используются для одного и того же? Хранить энергонезависимые значения?, @Guilherme
вместо того, чтобы вдаваться в детали, как граммар-наци, постарайтесь уловить идею вопроса., @Guilherme
ты не понимаешь. . «лучшее» для одного человека может быть «все равно» для другого… например, один человек может быть заинтересован только в сохранении данных… другой человек может быть заинтересован в скорости записи… и т. д. и т. д. .... итак, что по вашему мнению является «лучшим»?, @jsotola
Так что можно ответить так: Если вас интересует сохранение данных, сделайте так... Если вас интересует скорость записи, то так. Таким образом, мы можем иметь широкое понимание вопроса. Я не могу сформулировать свой вопрос более подробно, потому что если бы я мог, я бы, скорее всего, ответил на него сам., @Guilherme
тогда EEPROM не подходит, поскольку у него есть ограниченное количество циклов записи, прежде чем он выйдет из строя., @jsotola
Я бы не сказал, что альтернатива, это принципиально другое. EEPROM в основном автономен (на кристалле или на плате) и имеет небольшой размер. Для полноценного SQL вам, вероятно, понадобится сетевое соединение и сервер с SQL. Альтернативой EEPROM может быть FRAM (почти неограниченное количество записей), флэш-память (размер, но меньше записей), SD-карта или что-то подобное (еще больше, но также ограниченное количество записей)., @KIIV
@jsotola спасибо. Теперь я ценю ваш ответ., @Guilherme
разве EEPROM и SQL не используются для одного и того же?
... вы путаете аппаратный компонент с программным обеспечением ... сравнение между EEPROM и SD-картой имело бы больше смысла, @jsotola@KIIV Я благодарен. Позвольте мне задать вопрос. Нужны ли SD-карте дополнительные аппаратные детали или нет? Для хранилища типа FRAM и флэш-памяти, как вы сказали, тоже требуется дополнительное оборудование?, @Guilherme
@jsotola ок, я улучшу вопрос, @Guilherme
Обычно требуется несколько проводов и, возможно, слот или около того. Но нет необходимости в полноценном сервере и сети (еще один компьютер), @KIIV
Вопрос улучшен., @Guilherme
Ваш вопрос был отклонен, потому что вопрос о том, что является «лучшим», довольно субъективен. Вы также можете спросить, какую машину лучше купить. Если в следующий раз вы будете более конкретны, вы можете получить лучший ответ и меньше споров. Более общий вопрос типа «Каковы преимущества и недостатки использования EEPROM?» вероятно, можно ответить с помощью поиска в Google., @Nick Gammon