|
Адресные линии SRAM, Замена SRAM на другую SRAM, только адресные линии на разных пинах |
|
|
|
Dec 16 2016, 14:59
|

Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 10-04-11
Из: Минск
Пользователь №: 64 258

|
Используем давно K6R4016V1D-TI10 (Samsung), но она уже снята с производства. Хотим заменить на GS74116AGP-10I (GSI Technology), но у них адресные линии приходят на разные пины корпуса. Можем-ли мы запаять GS74116AGP-10I (они полные функциональные аналоги) и ничего не менять или нужно в программе поменять код?
--------------------
|
|
|
|
|
Dec 20 2016, 11:56
|

Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 10-04-11
Из: Минск
Пользователь №: 64 258

|
Цитата(aaarrr @ Dec 16 2016, 19:35)  Можете, менять ничего не придется. Не превысит ли адресное пространство физический объем памяти? Как это посчитать? Я все никак не могу паять, что значит запись 256K x 16 и как эта запись коррелирует с адресными линиями?
--------------------
|
|
|
|
|
Dec 20 2016, 12:04
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Эта запись означает "256 тысяч адресов, по каждому адресу - 16 бит данных". Такая странная запись потому, что шина данных - 16-битная. Адресных линий, очевидно, 18 штук, чтобы получить 2 в степени 18 = 256k.
PS на первых же страницах даташита написано то же самое... The K6R4016V1D is a 4,194,304-bit high-speed Static Random Access Memory organized as 262,144 words by 16 bits. The GS74116A is a high speed CMOS Static RAM organized as 262,144 words by 16 bits Как объяснить понятнее, я не знаю...
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
|
Dec 20 2016, 13:55
|

Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 10-04-11
Из: Минск
Пользователь №: 64 258

|
Спасибо, теперь понятно! Вот этой вот фразы мне не хватало "Адресных линий, очевидно, 18 штук, чтобы получить 2 в степени 18 = 256k." Так а все же, можно однозначно ответить об обращении к физически не существующей ячейки или пока не запаяешь и не протестируешь ничего не скажешь? Изделие старое и никто не знает какие там выставляются адреса.
Сообщение отредактировал Herz - Dec 20 2016, 17:45
Причина редактирования: Избыточное цитирование
--------------------
|
|
|
|
|
Dec 21 2016, 06:36
|

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

|
Есть еще один тонкий момент, не относящийся к упомянутым автором вопроса микросхемам: многие производители выпускают псевдостатические ОЗУ, которые снаружи выглядят как статические, а внутри являются динамическими. Производитель уверяет, что это полная функциональная замена, однако я нарвался на очень неприятный момент с такой ОЗУ IS66WV51216D, которую снабженцы закупили вместо стоявшей до этого "честной" статической ОЗУ: при определенной комбинации смены адреса и сигналов UB, LB без снятия CS данные на выходе не менялись. А именно такую комбинацию сигналов генерит LPC2214 при побайтовом обращении последовательно к адресам 0x????1, 0x?????2. Если между обращениями есть пауза, достаточная для снятия CS контроллером внешней шины - данные читаются корректно, если же паузы нет - данные не меняются и контроллер получает содержмое предыдущей ячейки.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Dec 21 2016, 14:48
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(esaulenka @ Dec 20 2016, 18:22)  Процессор может обратиться к "несуществующей ячейке", если помимо линий адреса 0..17 у него есть, например, 18-я линия. Или 25-я. И он ими размахивает произвольным образом. Но т.к. на предыдущей микросхеме адресов было 2**18, и на этой тоже 2**18, бояться нечего - ВСЕ возможные комбинации существуют. Ну а если б процессор выставлял бы "несуществующие" комбинации, всё б давно сломалось и со старой микросхемой. Не факт. Если у процессора есть линии адреса выше 17-й и ТС запаяет скажем 19 линий на соответствующий SRAM-чип, то вполне возможно любое поведение программы, в зависимости от кривости её написания. Вполне возможно что в программе есть ошибки адресации. Например чтение по адресу выше адресного пространства SRAM. Которое сейчас возвращает всегда какое-то фиксированное значение и с ним ПО работает нормально (так сложились звёзды при отладке того ПО  , а с реальной памятью по этим адресам будет другое поведение программы. Или наоборот: со старой SRAM при выходе за адресное пространство SRAM будет выполнена чтение/запись из начала SRAM, то с новой - переполнения не будет - совсем другие результаты будут. Это конечно если не заданы чётко границы региона SRAM через MPU (чё там за проц у автора?).
|
|
|
|
|
Dec 22 2016, 07:45
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(esaulenka @ Dec 21 2016, 20:59)  Мы тут обсуждаем два чипа одинакового объема. ... Сергей более страшные вещи рассказал. Если это правда, за такое надо сильно бить. Там, правда, в даташите есть какие-то ограничения, но вроде б он их не нарушает... Ну так он это тоже про другие микросхемы рассказал  Я хотел сказать, что даже на "полных функциональных аналогах" возможны всякие варианты. Сталкивались с таким. Когда вроде мс заявлена как полный функциональный аналог и по даташиту вроде всё ок, а вдруг - впаиваем и не работает. А всё потому, что начинают проявляться баги (или просто недопонятые при разработке моменты в доках), которые раньше не проявлялись. А с памятью - может даже просто изменившееся время доступа уже привести к разности в работе. Только опыт покажет - заработает или нет. Как говорится: "Гладко было на бумаге, да забыли про овраги"
|
|
|
|
|
Dec 22 2016, 13:41
|

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

|
QUOTE (Plain @ Dec 22 2016, 12:56)  Очевидно то, что любая рокировка 262144 адресов либо соблазнительно увеличивает их количество (622441), либо удручающе уменьшает (122446). Как? Вот у нас есть 4 ячкейки, с адресами [A0-A1]: 00, 01, 10, 11. Как надо менять между собой линии A0 и A1, чтобы они вдруг стали адресовать больше или меньше четырех ячеек??? Нарисуйте это "очевидно" на примере хотя бы двух (черт с ними, с девятнадцатью) адресных линий.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|