Перейти к содержанию
    

Можно ли расширить память EEPROM

Имеется инструмент, который хранит данные в памяти EEPROM. Мы используем четыре 24LC1025 128Kx8 на I2C шине. Задача состоит в том, чтобы увеличить (удвоить) размер этой памяти. Я смотрел AT24CM02 256Кх8, он вдвое больше по размеру, но их только два слейва можно поставить на шине из-за ограниченной адресации; в итоге похоже, то на то и получается. Если ли тут выход, в приборе имеется только I2C.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошивку прибора тоже переписывать будете?

Если в случае надо будет что-то модифицировать, то прошивку менять возможность имеется.

 

Если в случае надо будет что-то модифицировать, то прошивку менять возможность имеется.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если в случае надо будет что-то модифицировать, то прошивку менять возможность имеется.

Тогда в чем вопрос? памяти разной вагон и маленькая тележка.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если в случае надо будет что-то модифицировать, то прошивку менять возможность имеется.

Если есть исходники, то Ваш вопрос вообще неясен. В чём проблема тогда?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если есть исходники, то Ваш вопрос вообще неясен. В чём проблема тогда?

Для примера из даташита на AT24CM02 256Кх8

"Device Address Inputs: The A2 pin is used to select the device address

and corresponds to the fifth bit of the I2 C seven bit slave address. This

pin can be directly connected to VCC or GND, allowing up to two devices

on the same bus for a total of 4-Mbit of EEPROM.

 

А мне надо больше.

 

Это небольшая память, посмотрите мой первый пост.

 

А i2c multiplexer не подойдет, Что то типа этого TCA9546A

Спасибо, посмотрю. Возможно, это пока единственный выход.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, посмотрю. Возможно, это пока единственный выход.

Не единственный. Заведите входы A2 микросхем на разные ноги GPIO своего МК и активизируйте перед каждой транзакцией нужную.

И тогда можете почти сколько угодно EEPROM-ов на одну I2C-шину повесить.

Это правда потребует дополнительных ног от МК.

Если с доп.ногами проблема, можно обойтись без дополнительных ног, чисто SCL/SDA:

Берёте любой МК, какой больше нравится, с флешь-памятью >=1МБ (таких уже много) пишете на него прошивку, которая любой его I2C-интерфейс программирует в режим slave и потом принимает и обрабатывает команды I2C-EEPROM-а, используя в качестве хранилища часть своей встроенной flash программ. Можно и свой протокол замутить, не обязательно имитировать протокол I2C-EEPROM-ов.

И получаете - всего один чип (а не гроздь EEPROM) и только SCL/SDA. B)

Да - программу нужно написать так, чтобы она при старте копировалась в ОЗУ и выполнялась оттуда. Это несложно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не единственный. Заведите входы A2 микросхем на разные ноги GPIO своего МК и активизируйте перед каждой транзакцией нужную.

И тогда можете почти сколько угодно EEPROM-ов на одну I2C-шину повесить.

А для тех EEPROM-ов , которые в данный момент не используются, в каком состоянии МК GPIO должен быть, в высокоимпедансном? А глючить те EEPROMы не будут в таком случае?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А для тех EEPROM-ов , которые в данный момент не используются, в каком состоянии МК GPIO должен быть, в высокоимпедансном? А глючить те EEPROMы не будут в таком случае?

Нет. Все неактивные - в одном состоянии (лог.1 - например), а на активную EEPROM - другое состояние (лог. 0 например). А адрес естественно на шину подаёте как будто обращаетесь к той, у которой 0 в этом бите. А почему они должны глючить? Все EEPROM получив в начале транзакции адрес, сравнят его со своим пином A2, но только у одной он совпадёт.

Можно даже дешифратор поставить (внешний чип), чтобы уменьшить число необходимых ног МК.

Глючить может только если превысите максимально допустимую паразитную ёмкость по шине или превысите нагрузочную способность.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не единственный. Заведите входы A2 микросхем на разные ноги GPIO своего МК и активизируйте перед каждой транзакцией нужную.

 

Да. Прикольный способ. Активная микросхема по адресу 0, а все остальные имеют другой адрес. Обращаемся всегда с адресом 0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...