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

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

  1. SergeiL

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

    Если это все таки FM24C16B - то у нее 8 страниц по 256 байт
    (8 страниц) Х (256 байт) Х (8 бит) = 16 Кбит
     
  2. ostrov

    ostrov Гуру

    Посмотрю повнимательнее, но вообще 1023 ячейки через одну работают, дальше кольцуются.
     
  3. ostrov

    ostrov Гуру

    Может 16 К байт, а не бит?
     
  4. SergeiL

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

    fram1.png
     
    ostrov нравится это.
  5. parovoZZ

    parovoZZ Гуру

    16 кб - это 2 кБ. Давайте правильно писать сокращения, чтобы все понимали друг друга.
     
    ostrov нравится это.
  6. ostrov

    ostrov Гуру

    Действительно, не туда посмотрел. В этом чипе 256 кБ, но черезбайтицу это не объясняет, по прежнему нормально работают каждый второй. То есть, в шахматном порядке можем записать 128 байт на страницу. Байт номер 128 является байтом 0 и так по кругу. В каментах исправил.
     
  7. b707

    b707 Гуру

    если брать поменьше емкость - то на Али есть FM24C04 по 20 рублей за штучку.
    На ардуино.ру мы у этого продавца покупали и испытывали - за 2 дня платка выжержала 70 миллионов перезаписей. потом мне надоело. я остановил эксперимент
     
  8. b707

    b707 Гуру

    ostrov - по-моему у вас ошибка , у вас плата 16Кбит, а не Кбайт, (ЕЕПРОМки всегда измеряются в битах). В итоге в чипе 8 страниц с адресами 0х50-57 по 256 байт . Так что адрес ячейки состоит их двух байт, причем первый - это I2C адрес устройства. А вы в коде зачем-то используете три байта адреса - первый 0x50. а потом еще два, поэтому у вас каждая вторая ячейка обнуляется...
    Правильный код записи байта при страницах 256 байт - (на моей Фрамке работает)
    Код (C++):
    void FM24C_write_byte(byte disk, unsigned int byteAddress, byte data) { // disk: 0x50-0x57,
      Wire.beginTransmission(disk);
      Wire.write(byteAddress);
      Wire.write(data);
      Wire.endTransmission();
      delay(1);
    }
     
    Последнее редактирование: 13 ноя 2018
    DetSimen и ostrov нравится это.
  9. b707

    b707 Гуру

    почему? откуда? FM24C16 - это 16 кбит
     
    DetSimen и ostrov нравится это.
  10. SergeiL

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

    512 байт FRAM вполне достаточно! И даже много! И работать она будет долго!
    Для записи нужно реально сотню ячеек, остальные можно хранить в обычном EEPROM однокристалки.

    В своем время мы использовали Ramtron FM1808 (256Kb Bytewide FRAM Memory) - работают с 2002-го года, до сих пор, с постоянной перезаписью. Проблем нет. (специально в почте посмотрел)
    fram11.png
     
    Последнее редактирование: 14 ноя 2018
  11. parovoZZ

    parovoZZ Гуру

    А чтение быстро идёт? Интерфейс только I2C?
     
  12. b707

    b707 Гуру

    только I2C. тесты на скорость не проводил
     
    DetSimen нравится это.
  13. ostrov

    ostrov Гуру

    256 байт на каждой странице, а их 8.
     
  14. ostrov

    ostrov Гуру

    Вот, кстати, надо проверить, может так и есть. Но опять же почему тогда вообще пишет? То есть нижний и верхний байт адреса не надо? Только нижний? А первым номер страницы? Что то я вообще потерял мысль. А в трансфере разве не номер страницы? Проверю, отпишусь.
     
  15. b707

    b707 Гуру

    ну как почему пишет? - потому что поддерживается последовательная запись. Указываешь адрес первой ячейки. а потом шлешь несколько байт - и они пишутся в ЕЕПРОМ друг за другом, начиная с указанного адреса. Вот в вашем коде так и получается - лишний байт адреса пишется в ЕЕПРОМ как данные

    код мой посмотрите - это не псевдокод, а реальный код ардуино, он работает
     
    DetSimen и ostrov нравится это.
  16. parovoZZ

    parovoZZ Гуру

    а сколько инфа хранится, если леппездрычество исчезнет?
     
  17. b707

    b707 Гуру

    151 год по даташиту :)
     
    DetSimen нравится это.
  18. ostrov

    ostrov Гуру

    В моем написано 100 лет.
     
  19. ostrov

    ostrov Гуру

    Обнуляется то предыдущий, а не следующий! Сейчас до дома добрался, все проверю.
     
  20. b707

    b707 Гуру

    все логично
     
    DetSimen нравится это.