Kiwi 0 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба Имеется инструмент, который хранит данные в памяти EEPROM. Мы используем четыре 24LC1025 128Kx8 на I2C шине. Задача состоит в том, чтобы увеличить (удвоить) размер этой памяти. Я смотрел AT24CM02 256Кх8, он вдвое больше по размеру, но их только два слейва можно поставить на шине из-за ограниченной адресации; в итоге похоже, то на то и получается. Если ли тут выход, в приборе имеется только I2C. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба Прошивку прибора тоже переписывать будете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kiwi 0 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба Прошивку прибора тоже переписывать будете? Если в случае надо будет что-то модифицировать, то прошивку менять возможность имеется. Если в случае надо будет что-то модифицировать, то прошивку менять возможность имеется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasily_ 41 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба Если в случае надо будет что-то модифицировать, то прошивку менять возможность имеется. Тогда в чем вопрос? памяти разной вагон и маленькая тележка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба Если в случае надо будет что-то модифицировать, то прошивку менять возможность имеется. Если есть исходники, то Ваш вопрос вообще неясен. В чём проблема тогда? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ikm 0 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба А i2c multiplexer не подойдет, Что то типа этого TCA9546A Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasily_ 41 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба Подойдет ? :biggrin: http://ww1.microchip.com/downloads/en/devi...d-datasheet.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kiwi 0 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба Если есть исходники, то Ваш вопрос вообще неясен. В чём проблема тогда? Для примера из даташита на 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. А мне надо больше. Подойдет ? :biggrin: http://ww1.microchip.com/downloads/en/devi...d-datasheet.pdf Это небольшая память, посмотрите мой первый пост. А i2c multiplexer не подойдет, Что то типа этого TCA9546A Спасибо, посмотрю. Возможно, это пока единственный выход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба Спасибо, посмотрю. Возможно, это пока единственный выход. Не единственный. Заведите входы A2 микросхем на разные ноги GPIO своего МК и активизируйте перед каждой транзакцией нужную. И тогда можете почти сколько угодно EEPROM-ов на одну I2C-шину повесить. Это правда потребует дополнительных ног от МК. Если с доп.ногами проблема, можно обойтись без дополнительных ног, чисто SCL/SDA: Берёте любой МК, какой больше нравится, с флешь-памятью >=1МБ (таких уже много) пишете на него прошивку, которая любой его I2C-интерфейс программирует в режим slave и потом принимает и обрабатывает команды I2C-EEPROM-а, используя в качестве хранилища часть своей встроенной flash программ. Можно и свой протокол замутить, не обязательно имитировать протокол I2C-EEPROM-ов. И получаете - всего один чип (а не гроздь EEPROM) и только SCL/SDA. B) Да - программу нужно написать так, чтобы она при старте копировалась в ОЗУ и выполнялась оттуда. Это несложно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kiwi 0 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба Не единственный. Заведите входы A2 микросхем на разные ноги GPIO своего МК и активизируйте перед каждой транзакцией нужную. И тогда можете почти сколько угодно EEPROM-ов на одну I2C-шину повесить. А для тех EEPROM-ов , которые в данный момент не используются, в каком состоянии МК GPIO должен быть, в высокоимпедансном? А глючить те EEPROMы не будут в таком случае? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба А для тех EEPROM-ов , которые в данный момент не используются, в каком состоянии МК GPIO должен быть, в высокоимпедансном? А глючить те EEPROMы не будут в таком случае? Нет. Все неактивные - в одном состоянии (лог.1 - например), а на активную EEPROM - другое состояние (лог. 0 например). А адрес естественно на шину подаёте как будто обращаетесь к той, у которой 0 в этом бите. А почему они должны глючить? Все EEPROM получив в начале транзакции адрес, сравнят его со своим пином A2, но только у одной он совпадёт. Можно даже дешифратор поставить (внешний чип), чтобы уменьшить число необходимых ног МК. Глючить может только если превысите максимально допустимую паразитную ёмкость по шине или превысите нагрузочную способность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 22 сентября, 2018 Опубликовано 22 сентября, 2018 · Жалоба Не единственный. Заведите входы A2 микросхем на разные ноги GPIO своего МК и активизируйте перед каждой транзакцией нужную. Да. Прикольный способ. Активная микросхема по адресу 0, а все остальные имеют другой адрес. Обращаемся всегда с адресом 0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться