Jump to content

    

Адресные линии SRAM

Используем давно K6R4016V1D-TI10 (Samsung), но она уже снята с производства.

Хотим заменить на GS74116AGP-10I (GSI Technology), но у них адресные линии приходят на разные пины корпуса.

 

Можем-ли мы запаять GS74116AGP-10I (они полные функциональные аналоги) и ничего не менять или нужно в программе поменять код?

74116A.pdf

K6R4016V1D_TC10.pdf

Share this post


Link to post
Share on other sites
Можем-ли мы запаять GS74116AGP-10I (они полные функциональные аналоги) и ничего не менять или нужно в программе поменять код?

Можете, менять ничего не придется.

Share this post


Link to post
Share on other sites
Можете, менять ничего не придется.

 

Не превысит ли адресное пространство физический объем памяти?

Как это посчитать? Я все никак не могу паять, что значит запись 256K x 16 и как эта запись коррелирует с адресными линиями?

 

Share this post


Link to post
Share on other sites

Эта запись означает "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

Как объяснить понятнее, я не знаю...

Share this post


Link to post
Share on other sites

Спасибо, теперь понятно! Вот этой вот фразы мне не хватало "Адресных линий, очевидно, 18 штук, чтобы получить 2 в степени 18 = 256k."

 

Так а все же, можно однозначно ответить об обращении к физически не существующей ячейки или пока не запаяешь и не протестируешь ничего не скажешь?

Изделие старое и никто не знает какие там выставляются адреса.

Edited by Herz
Избыточное цитирование

Share this post


Link to post
Share on other sites
Так а все же, можно однозначно ответить об обращении к физически не существующей ячейки или пока не запаяешь и не протестируешь ничего не скажешь?

Объясните, какие "физически не существующие ячейки" Вы имеете в виду?

Share this post


Link to post
Share on other sites

Процессор может обратиться к "несуществующей ячейке", если помимо линий адреса 0..17 у него есть, например, 18-я линия. Или 25-я. И он ими размахивает произвольным образом.

 

Но т.к. на предыдущей микросхеме адресов было 2**18, и на этой тоже 2**18, бояться нечего - ВСЕ возможные комбинации существуют.

 

Ну а если б процессор выставлял бы "несуществующие" комбинации, всё б давно сломалось и со старой микросхемой.

Share this post


Link to post
Share on other sites

Процессору абсолютно фиолетово, в каком месте ОЗУ располагаются данные ФИЗИЧЕСКИ

Главное, что у него есть такой же набор линий адреса и запишет он и прочитает их из той же самой уникальной ячейки в пределах этого адресного пространства

Тут самый важный момент - чстобы /WE, /OE, /CE совпадали и адресные линии старой микросхемы также были адресными линиями новой, какими конкретно - не важно. Для ОЗУ. Была бы это какая-нибудь NOR-флешь - были бы грабли, ибо туда еще команды записываются уже по вполне определенным адресам

 

Share this post


Link to post
Share on other sites

Есть еще один тонкий момент, не относящийся к упомянутым автором вопроса микросхемам: многие производители выпускают псевдостатические ОЗУ, которые снаружи выглядят как статические, а внутри являются динамическими. Производитель уверяет, что это полная функциональная замена, однако я нарвался на очень неприятный момент с такой ОЗУ IS66WV51216D, которую снабженцы закупили вместо стоявшей до этого "честной" статической ОЗУ: при определенной комбинации смены адреса и сигналов UB, LB без снятия CS данные на выходе не менялись. А именно такую комбинацию сигналов генерит LPC2214 при побайтовом обращении последовательно к адресам 0x????1, 0x?????2. Если между обращениями есть пауза, достаточная для снятия CS контроллером внешней шины - данные читаются корректно, если же паузы нет - данные не меняются и контроллер получает содержмое предыдущей ячейки.

Share this post


Link to post
Share on other sites
Процессор может обратиться к "несуществующей ячейке", если помимо линий адреса 0..17 у него есть, например, 18-я линия. Или 25-я. И он ими размахивает произвольным образом.

Но т.к. на предыдущей микросхеме адресов было 2**18, и на этой тоже 2**18, бояться нечего - ВСЕ возможные комбинации существуют.

Ну а если б процессор выставлял бы "несуществующие" комбинации, всё б давно сломалось и со старой микросхемой.

Не факт.

Если у процессора есть линии адреса выше 17-й и ТС запаяет скажем 19 линий на соответствующий SRAM-чип, то вполне возможно любое поведение программы, в зависимости от кривости её написания.

Вполне возможно что в программе есть ошибки адресации. Например чтение по адресу выше адресного пространства SRAM. Которое сейчас возвращает всегда какое-то фиксированное значение и с ним ПО работает нормально (так сложились звёзды при отладке того ПО ;), а с реальной памятью по этим адресам будет другое поведение программы.

Или наоборот: со старой SRAM при выходе за адресное пространство SRAM будет выполнена чтение/запись из начала SRAM, то с новой - переполнения не будет - совсем другие результаты будут.

Это конечно если не заданы чётко границы региона SRAM через MPU (чё там за проц у автора?).

Share this post


Link to post
Share on other sites

Мы тут обсуждаем два чипа одинакового объема.

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

 

Сергей более страшные вещи рассказал. Если это правда, за такое надо сильно бить. Там, правда, в даташите есть какие-то ограничения, но вроде б он их не нарушает...

Share this post


Link to post
Share on other sites
Мы тут обсуждаем два чипа одинакового объема.

...

Сергей более страшные вещи рассказал. Если это правда, за такое надо сильно бить. Там, правда, в даташите есть какие-то ограничения, но вроде б он их не нарушает...

Ну так он это тоже про другие микросхемы рассказал ;)

Я хотел сказать, что даже на "полных функциональных аналогах" возможны всякие варианты. Сталкивались с таким. Когда вроде мс заявлена как полный функциональный аналог и по даташиту вроде всё ок, а вдруг - впаиваем и не работает. А всё потому, что начинают проявляться баги (или просто недопонятые при разработке моменты в доках), которые раньше не проявлялись.

А с памятью - может даже просто изменившееся время доступа уже привести к разности в работе.

Только опыт покажет - заработает или нет. Как говорится: "Гладко было на бумаге, да забыли про овраги" ;)

Share this post


Link to post
Share on other sites
Объясните, какие "физически не существующие ячейки" Вы имеете в виду?

Очевидно то, что любая рокировка 262144 адресов либо соблазнительно увеличивает их количество (622441), либо удручающе уменьшает (122446).

Share this post


Link to post
Share on other sites
Очевидно то, что любая рокировка 262144 адресов либо соблазнительно увеличивает их количество (622441), либо удручающе уменьшает (122446).

 

Как? Вот у нас есть 4 ячкейки, с адресами [A0-A1]: 00, 01, 10, 11. Как надо менять между собой линии A0 и A1, чтобы они вдруг стали адресовать больше или меньше четырех ячеек??? Нарисуйте это "очевидно" на примере хотя бы двух (черт с ними, с девятнадцатью) адресных линий.

Share this post


Link to post
Share on other sites
Как? Вот у нас есть 4 ячкейки, с адресами [A0-A1]: 00, 01, 10, 11. Как надо менять между собой линии A0 и A1, чтобы они вдруг стали адресовать больше или меньше четырех ячеек??? Нарисуйте это "очевидно" на примере хотя бы двух (черт с ними, с девятнадцатью) адресных линий.

не заморачивайтесь, это такая Plain шутка :)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this