Советую детальку (eeprom fram)

Тема в разделе "Посоветуйте детальки", создана пользователем ostrov, 10 ноя 2018.

  1. ostrov

    ostrov Гуру

    Поскольку ветки "Советую детальку" нет, поделюсь находкой тут, если кто не знает еще.

    Погонял плату, описанную тут. Работает, все запоминает и вспоминает, кстати тестовая программка там неправильная, она результат пишет не от туда откуда надо. И вообще, пока не уверен, что библиотека от автора оптимальна, есть ли у нее проверка перед перезаписью на повтор (хотя при таком ресурсе это и не обязательно), а так же наверняка нет возможности записывать любые типы данных, включая структуры без их обработки напильником. Но! Параметры памяти зашкаливают, чего стоит только 100 триллионов циклов чтения-записи! И скорость 400 КГц. Обычная встроенная EEPROM курит в сторонке пачку за пачкой. Если скорость нужна и важна, а так же надоело экономить на каждой записи, это выход. Сам чип, кстати, стоит смешные деньги даже на Чип и Дип.
     
    DetSimen, ИгорьК и NikitOS нравится это.
  2. ostrov

    ostrov Гуру

    Живой пример применения. Стояла задача записывать каждую минуту положения стрелок башенных часов на случай отключения питания. Обычного EEPROM хватило бы месяца на три. Даже если извратиться и менять адреса, все равно хватило бы ненадолго. А сколько миллионов лет можно записывать разв минуту в ячейку с ресурсом 10^14?
     
    ИгорьК нравится это.
  3. parovoZZ

    parovoZZ Гуру

    Да, FRAM интересная, но дорогая.
     
  4. ostrov

    ostrov Гуру

    72 рубля дорого?
     
  5. parovoZZ

    parovoZZ Гуру

    за 64 кБ памяти? Очень дорого.
    За осцил лучше скажи что.
     
  6. ostrov

    ostrov Гуру

    Так все сказал же что спрашивали, или нет?

    И нефига не дорого 72 рубля за вечный ресурс. Полно задач, которым не нужно много памяти.
     
  7. ИгорьК

    ИгорьК Гуру

    Спасибо. Очень нужная штука.
     
  8. ostrov

    ostrov Гуру

    Так, народ, немного убил времени пока разобрался, хочу сэкономить его вам. У данного конкретного чипа 8 страниц по 2Kb. Страницы же определяются по адресу i2c, их там восемь, понятное дело с 0x50 по 0x57. Адрес же конкретной ячейки, в отличие от AT24 передается в таком порядке: сначала LSB, за ним MSB, то есть наоборот. Итого, адресуем так: выбираем страницу из восьми предложенных и байт конкретной ячейки LSB-MSB. Важно! Адрес ячейки свыше 2047 кольцуется на начало страницы, то есть 2048 это то же самое что 0, 2049 == 1 и так далее.

    Сейчас откатаю что у меня получилось и могу выложить здесь в виде функций.
     
    ИгорьК нравится это.
  9. parovoZZ

    parovoZZ Гуру

    а подешевле нет FRAM?
     
  10. ostrov

    ostrov Гуру

    Столкнулся со странным явлением, а потому пока выложить функции не могу. При записи и даже при чтении любой ячейки памяти побайтно, соседняя (предыдущая) практически всегда обнуляется. Не понял в чем прикол. Если кто пояснит, буду признателен. Пока что обходится использованием ячеек через одну, например четных, но это как то странно.
     
  11. ostrov

    ostrov Гуру

    По 33 норм? Что за массовое производство? Тоже хочу!
     
  12. ostrov

    ostrov Гуру

    Вариант для записи побайтно по четным ячейкам. Работает стабильно. Чтение-запись других типов данных доработаю потом. Может быть. Если потребуется.
    Код (C++):
    см далее
     
    Последнее редактирование: 14 ноя 2018
  13. DetSimen

    DetSimen Guest

    мошт её надо 2х-байтными словами писать?
     
  14. parovoZZ

    parovoZZ Гуру

    Я бы пошел иным путем (и пойду). Отслеживать наличие питание. Как только заподозрили падение, на остатках емкости сливаем пароли в родное эсппзу. Деталей - пара диодов да кондер. И жрет меньше.
    ну не. Максимум (если из Китая), то lcsc.com. Но порой там ценник на рассыпуху даже дороже, чем в местных лабазах.
     
  15. parovoZZ

    parovoZZ Гуру

    память вполовину скастрировалась?
     
  16. ostrov

    ostrov Гуру

    Тогда бы портился следующий байт, а не предыдущий.
     
  17. видимо это 8 кристаллов в одном корпусе )
    так и у флеши в принципе.
     
  18. SergeiL

    SergeiL Оракул Модератор

    А в даташите сначала MSB, а потом LSB:


    Fram.png
     
  19. SergeiL

    SergeiL Оракул Модератор

    Это описание на CL64, а какая на плате стоит? CL16 или С04?
     
  20. ostrov

    ostrov Гуру

    16. Даташит я видел, по нему и делал сперва. Убил кучу времени, пока сообразил почему по разным адресам одно значение прописывается.