|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я прочитал, только то что написано, вместе со словом из трёх букв... Видимо, торопясь написать это слово, ты в свои книжечки про исключения из правил не посмотрел... И попал пальцем в небо... Ладно, торопливый ты наш похабник...
А в какие ещё команды, кроме DAD, " во время М2 и М3 шину не дергают"?
_________________ iLavr
|
10 Dec 2012 08:15 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Типовая диаграмма вот такая:
Минимальная пауза даже по справочным данным может быть = 0.
Да - диаграмму из "Радио" мы здесь на форуме тоже привели:
Хотя реальный ГФ24 паузу между Ф1 и Ф2 действительно вставляет...
Я немного озадачился по поводу сигнала RESET.
В оригиналах моделей Протезуса обычно реагируют просто на его наличие.
По справочным данным - у него есть минимальная длительность в тактах.
Мне кажется, при старте нашей модели эту минимальную длительность
надо отработать просто обязательно - не зависимо от уровня на самом входе RESET.
И второй вопрос: если в схеме так получается, что RESET установлен активным
постоянно - что должна делать наша модель в этом случае?
Тактовые сигналы Ф1 и Ф2 при этом ведь в модель поступают!
_________________ iLavr
|
10 Dec 2012 08:50 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
2 aav8: тут оффтоп подзавалил, про такты - я на предыдущей странице ответил.
Этот вопрос не совсем понял...
Если ты про Jxx ADDR - то да ADDR_lo и ADDR_hi - должны по шине данных заскочить в WZ.
Конечно, если ты именно это имел в виду...
_________________ iLavr
|
10 Dec 2012 11:24 |
|
|
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Отличная диаграмка - журнал к сожалению не нашел - наверное на даче. Сразу вопросик - SYNC и выдача слова состояния по времени совпадают - передний фронт SYNC с данными, и аналогично задний. У меня при аналогичной тактировки не захотелось писаться в ОЗУ - Я поднимал WR в высокое состояние, и одновременно ШД переключал в 3-е состояние. Сейчас сделал вот-так: | | | | Code: /*** 04-12-2012 ****************** aav@lora.nsk.su [Алексеев А.В.] *** * Цикл записи * *********************************************************************/
void _stdcall mWrite3(bool F1,bool F2,x80* o) { // ****** такт 3 ... * if(F1) { } else { o->pinMREQ=true; o->pinWR =true; o->tNxt=tNxtT; } } // *************************************************** ... такт 3 * void _stdcall mWrite2(bool F1,bool F2,x80* o) { // ****** такт 2 ... * if(F1) { } else { o->pinWR=false; o->tNxt=mWrite3; } } // **************************************************** ... такт 2 * void _stdcall mWrite1(bool F1,bool F2,x80* o) { // ****** такт 1 ... * if(F1) { o->tNxt=mWrite1; } else { o->pinMREQ=false; o->busData=Data; o->tNxt=mWrite2; } } // **************************************************** ... твкт 1 * void _stdcall mWrite(bool F1,bool F2,x80* o,unsigned short A,unsigned char D,tagTx T) { // * запись ... * o->busAddr=A; Data=D; tNxtT=T; mWrite1(F1,F2,o); //sh(o,"mWrite"); } // **************************************************** ... запись *
| | | | |
Сейчас примерно так: Т.е. если Reset активен - все остальное игнорируется. А сама модель обрабатывает его вот так: По поводу минимальной длительности - надо будет подумать.
Да - именно это имел в виду - буду читать все байты, а потом
принимать решение.
|
10 Dec 2012 18:25 |
|
|
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Ну вот - модель в первом приближении работает.
Надо к ней как-то подключить 8250 и запустить тест.
В и-нете пока нашел только как ее программировать
а про подключение - что-то глухо.
|
11 Dec 2012 04:46 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Посмотри вот эту диаграмку - на ней задержки учтены и хорошо виден интересующий тебя процесс, как мне кажется... По всем справочным данным:
Я предлагаю при старте модели его по умолчанию отрабатывать, потому как
задающую RC-цепь Сброса в Протеусе не ставят обычно, поэтому при старте
модели или при любом Сбросе надо хотя бы эти три такта точно отработать,
а для этого модель должна " слушать" Ф1 и Ф2 - вот я о чём.
Если длительность Reset задана извне нормально, то надо его отслеживать,
а как он закончился - начинать работу модели чётко с ближайшего фронта Ф1.
Это таже причина, по которой надо "слушать" Ф1 и Ф2 во время Reset.
Я Ф1 и Ф2 немного иначе, похоже, "слушаю", чем ты...
Потому что по всем мануалам всё привязано к фронтам и спадам - по этим "точкам"
приявязывается анализ остальных сигналов.
_________________ iLavr
|
11 Dec 2012 13:24 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вот тебе пример подключения более продвинутого аналога 8250 - 16550:
Соответствие с 8250 у них следующее:
Ну и вроде как оригинальная 8250 именно так и включается:
По программированию - ты сказал - материал у тебя есть. Да и я взглянул -
в Инете его много...
PS. Я не знаю - работает ли у тебя прерывание, но 8250 можно обслуживать и по опросу, я так делал...
_________________ iLavr
|
11 Dec 2012 15:06 |
|
|
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Вот это конечно не учел, да и сброс пока не подключал - проц сбрасывается при старте симуляции. То, что ДОЛЖЕН длиться для надежжного сброса проца. Если он длится меньше - сброс может быть не полный. В модели можно все сбросить за 0 пикосекунд - поэтому не вижу необходимости считать эти 3 такта.
Спасибо за схемку. Как раз именно то-что нужно.
В протеусе есть модель 8250A - я думаю практически все
должно подойти.
Прерывания пока не обрабатываются.
И пока нет ввода/вывода.
Буду рисовать схему...
PS:
А в диаграмке обнаружил отключение ША. А уменя она всегда
включена...
|
11 Dec 2012 18:21 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Мне всё же хочется придержаться правильных времянок, фронтов и др. мелочей. Раз уж мы учли, что работаем от внешней синхронизации... Я привёл тут страницу назад пример i8086 от Labcenter - у них опять все растактовки внутри. Я так понимаю, это проще - у них процессор " ведущий" для всей схемы. А у нас - " ведомый" внешним генератором... Но ты меня "уговорил" на это, т.к. без этого трудно смоделировать " Специалисты" и " Спектрумы"... Ну лучше введи один вектор по типу RST_N. Это не трудно, мне кажется, а по опросу - довольно нудно программировать... А нет ввода/вывода - ну мы в " Специалисте" привыкли делать всё через LDA/STA и другие операции с памятью...
Не - во всех справочниках точно указано, когда она выключается...
Я поседею наверно, читая эти справочники! Ну такие древние процессоры,
а в справочниках - разнобой бывает...
Но бывают и очень интересные вещи! Я никогда ранее не видел вот такой подробной
"блок-схемы" нашего процессора-прадедушки!
_________________ iLavr
|
11 Dec 2012 19:28 |
|
|
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Сумел все-таки подключить 8250 - информация довольно
запутанная - в одном месте тактовая частота указана
1.19Мгц, в другом 1.8 с копейками, а делители одинаковые
для одинаковых скоростей. Да еще повозился с подключением
к шине отдельных проводников.
По поводу отладки - функция модели runctrl принимает
параметр RUNMODES - режим работы - в случае
значения suspend я устанавливаю внутренний флаг
отладки, и в начале первого машинного цикла
вызыаю функцию suspend протеуса - получается пошаговая
отладка - видны все регистры и все такое.
Так-же такой вызов вставил в HLT.
После подключения 8250 - у нее есть внутренняя трассировка -
нашлись кое - какие косяки. Но эхо заработало.
|
12 Dec 2012 06:36 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
1.19Мгц - это, наверное, CLK задействовали как задающий...
Впрочем, даже если и " 1.8 с копейками" то при делении до рабочей частоты,
и с учётом асинхронного характера обмена, ошибка не будет слишком большой
на длине кадра передачи, как мне кажется...
_________________ iLavr
|
12 Dec 2012 12:43 |
|
|
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Ну вот, наконец добрался до тестов.
Сообразил как это дело скомпилить.
Вылетает на DAA - ну я ее и не реализовывал.
И сдвиги - в User Manual что-то не все понятно - в одном
месте стрелок нет, а в другом смотрят друг на друга.
Буду читать в другом месте.
И с 8250 пришлось повозиться - двоила символы,
пришлось строборовать запись тактированием.
|
14 Dec 2012 01:41 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Какие сдвиги-то? RAL, RAR, RRC, RRC что ли?
Или я не понял вопроса?
_________________ iLavr
|
14 Dec 2012 10:31 |
|
|
aav8
Maniac
Joined: 05 Nov 2008 19:47 Posts: 287 Location: 81.28.208.238
|
Да, они. И вопросик - у меня не проходит такой тест: В строке, помеченной "? 1" у меня получается 00Ah Если сравнивать с 00Ah - сбрасывается CY и не проходять стоки после стоки "? 2" При старте тестс выдает информацию:
|
14 Dec 2012 23:02 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 873
|
0100 0010 CY=1
RLC
1000 0100 CY=0
RLC
0000 1001 CY=1
0100 0010 CY=1
RAL
1000 0101 CY=0
RAL
0000 1010 CY=1
Ты ничего не напутал?
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
15 Dec 2012 01:26 |
|
|
Who is online |
Users browsing this forum: No registered users and 21 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
|
|