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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Кратковременное КЗ на КМОП-выходах микросхем, насколько опасно/вредно ?
Александр Куличо...
сообщение Apr 29 2010, 11:51
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Цитата
я уже четвертый раз объясняю: память, получив сигнал CS считывает с шины данные спустя 10нс, это значит, что МК ДОЛЖЕН успеть за это время их выставить

Память считывает с шины данные по фронту /CS, который должен нужно подавать не ранее, чем через 7нс (tcw) после спада. А данные МК ДОЛЖЕН выставить как минимум за t_DW (5ns) до этого фронта (который Вы формируете сами). При этом ограничений на максимальное время низкого уровня на /CS нет.

На рисунке ниже время между красными вертикалями можно растянуть до бесконечности.


Цитата
просто обычно принято, что процессор намного быстрее памяти

Процессор на тактовой 1МГц прекрасно работает с 10-нс памятью. Иначе пришлось бы иcкать память с временем доступа >1000ns
Цитата
и вовсе необязательно дергать каждый раз /CS, /WE и /OE туда-сюда, а достаточно лишь зафиксировать их в соотвествующие режиму уровни ?

При чтении - можно только менять адреса. Для записи при активных уровнях на /CS и /WE менять адрес нельзя. В некоторых типах микросхем адрес менять можно, но только через определенное время удержания адреса, которое отсчитывается после спада /CS или /WE
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
V_G
сообщение Apr 29 2010, 12:53
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Так я и не понял, зачем фиксировать WE, OE в каком-то статичном состоянии (честно, смотреть конкретные временные диаграммы лень, но принципы управления всеми ИС памяти одинаковы).
Выставляйте данные при неактивных WE, OE, выбирайте нужную ИС чипселектом и инициируйте запись по WE! То же для чтения (OE). Или вам для WE, OE ножек не хватает?
Go to the top of the page
 
+Quote Post
artymen
сообщение Apr 29 2010, 13:03
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 6-11-09
Из: г. Омск
Пользователь №: 53 464



ааа, все, понял ! что-то я протупил. совсем уж запутался в даташите, теперь все объясняется :D спасибо ! smile.gif
а вот дурацкие коллизии все равно где-нибудь да будут вылазить при любых комбинациях управления двумя сигналами из трех и при всех вомзожных режимах чтения/записи. самое идеальное, что можно сделать, это через дешифратор переключать микрухи, тогда они переключатсья будут одновременно, да только вот задержки у них разные, они отличаются как между схемами, так и еще в зависимости от направления изменения состояния, в-среднем получатся коллизии ну минимум 4-5 нс. Ну хоть 4-5 нс то можно допустить ?
Цитата
Выставляйте данные при неактивных WE, OE, выбирайте нужную ИС чипселектом и инициируйте запись по WE! То же для чтения (OE). Или вам для WE, OE ножек не хватает?
да, вся проблема только в этом, т.е. приходится идти на какие-то схемотехнические комбинации, и пока мне не удалось придумать так, чтобы ни одной коллизии нигде не возникало

Сообщение отредактировал artymen - Apr 29 2010, 13:06


--------------------
"Сознание своего несовершенства приближает к совершенству"
Гёте
Go to the top of the page
 
+Quote Post
artymen
сообщение Apr 29 2010, 14:54
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 6-11-09
Из: г. Омск
Пользователь №: 53 464



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

Сообщение отредактировал artymen - Apr 29 2010, 14:57


--------------------
"Сознание своего несовершенства приближает к совершенству"
Гёте
Go to the top of the page
 
+Quote Post
vallav
сообщение Apr 29 2010, 16:05
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977



Цитата(artymen @ Apr 29 2010, 18:54) *
А как вообще проблема решается, когда на общей шине, например, 10 буферных регистров, и все они имеют разные задержки, да еще в зависимости от направления переключения и уровней, в которые они должны перейти, или с которых уйти ?


Если есть мастер на шине - то никаких проблем.
Все регистры стоят на ввод. Нужный мастер переключает на вывод, ждет сколько надо, переключает на ввод, ждет сколько надо.
И все с начала.

Сообщение отредактировал rezident - Apr 30 2010, 20:26
Причина редактирования: Нарушение п.3.4 Правил форума.
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Apr 29 2010, 16:21
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Цитата
А как вообще проблема решается, когда на общей шине, например, 10 буферных регистров, и все они имеют разные задержки, да еще в зависимости от направления переключения и уровней, в которые они должны перейти, или с которых уйти ?........А если через дешифратор, то переключение будет происходить одновременно, и коллизия обязательно возникнет хотя бы при одной комбинации...

Сигнал CS на каждый буфер/микросхему памяти решает эту проблему. Дешифраторы обычно имеют вывод разрешения. Та что можно между разными CS-ами организовывать зазоры, которые должны быть больше, чем самая максимальная задержка перехода буферных регистров в 3-е состояние.

Для используемых микросхем памяти коллизий вроде не предвидится, если данные снимать вместе с фронтом /CS (время удержания данных t_DH для них == 0). Но удобнее, конечно, было бы ипользовать для 2х корпусов разные CSы Или запись осуществлять не по /CS, а по /WE. Кстати, у Вас вывод /WE жестко засажен на землю или как? Если подключен к контроллеру, то почему используете запись по /CS?

Цитата
самое идеальное, что можно сделать, это через дешифратор переключать микрухи

Самое идеальное - это использовать штатные выводы микросхемы памяти и использовать их по прямому назначению, как выше рекомендовал V_G, а не заниматься извратом типа "запись по CS".
Алгоритм следующий:
1. выбираете CS-ом нужную микросхему(банк памяти).
2а. Для записи в нее используете /WE (/CS при этом "дергать" не надо).
2б. Для чтения, соответственно, используете /OE. При последовательных чтениях можно только менять адрес (при /ОЕ==0).
Для переключения на вторую микросхему:
1. Отдельной командой выставляете на /CS и /OE уровень лог."1" (если его там не было)
2. Далее выбираете CS-ом вторую микросхему. Зазор минимум в 1 такт процессора между п.1 и п.2 обеспечит выдержку времени t_OHZ (5ns)
3. Запись/чтение - аналогично пунктам выше.
Go to the top of the page
 
+Quote Post
artymen
сообщение Apr 29 2010, 17:16
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 6-11-09
Из: г. Омск
Пользователь №: 53 464



ну это понятно, коль тремя сигналами управлять. я то двумя только хочу, в этом и состояит вся проблема. На шине сидит МК, память и буферный регистр. А еще эти сигналы должны обеспечить выключение/включение буфера.
Цитата
Сигнал CS на каждый буфер/микросхему памяти решает эту проблему. Дешифраторы обычно имеют вывод разрешения. Та что можно между разными CS-ами организовывать зазоры, которые должны быть больше, чем самая максимальная задержка перехода буферных регистров в 3-е состояние.
на вывод разрешения тоже сигнал нужен, а все, кончились smile.gif тем более во время зазора дешифратор выдает hi-z, а не фиксированные единицы, которые выключили бы все микросхемы.

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

Сообщение отредактировал artymen - Apr 29 2010, 17:18


--------------------
"Сознание своего несовершенства приближает к совершенству"
Гёте
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Apr 29 2010, 17:35
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Цитата
во время зазора дешифратор выдает hi-z

Это смотря какой дешифратор. Эти выдают "1": 74HC155, 74HC139
Цитата
А еще эти сигналы должны обеспечить выключение/включение буфера.

Буфер включается тоже лог."0"? Какой тип буфера?
Go to the top of the page
 
+Quote Post
artymen
сообщение Apr 29 2010, 17:36
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 6-11-09
Из: г. Омск
Пользователь №: 53 464



да. 74AC374N

Сообщение отредактировал artymen - Apr 29 2010, 17:37


--------------------
"Сознание своего несовершенства приближает к совершенству"
Гёте
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Apr 29 2010, 18:05
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Т.е., если я правильно понимаю, режимы работы следующие (предположил, что /CS идет на вход буфера /ОЕ через инвертор):

Код
/OE - всегда в "0"
/CS /WE  
  0   0  - запись данных в память
  0   1  - чтение данных из памяти
  1   х  -  чтение данных из буфера
Go to the top of the page
 
+Quote Post
artymen
сообщение Apr 29 2010, 18:14
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 6-11-09
Из: г. Омск
Пользователь №: 53 464



да, на данный момент этот вариант занимает лидирующее место в моей голове smile.gif

о ! похоже, что 74*257 отлично решает все проблемы ! только вот бы найти 8битный аналог, чтобы вторую микросхему не городить... щас внимательно даташит посмотрю и продумаю, вдруг какой фокус опять возникнет... smile.gif

а, не, он не двунаправленный...


--------------------
"Сознание своего несовершенства приближает к совершенству"
Гёте
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Apr 29 2010, 18:15
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Стробом на буфер тоже контроллер управляет? Если да, то рассмотрите возможность применения 74AC373, соединив ее выводы LE и /OE вместе
При 1 на этих ногах данные будут попадать на выходы защелок внутри микросхемы, но не будут проходить на выход, а при переходе в 0 данные появятся на выходе, и вход не будет на них влиять.
Go to the top of the page
 
+Quote Post
artymen
сообщение Apr 29 2010, 18:29
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 6-11-09
Из: г. Омск
Пользователь №: 53 464



нет

Цитата
При 1 на этих ногах данные будут попадать на выходы защелок внутри микросхемы, но не будут проходить на выход, а при переходе в 0 данные появятся на выходе, и вход не будет на них влиять.
да мне не важно, что на входе буфера и как это пройдет на выход, важно, чтобы выход не создавал конфликта на шине


--------------------
"Сознание своего несовершенства приближает к совершенству"
Гёте
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Apr 29 2010, 19:08
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Тогда самый простой вариант, если есть место на плате, - это поставить в разрыв на шину данных буфера резисторы по 330..500 Ом.
Насчет длительности коллизий. Вроде как для 74AC374 максимальное время " Output Disable Time" при 3,3В составляет ~14.5 нс, а не 8,5
Go to the top of the page
 
+Quote Post
artymen
сообщение Apr 29 2010, 19:37
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 6-11-09
Из: г. Омск
Пользователь №: 53 464



значит смириться с коллизиями, погасив их резисторами ?
я брал typical для температуры 25 градусов, только промахнулся, 10.5 нс тогда получается

З.Ы. а почему тогда резисторы не встроены уже, раз они так легко решают проблему коллизий... тут какой то подвох есть ? wink.gif


--------------------
"Сознание своего несовершенства приближает к совершенству"
Гёте
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 19:31
Рейтинг@Mail.ru


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