nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Apr 2024 13:43



Reply to topic  [ 17 posts ]  Go to page 1, 2  Next
Алгоритм генерация ВАЙТ:) 
Author Message
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Reply with quote
Скажем есть проц МГЦ на дцать и е имеется некия тормознутая переферия как генрить вайт если клок изменять низя, т.к. в проце куча счетчиков и на них много что висит? Поймал я CS от девратора и WR поймал? Дальше что? Просто подать вайт на некоторое время? А потом убрать? А без RC цепочки моно?

_________________
Image
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин


13 Apr 2008 09:07
Profile
Junior

Joined: 12 Mar 2008 11:50
Posts: 8
Location: Воронеж
Reply with quote
Post 
Вариантов много,конкретная схемотехника зависит от конкретной перефирии и проца!В самых общих словах возможны 3 варианта:
1)проц типа 8080,Z80-имеют вход ОЖИДАНИЯ(WAIT),приподаче на который сигнала делают пустые такты.
2)проц(контроллер)типа PIC-не имеющие аппаратного входа ОЖИДАНИЯ.Возможно програмно ,при обращении к перефирии,опрашивать какой то вход на предмет наличия сигнала ГОТОВНОСТИ от этой перефирии.
3)проц(контроллер),у которого возможно программно установить задержку на несколько тактов(ATmega8535).
Но в любом случае переферия должна при обращении к ней должна выдать сигнал ГОТОВНОСТИ.А задержка типа RC цепочки-это на уровне колдовства.


13 Apr 2008 11:31
Profile
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Reply with quote
Post 
alost wrote:
Вариантов много,конкретная схемотехника зависит от конкретной перефирии и проца!В самых общих словах возможны 3 варианта:
1)проц типа 8080,Z80-имеют вход ОЖИДАНИЯ(WAIT),приподаче на который сигнала делают пустые такты.
2)проц(контроллер)типа PIC-не имеющие аппаратного входа ОЖИДАНИЯ.Возможно програмно ,при обращении к перефирии,опрашивать какой то вход на предмет наличия сигнала ГОТОВНОСТИ от этой перефирии.
3)проц(контроллер),у которого возможно программно установить задержку на несколько тактов(ATmega8535).
Но в любом случае переферия должна при обращении к ней должна выдать сигнал ГОТОВНОСТИ.А задержка типа RC цепочки-это на уровне колдовства.

Дададада проц имеет WAIT. Вопрос в том, как этот вайт генерить Пока до тумкал до такой схемы:
Image
CT это счетчики. Первый тактируется со скоростью ЦП, дальше по цепочке. Счетчики сбрасываются M1. Таким образом можно получить комбинации WSC(0-2) от 0 до 7 циклов ожидания. Вопрос лишь в том, когда подавать вайт? Одновременно с CS? Или раньше позже? И ли по комбинации CS+WR/RD.
Задержка на всю переферию не катит, так как неохото тормозить всё систему из за двух ВВ55:)

_________________
Image
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин


13 Apr 2008 12:28
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
А доку почитать религия мешает? На примере Z80: первый такт - устанавливаются адреса (М1 не берем в счет, ибо ВАИТ мы хотим и на данные и на команду), проходит пол такта второго, потом на перепаде залекивается состояние шины вейт (т.е. сигнал сэмплируется строго по тактам проца и RC цепочка очень даже оправдана, если кондер не очень большой и достаточно стабилен). Если ваит будет =0, то вставляется пустой такт. Дальше полтакта и чтение или запись. Все просто, RTFM (c).
PS Всегда выставлял ВАИТ при выделенном CS сигнале, т.к. он всегда приходит немного раньше. Для Z80 это будет дешифратор адреса простробированный сигналом MREQ/IOREQ, чтобы быть уверенным в адресных линиях. У М68К это будет дешифратор простробированный сигналом AS. По поводу МК - там все сложнее, но есть золотое правило: RTFM.


13 Apr 2008 20:53
Profile
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Reply with quote
Post 
Нет, вайт мы хотим только на данные, и только при обращении к определённым адресам:) И для разных адресов разный. Как работает нга вайт я знаю:) Задача именно в том, что бы сделать вайт именно на при обращении к определённым портам. А RC цепочка+одновибратор(триггер) это зло замаешься подбирать кондеры.

_________________
Image
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин


13 Apr 2008 23:07
Profile
Junior

Joined: 12 Mar 2008 11:50
Posts: 8
Location: Воронеж
Reply with quote
Post 
Как я понял,необходимо синхронизировать работу ВВ55 и проца,частота работы которого на порядок выше.Иными словами,переферия не успевает установить внутренние регистры при обращении к ней проца.В голову пришла простая схемка.Я новичок и к сожалению,не знаю как разместить эскиз.Надеюсь поймете! :idea: с адресного дешифратора ,стробируемого IORQ,сигнал поступает на вход CS переферии напрямую! этот же сигнал совместно с сигналом необходимой длительности(ЗАДЕРЖКА),через элемент ИЛИ поступает на вход WAIT проца(полярность опред.типом проца)!!В качестве генератора сигнала ЗАДЕРЖКИ используем двоичный счетчик-делитель,на выходах которого получаем частоты в 2.4 ,8,16 раз меньше тактовой проца!Идея:получаем сигнал WAIT равный отрицательному полупериоду нужной частоты(с делителя),действующего при обращении проца по нужному адресу!После окончания его(его длина должна быть больше времени доступа к переферии),процу остается только автоматом взять или записать данные,т.к .перефер. уже "тепленькая",данные на шине!
Раскажите,как картинку разместить,там все понятно! :(
3-4 мик-мы,в зависимости от сложности адр. дешифратора,но проще реализуется на ПЛИСС типа МАХ3032А


14 Apr 2008 06:09
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Тогда чонить типо такого (это упрощенка жосткая, естественно привязывать вейт надо и т.д.):
http://www.nedopc.org/nedopc/upload/1234.gif
Если надо контроллировать с шагом по 1, тогда ставим еще триггер и сравнивалку, типо СП1. Ну и если девайсов куча, то сигналы вейт через монтажное И. Хотя, многовходовых элементов море....


14 Apr 2008 07:44
Profile
Junior

Joined: 12 Mar 2008 11:50
Posts: 8
Location: Воронеж
Reply with quote
Post 
Согласен с предыдущим оратором,именно это я и имел ввиду!Только на WAITпроцессора надо подавать сигнал от дешифратора и счетчика СОЕДИНИВ ИХ ПО ИЛИ!!!Это даст необходимые такты процессору(после снятия сигнала WAIT)для записи или считывания данных!


14 Apr 2008 08:47
Profile
Junior

Joined: 12 Mar 2008 11:50
Posts: 8
Location: Воронеж
Reply with quote
Post 
Дополнение.Если перефирии много и все имеют разное время доступа,лучше соединить их через многоходовой элемент ИЛИ!В этом случае WAIT будет той длительности которая нужна выбираемому в данный момент устройству!


14 Apr 2008 08:53
Profile
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Reply with quote
Post 
Угу, спасибо всем не пожелевшим времени:)

_________________
Image
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин


14 Apr 2008 12:47
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
alost wrote:
Согласен с предыдущим оратором,именно это я и имел ввиду!Только на WAITпроцессора надо подавать сигнал от дешифратора и счетчика СОЕДИНИВ ИХ ПО ИЛИ!!!Это даст необходимые такты процессору(после снятия сигнала WAIT)для записи или считывания данных!

Не по "ИЛИ" а по "И", т.к. пассивное состояние - 1. Хотя, если тока "ИЛИ-НЕ". А про привязку я уже говорил. Да и вообще, можно сделать небольшой узел с регулируемой задержкой. Универсальный т.е. Могу набросать схему, если интересно, она будет не сложная. ;)


14 Apr 2008 20:22
Profile
Junior

Joined: 12 Mar 2008 11:50
Posts: 8
Location: Воронеж
Reply with quote
Post 
HardWareMan wrote:
alost wrote:
Согласен с предыдущим оратором,именно это я и имел ввиду!Только на WAITпроцессора надо подавать сигнал от дешифратора и счетчика СОЕДИНИВ ИХ ПО ИЛИ!!!Это даст необходимые такты процессору(после снятия сигнала WAIT)для записи или считывания данных!

Не по "ИЛИ" а по "И", т.к. пассивное состояние - 1. Хотя, если тока "ИЛИ-НЕ". А про привязку я уже говорил. Да и вообще, можно сделать небольшой узел с регулируемой задержкой. Универсальный т.е. Могу набросать схему, если интересно, она будет не сложная. ;)

Не согласен!Только по ИЛИ!Сигнал с АДРЕСНОГО ДЕШИФРАТОРА создает "окно" дотупа проца(0),а а нулевой уровень со счетчика Задержки определяет ДЛИТЕЛЬНОСТЬ WAITа!(она должна быть меньше CSа)Два нуля=0!в остальных случаях WAIT=1!!!!


14 Apr 2008 23:26
Profile
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Reply with quote
Post 
HardWareMan wrote:
alost wrote:
Согласен с предыдущим оратором,именно это я и имел ввиду!Только на WAITпроцессора надо подавать сигнал от дешифратора и счетчика СОЕДИНИВ ИХ ПО ИЛИ!!!Это даст необходимые такты процессору(после снятия сигнала WAIT)для записи или считывания данных!

Не по "ИЛИ" а по "И", т.к. пассивное состояние - 1. Хотя, если тока "ИЛИ-НЕ". А про привязку я уже говорил. Да и вообще, можно сделать небольшой узел с регулируемой задержкой. Универсальный т.е. Могу набросать схему, если интересно, она будет не сложная. ;)

Конечно интересно. ЗЫ новая вам бы вдвоем статью написать в новый номер NedoPC:) Кста на программируемый генератор вайтом в США есть куча патентов, основным патентодержателем является Zilog.

_________________
Image
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин


14 Apr 2008 23:36
Profile
Junior

Joined: 12 Mar 2008 11:50
Posts: 8
Location: Воронеж
Reply with quote
Post 
Извините,затормозил! :( Объединять WAITы конечно надо по И!!!! :)


14 Apr 2008 23:49
Profile
Junior

Joined: 12 Mar 2008 11:50
Posts: 8
Location: Воронеж
Reply with quote
Post 
Предложение по усовершенствованию предл. схемы.Выходы с двоичного счетчика и адресного дешифратора(т.е. CSы)подаются на адресные входы РТшки или ПЗУшки.Выход данных с ПЗУ(допустим D0) является выходом WAIT на проц.Наличие 0 на этом выходе определюется состоянием на адресных входах и прошивкой ПЗУ(т.е.это генератор WAITа определенной длительности,которая определяется временем доступа к конкр.устройству)Этот выход -один,универсальный для всех и идет на проц!Счетчик запускается сигналом IORQ (или CSами ,но их тогда надо объединять).Сброс счетчика по сигналу с другого выхода ПЗУ(например D1) через время=максимальной задержке +2 такта.в этом случае мы будем уверены,что при следующем доступе к тормоз.перефирии,счет начнется с нуля и проц успеет определить наличие WAITа!


15 Apr 2008 01:54
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 17 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 64 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.