реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Объясните как программно отличить AT25P1024 от AT25512
kornukhin
сообщение Jan 24 2008, 14:23
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 5-06-07
Пользователь №: 28 186



Есть микроконтроллер, ОЗУ которого должна грузится по SPI.
Загрузку предполагалось проводить из AT25P1024.
Чтобы провести транзакцию чтения нужно передать передать OPCODE и 3 байта адреса.
Но хотелось бы, чтобы ОЗУ можно было грузить с любой карточки.
А, например, AT25512 имеет двухбайтовое поле адреса.
Отсюда следуют вопросы:
1. неужели карточки меньше с 2-х и 3-хбайтной адресацией не совместимы в одной системе?
2. можно ли как-нибудь прогарммно определить объем подключенного EEPROM (я такой информации в datasheet-ах не нашел)?
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 24 2008, 20:26
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



ИМХО программно, кроме как записью в ячейку с адресом 0x0000, определить нельзя.
Допустим записываем по адресу 0x0000 в режиме 24-битной адресации байт 0xFF. Если при чтении по этому же адресу считали 0x00 вместо 0xFF, то значит это EEPROM с 16-битной адресацией. Правда для этого случая нужно будет пожертвовать еще и соседней ячейкой 0x0001.
Go to the top of the page
 
+Quote Post
kornukhin
сообщение Jan 25 2008, 07:05
Сообщение #3





Группа: Новичок
Сообщений: 8
Регистрация: 5-06-07
Пользователь №: 28 186



А если запись только постраничная (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).
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 25 2008, 08:24
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(kornukhin @ Jan 25 2008, 12:05) *
А если запись только постраничная (128 байт для AT25P1024), то всю страницу записывать придется?
Тады ой! На этот факт я не обратил внимания. Может лучше DataFlash применить? У них-то с идентификацией нет проблем.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 25 2008, 09:15
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(kornukhin @ Jan 24 2008, 16:23) *
2. можно ли как-нибудь прогарммно определить объем подключенного EEPROM (я такой информации в datasheet-ах не нашел)?
Глянул на диаграму чтения 25P1024. Она начинает выдавать данные после посылки трех байтов адреса. Логично предположить, что 512 начинает выдавать после двух. До этого выход данных находится в третьем состоянии. Это нельзя как-то использовать?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
kornukhin
сообщение Jan 26 2008, 06:47
Сообщение #6





Группа: Новичок
Сообщений: 8
Регистрация: 5-06-07
Пользователь №: 28 186



Цитата(rezident @ Jan 25 2008, 11:24) *
Тады ой! На этот факт я не обратил внимания. Может лучше DataFlash применить? У них-то с идентификацией нет проблем.


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


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


Забыл упомянуть, что в целях экономии контактных площадок хочется реализовать SPI на двух линиях: синхросигнал и данные, поэтому случай использования третьего состояния не подходит из-за возможности КЗ.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 26 2008, 08:26
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 26 2008, 22:34
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(kornukhin @ Jan 26 2008, 11:47) *
Забыл упомянуть, что в целях экономии контактных площадок хочется реализовать SPI на двух линиях: синхросигнал и данные
SPI на двух линиях никак не реализуется, как минимум три нужны. Третья линия это сигнал фреймовой синхронизации. Для AT25 и AT45 им является сигнал CS.
Go to the top of the page
 
+Quote Post
kornukhin
сообщение Jan 28 2008, 07:42
Сообщение #9





Группа: Новичок
Сообщений: 8
Регистрация: 5-06-07
Пользователь №: 28 186



Цитата(rezident @ Jan 27 2008, 01:34) *
SPI на двух линиях никак не реализуется, как минимум три нужны. Третья линия это сигнал фреймовой синхронизации. Для AT25 и AT45 им является сигнал CS.


Именно из-за этого сигнала и приходится сворачивать шину данных - КП не хвататет crying.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 28 2008, 14:32
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(kornukhin @ Jan 28 2008, 12:42) *
Именно из-за этого сигнала и приходится сворачивать шину данных - КП не хвататет crying.gif
Дык может тогда стоит софтовый I2C на двух пинах организовать и взять EEPROM из серии 24xx?
Go to the top of the page
 
+Quote Post
kornukhin
сообщение Jan 29 2008, 07:18
Сообщение #11





Группа: Новичок
Сообщений: 8
Регистрация: 5-06-07
Пользователь №: 28 186



Цитата(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 В не сожжет её. Но при моделировании хочется избежать иксов. А насчет того, как обвеска будет выглядеть на плате, я пока не знаю.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 19:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01439 секунд с 7
ELECTRONIX ©2004-2016