Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Объясните как программно отличить AT25P1024 от AT25512
Форум разработчиков электроники ELECTRONIX.ru > Поставщики компонентов для электроники > Компоненты > Микросхемы
kornukhin
Есть микроконтроллер, ОЗУ которого должна грузится по SPI.
Загрузку предполагалось проводить из AT25P1024.
Чтобы провести транзакцию чтения нужно передать передать OPCODE и 3 байта адреса.
Но хотелось бы, чтобы ОЗУ можно было грузить с любой карточки.
А, например, AT25512 имеет двухбайтовое поле адреса.
Отсюда следуют вопросы:
1. неужели карточки меньше с 2-х и 3-хбайтной адресацией не совместимы в одной системе?
2. можно ли как-нибудь прогарммно определить объем подключенного EEPROM (я такой информации в datasheet-ах не нашел)?
rezident
ИМХО программно, кроме как записью в ячейку с адресом 0x0000, определить нельзя.
Допустим записываем по адресу 0x0000 в режиме 24-битной адресации байт 0xFF. Если при чтении по этому же адресу считали 0x00 вместо 0xFF, то значит это EEPROM с 16-битной адресацией. Правда для этого случая нужно будет пожертвовать еще и соседней ячейкой 0x0001.
kornukhin
А если запись только постраничная (128 байт для AT25P1024), то всю страницу записывать придется?


The AT25P1024 is capable of a 128-byte PAGE WRITE operation ONLY. Content of the
page in the array will not be guaranteed if less than 128 bytes of data is received (byte
operation is not supported).
rezident
Цитата(kornukhin @ Jan 25 2008, 12:05) *
А если запись только постраничная (128 байт для AT25P1024), то всю страницу записывать придется?
Тады ой! На этот факт я не обратил внимания. Может лучше DataFlash применить? У них-то с идентификацией нет проблем.
Сергей Борщ
Цитата(kornukhin @ Jan 24 2008, 16:23) *
2. можно ли как-нибудь прогарммно определить объем подключенного EEPROM (я такой информации в datasheet-ах не нашел)?
Глянул на диаграму чтения 25P1024. Она начинает выдавать данные после посылки трех байтов адреса. Логично предположить, что 512 начинает выдавать после двух. До этого выход данных находится в третьем состоянии. Это нельзя как-то использовать?
kornukhin
Цитата(rezident @ Jan 25 2008, 11:24) *
Тады ой! На этот факт я не обратил внимания. Может лучше DataFlash применить? У них-то с идентификацией нет проблем.


Именно этот вариант мы и выбрали - AT45DB011B.
Просто изначально хотелось чтобы схема работала со всем smile.gif , что к ней подключишь, причем с одним драйвером.


Цитата(Сергей Борщ @ Jan 25 2008, 12:15) *
Глянул на диаграму чтения 25P1024. Она начинает выдавать данные после посылки трех байтов адреса. Логично предположить, что 512 начинает выдавать после двух. До этого выход данных находится в третьем состоянии. Это нельзя как-то использовать?


Забыл упомянуть, что в целях экономии контактных площадок хочется реализовать SPI на двух линиях: синхросигнал и данные, поэтому случай использования третьего состояния не подходит из-за возможности КЗ.
Сергей Борщ
Цитата(kornukhin @ Jan 26 2008, 08:47) *
случай использования третьего состояния не подходит из-за возможности КЗ.
Поставьте между входом и выходом данных резистор - он ограничит ток кз. Пример можно посмотреть в даташите на FT232B. И еще один резистор на землю - чтобы превратить третье состояние в фиксированное.
Выше вы пишете, что будете использовать АТ45, у нее тоже будете замыкать вход с выходом? Если все же вход и выход будут раздельные - поставьте между ними резистор. Он позволит определить третье состояние на выходе по наличию "эха".
rezident
Цитата(kornukhin @ Jan 26 2008, 11:47) *
Забыл упомянуть, что в целях экономии контактных площадок хочется реализовать SPI на двух линиях: синхросигнал и данные
SPI на двух линиях никак не реализуется, как минимум три нужны. Третья линия это сигнал фреймовой синхронизации. Для AT25 и AT45 им является сигнал CS.
kornukhin
Цитата(rezident @ Jan 27 2008, 01:34) *
SPI на двух линиях никак не реализуется, как минимум три нужны. Третья линия это сигнал фреймовой синхронизации. Для AT25 и AT45 им является сигнал CS.


Именно из-за этого сигнала и приходится сворачивать шину данных - КП не хвататет crying.gif
rezident
Цитата(kornukhin @ Jan 28 2008, 12:42) *
Именно из-за этого сигнала и приходится сворачивать шину данных - КП не хвататет crying.gif
Дык может тогда стоит софтовый I2C на двух пинах организовать и взять EEPROM из серии 24xx?
kornukhin
Цитата(rezident @ Jan 28 2008, 17:32) *
Дык может тогда стоит софтовый I2C на двух пинах организовать и взять EEPROM из серии 24xx?


I2C слишком медленный (по стандарту 100-400 кГц), а у нас порядка 100 мс на то чтобы 1МБ выгрузить с EEPROM на ОЗУ.

Цитата(Сергей Борщ @ Jan 26 2008, 11:26) *
Поставьте между входом и выходом данных резистор - он ограничит ток кз. Пример можно посмотреть в даташите на FT232B. И еще один резистор на землю - чтобы превратить третье состояние в фиксированное.
Выше вы пишете, что будете использовать АТ45, у нее тоже будете замыкать вход с выходом? Если все же вход и выход будут раздельные - поставьте между ними резистор. Он позволит определить третье состояние на выходе по наличию "эха".


да, на AT45 тоже будем замыкать. Интуитивно понятно, что если в схеме есть защита от ESD, то закоротка двух пинов с перепадом в 3 В не сожжет её. Но при моделировании хочется избежать иксов. А насчет того, как обвеска будет выглядеть на плате, я пока не знаю.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.