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

Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
-
- Junior
- Posts: 8
- Joined: 12 Mar 2008 11:50
- Location: Воронеж
Вариантов много,конкретная схемотехника зависит от конкретной перефирии и проца!В самых общих словах возможны 3 варианта:
1)проц типа 8080,Z80-имеют вход ОЖИДАНИЯ(WAIT),приподаче на который сигнала делают пустые такты.
2)проц(контроллер)типа PIC-не имеющие аппаратного входа ОЖИДАНИЯ.Возможно програмно ,при обращении к перефирии,опрашивать какой то вход на предмет наличия сигнала ГОТОВНОСТИ от этой перефирии.
3)проц(контроллер),у которого возможно программно установить задержку на несколько тактов(ATmega8535).
Но в любом случае переферия должна при обращении к ней должна выдать сигнал ГОТОВНОСТИ.А задержка типа RC цепочки-это на уровне колдовства.
1)проц типа 8080,Z80-имеют вход ОЖИДАНИЯ(WAIT),приподаче на который сигнала делают пустые такты.
2)проц(контроллер)типа PIC-не имеющие аппаратного входа ОЖИДАНИЯ.Возможно програмно ,при обращении к перефирии,опрашивать какой то вход на предмет наличия сигнала ГОТОВНОСТИ от этой перефирии.
3)проц(контроллер),у которого возможно программно установить задержку на несколько тактов(ATmega8535).
Но в любом случае переферия должна при обращении к ней должна выдать сигнал ГОТОВНОСТИ.А задержка типа RC цепочки-это на уровне колдовства.
-
- God
- Posts: 1078
- Joined: 03 Feb 2003 13:53
Дададада проц имеет WAIT. Вопрос в том, как этот вайт генерить Пока до тумкал до такой схемы:alost wrote:Вариантов много,конкретная схемотехника зависит от конкретной перефирии и проца!В самых общих словах возможны 3 варианта:
1)проц типа 8080,Z80-имеют вход ОЖИДАНИЯ(WAIT),приподаче на который сигнала делают пустые такты.
2)проц(контроллер)типа PIC-не имеющие аппаратного входа ОЖИДАНИЯ.Возможно програмно ,при обращении к перефирии,опрашивать какой то вход на предмет наличия сигнала ГОТОВНОСТИ от этой перефирии.
3)проц(контроллер),у которого возможно программно установить задержку на несколько тактов(ATmega8535).
Но в любом случае переферия должна при обращении к ней должна выдать сигнал ГОТОВНОСТИ.А задержка типа RC цепочки-это на уровне колдовства.
CT это счетчики. Первый тактируется со скоростью ЦП, дальше по цепочке. Счетчики сбрасываются M1. Таким образом можно получить комбинации WSC(0-2) от 0 до 7 циклов ожидания. Вопрос лишь в том, когда подавать вайт? Одновременно с CS? Или раньше позже? И ли по комбинации CS+WR/RD.
Задержка на всю переферию не катит, так как неохото тормозить всё систему из за двух ВВ55:)

Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
А доку почитать религия мешает? На примере Z80: первый такт - устанавливаются адреса (М1 не берем в счет, ибо ВАИТ мы хотим и на данные и на команду), проходит пол такта второго, потом на перепаде залекивается состояние шины вейт (т.е. сигнал сэмплируется строго по тактам проца и RC цепочка очень даже оправдана, если кондер не очень большой и достаточно стабилен). Если ваит будет =0, то вставляется пустой такт. Дальше полтакта и чтение или запись. Все просто, RTFM (c).
PS Всегда выставлял ВАИТ при выделенном CS сигнале, т.к. он всегда приходит немного раньше. Для Z80 это будет дешифратор адреса простробированный сигналом MREQ/IOREQ, чтобы быть уверенным в адресных линиях. У М68К это будет дешифратор простробированный сигналом AS. По поводу МК - там все сложнее, но есть золотое правило: RTFM.
PS Всегда выставлял ВАИТ при выделенном CS сигнале, т.к. он всегда приходит немного раньше. Для Z80 это будет дешифратор адреса простробированный сигналом MREQ/IOREQ, чтобы быть уверенным в адресных линиях. У М68К это будет дешифратор простробированный сигналом AS. По поводу МК - там все сложнее, но есть золотое правило: RTFM.
-
- God
- Posts: 1078
- Joined: 03 Feb 2003 13:53
Нет, вайт мы хотим только на данные, и только при обращении к определённым адресам:) И для разных адресов разный. Как работает нга вайт я знаю:) Задача именно в том, что бы сделать вайт именно на при обращении к определённым портам. А RC цепочка+одновибратор(триггер) это зло замаешься подбирать кондеры.

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

Раскажите,как картинку разместить,там все понятно!

3-4 мик-мы,в зависимости от сложности адр. дешифратора,но проще реализуется на ПЛИСС типа МАХ3032А
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
Тогда чонить типо такого (это упрощенка жосткая, естественно привязывать вейт надо и т.д.):
http://www.nedopc.org/nedopc/upload/1234.gif
Если надо контроллировать с шагом по 1, тогда ставим еще триггер и сравнивалку, типо СП1. Ну и если девайсов куча, то сигналы вейт через монтажное И. Хотя, многовходовых элементов море....
http://www.nedopc.org/nedopc/upload/1234.gif
Если надо контроллировать с шагом по 1, тогда ставим еще триггер и сравнивалку, типо СП1. Ну и если девайсов куча, то сигналы вейт через монтажное И. Хотя, многовходовых элементов море....
-
- Junior
- Posts: 8
- Joined: 12 Mar 2008 11:50
- Location: Воронеж
-
- Junior
- Posts: 8
- Joined: 12 Mar 2008 11:50
- Location: Воронеж
-
- God
- Posts: 1078
- Joined: 03 Feb 2003 13:53
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
Не по "ИЛИ" а по "И", т.к. пассивное состояние - 1. Хотя, если тока "ИЛИ-НЕ". А про привязку я уже говорил. Да и вообще, можно сделать небольшой узел с регулируемой задержкой. Универсальный т.е. Могу набросать схему, если интересно, она будет не сложная.alost wrote:Согласен с предыдущим оратором,именно это я и имел ввиду!Только на WAITпроцессора надо подавать сигнал от дешифратора и счетчика СОЕДИНИВ ИХ ПО ИЛИ!!!Это даст необходимые такты процессору(после снятия сигнала WAIT)для записи или считывания данных!

-
- Junior
- Posts: 8
- Joined: 12 Mar 2008 11:50
- Location: Воронеж
Не согласен!Только по ИЛИ!Сигнал с АДРЕСНОГО ДЕШИФРАТОРА создает "окно" дотупа проца(0),а а нулевой уровень со счетчика Задержки определяет ДЛИТЕЛЬНОСТЬ WAITа!(она должна быть меньше CSа)Два нуля=0!в остальных случаях WAIT=1!!!!HardWareMan wrote:Не по "ИЛИ" а по "И", т.к. пассивное состояние - 1. Хотя, если тока "ИЛИ-НЕ". А про привязку я уже говорил. Да и вообще, можно сделать небольшой узел с регулируемой задержкой. Универсальный т.е. Могу набросать схему, если интересно, она будет не сложная.alost wrote:Согласен с предыдущим оратором,именно это я и имел ввиду!Только на WAITпроцессора надо подавать сигнал от дешифратора и счетчика СОЕДИНИВ ИХ ПО ИЛИ!!!Это даст необходимые такты процессору(после снятия сигнала WAIT)для записи или считывания данных!
-
- God
- Posts: 1078
- Joined: 03 Feb 2003 13:53
Конечно интересно. ЗЫ новая вам бы вдвоем статью написать в новый номер NedoPC:) Кста на программируемый генератор вайтом в США есть куча патентов, основным патентодержателем является Zilog.HardWareMan wrote:Не по "ИЛИ" а по "И", т.к. пассивное состояние - 1. Хотя, если тока "ИЛИ-НЕ". А про привязку я уже говорил. Да и вообще, можно сделать небольшой узел с регулируемой задержкой. Универсальный т.е. Могу набросать схему, если интересно, она будет не сложная.alost wrote:Согласен с предыдущим оратором,именно это я и имел ввиду!Только на WAITпроцессора надо подавать сигнал от дешифратора и счетчика СОЕДИНИВ ИХ ПО ИЛИ!!!Это даст необходимые такты процессору(после снятия сигнала WAIT)для записи или считывания данных!

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