ISA (продолжение)

Aug 04, 2003 Last reply: 22 years ago 36 Replies

Hello, Alex! You wrote to Vadim Tzirulnicov on Mon, 11 Aug 2003 23:49:39 +0400:

VT>> Дёргаем нужную нам линию IRQ на шине ISA. VT>> Держим высокий уровень на даннйо линии -IRQ, пока не обратяться к VT>> нам по нашему адресу. Так ?

AM> Во-первых, устройства должны выдавать запрос прерывания открытым AM> стоком (коллектором), и "держать" высокий уровень они не должны.

Увы, на субже - именно высоким уровнем. Из-за этого приходилось делать запрос ЛП8-ой, играясь её входом разрешения.

With best regards, Alexander Derazhne.

Hello Alexander.

Воскресенье, Август, 10, 2003 17:42:50, Alexander Derazhne wrote to Vadim Tzirulnicov:

VT>> Также вычитал, что нельзя занимать первеы 256 байт адреса в каждой VT>> 1к блоке. VT>> Объясните поподробнее.

AD> Подробнее - смотришь карту адресов из тичхелпа и выбираешь себе AD> свободные. Кроме первого банка (те самые 256) - они должны жить на самой AD> материнке, остальным низ-зя. Hо учти: согласно стандарту в/в дешифрует AD> только первые десять адресных линий. Т.е. всё адресное пространство в/в AD> составляет 1к. Ты можешь занять свободный адрес в пределах этого "к" и все AD> его "отражения" в старших блоках, но не занимай даже "отражений" уже AD> занятых адресов. Иначе может получиться как с видеокарточкой S3 и COM3. AD> карточка тихонько села где-то в старших адресах в/в, а COM3 говорит "не AD> знаю я никаких A10..A15, это мои адреса". Это, кстати, тоже может быть AD> причиной твоих неурядиц. К сожалению, задокументирован только младший блок, AD> поэтому лучше включить в селектор адреса и старшие линии :-(.

Адреса 300-31F не задействованы. Они как раз для макетных устройств.

Sergey

А система, кстати, делает ещё одну вещь: она _начинает_ циклы обмена по шине. То есть адрес на Axx уже сформирован, а все 6 линий (/IOW, /IOR, /SMEMW, /SMEMR, /MEMW и /MEMR) ещё не активны. То есть в обсуждаемой (или осуждаемой?) схеме запись будет происходить ещё и перед каждым чтением.

Hello, Sergey! You wrote to Alexander Derazhne on Wed, 13 Aug 2003 10:55:51 +0400:

AD>> карточка тихонько села где-то в старших адресах в/в, а COM3 говорит AD>> "не знаю я никаких A10..A15, это мои адреса". Это, кстати, тоже AD>> может быть причиной твоих неурядиц. К сожалению, задокументирован AD>> только младший блок, поэтому лучше включить в селектор адреса и AD>> старшие линии :-(.

SK> Адреса 300-31F не задействованы. Они как раз для макетных устройств.

Можешь гарантировать, что никакая супер3д исовская джамперлесс (уу, круть!) звуковуха (мы ведь про ису?) не сядет на 0x5F10 ? Я нет.

With best regards, Alexander Derazhne.

Hello, Alex! You wrote to Alexander Derazhne on Wed, 13 Aug 2003 19:53:59 +0400:

AM>>> Во-первых, устройства должны выдавать запрос прерывания AM>>> открытым стоком (коллектором), и "держать" высокий уровень они не AM>>> должны.

AD>> Увы, на субже - именно высоким уровнем.

AM> А при чем тут высокий уровень? Я говорю, что выход запроса AM> должен быть открытым стоком. А активный уровень - действительно, AM> высокий.

Действительно. Сорри.

With best regards, Alexander Derazhne.

Thu Aug 14 2003 22:36, Alexander Derazhne wrote to Sergey Kadenkin:

SK>> Адреса 300-31F не задействованы. Они как раз для макетных устройств.

AD> Можешь гарантировать, что никакая супер3д исовская джамперлесс (уу, AD> круть!) звуковуха (мы ведь про ису?) не сядет на 0x5F10 ? Я нет.

Адреса 300-31F действительно предназначены для макетных устройств. Так что совпадение адреса с областью макетной платы будет целиком на совести этой звуковухи. К тому же имеет смысл убедиться только в отсутствии конфликтов со стандартными устройствами, а уж звуковуху-то можно и вынуть из машины, предназначенной "для опытов"...

Hello Sergey!

14 Aug 03 22:36, Alexander Derazhne wrote to Sergey Kadenkin:

AD>>> карточка тихонько села где-то в старших адресах в/в, а COM3 AD>>> говорит "не знаю я никаких A10..A15, это мои адреса". Это, AD>>> кстати, тоже может быть причиной твоих неурядиц. К сожалению, AD>>> задокументирован только младший блок, поэтому лучше включить в AD>>> селектор адреса и старшие линии :-(. SK>> Адреса 300-31F не задействованы. Они как раз для макетных SK>> устройств. AD> Можешь гарантировать, что никакая супер3д исовская джамперлесс AD> (уу, круть!) звуковуха (мы ведь про ису?) не сядет на 0x5F10 ? Я нет.

Угу. И сетевки, сидящие на 300 адресе видимо ему тоже не попадались.

With Best Regards Alexey [ TEAM Тещa MUST DIE!!! , Бутлериaнский Джихaд ]

Hello, Sergey! You wrote to Alexander Derazhne on Wed, 13 Aug 2003 12:19:49 +0400:

OP>>> Вполне достаточно импyльса. Для IBM PC пpинята обpаботка IRQ по OP>>> спадy. Пpи следyющем цикле шины постyпившее пpеpывание бyдет OP>>> обpаботано.

AD>> По какому такому "спаду"?! Hа сабже прерывания запрашиваются AD>> _высоким_ AD>> уровнем, т.е. можно было бы говорить о фронте. Hо встречались мне в AD>> далёкие восьмидесятые разные инициализации - где по фронту, где по AD>> уровню. AD>> Стандартного описания тогда не было, как сейчас - не знаю (для исы? AD>> хммм...), так что делать надо так, чтобы оно работало при любом AD>> раскладе.

SK> Контроллер прерываний 8259 программируется как на фронт, так и на SK> уровень. Для SK> PC с исой - фронт, PS/2 с MCA - уровень.

Спасибо, про 59-ый я как бы в курсе :-)). Но если бы ты знал, какой в _те_ годы был зоопарк! Кто во что гаразд. Всё нонаме, но "286 с широким принтером" :-)))).

With best regards, Alexander Derazhne.

Sovam!

OP>>> Вполне достаточно импyльса. Для IBM PC пpинята обpаботка IRQ по OP>>> спадy. Пpи следyющем цикле шины постyпившее пpеpывание бyдет OP>>> обpаботано.

[ skip ]

SK> Контpоллеp пpеpываний 8259 пpогpаммиpyется как на фpонт, так и на SK> ypовень. Для PC с исой - фpонт, PS/2 с MCA - ypовень.

Здесь я имел в видy отpицательнyю логикy (по аналогии с 1801ВМ02). Отсюда и полyчилось - по-спадy. А так - да, действительно по-фpонтy. Hо все pавно - импyльсом.

SK> Sergey

С yважением, Oleg

Hello Oleg.

Вторник, Август, 19, 2003 20:31:08, Oleg Primakov wrote to Ilia Tarasov:

IT>> Адpеса 300-31F действительно пpедназначены для макетных yстpойств. Так

OP> Адpеса 0x300...0x31F являются reserved. И ни для чего они не OP> пpедназначаются. Любое yстpойство, pазpаботанное после 1998 года может OP> использовать их по своемy pазyмению

Вот о том и речь. Можно использовать эти адреса по своему усмотрению. И естественно не исключено что кто то другой может ими воспользоваться, как и остальными адресами. По крайней мере на них не должны попасть системные устройства как винты итд.

Sergey

Привет Vadim!

19 Aug 03 18:46, Vadim Tzirulnicov писал All:

VT> Поставил в своё устройство м/с К555ИД4,

Где ты только берешь такие старинные микросхемы? :) Даже Интеграл AFAIK давно сменил систему обозначений своих микросхем на общепринятую...

VT> Теперь о моей плате. При включении компа в плату по адресу 0x378 VT> записалось число 0xA (почему ? Plug&Play, что ли ?).

0x378 - это базовый адрес принтерного порта. Очевидно, BIOS при старте его пытается опросить. [ужасы скипнуты]

VT> Т.е. у микросхем не в порядке время доступа.

Фигня. В схеме что-то неправильно.

VT> Что делать будем, товарищи дорогие ? 8-;)

Схему нарисуй. Тут ИМХО никто ее по словесному описанию не воспримет.

Всего наилучшего, [Team PCAD 2000] Алексей М. ... Если долго думать одни и те же мысли, они становятся грязными.

Sovam!

OP>> Вполне достаточно импyльса VT> Какой длительности ?

В моей плате было около 50 mS. Работало yстойчиво.

С yважением, Oleg

Hello, Vadim! You wrote to Alexander Derazhne on Sun, 10 Aug 2003 19:11:14 +0400:

VT>>> Hо ситуации, когда -IOR=0 и -IOW=0, не бывает ? AD>> Теоретически может быть во время цикла ПДП.

VT> А практически ?

А практически рассчитывай на то, что может и так случиться. Тебе что, жалко? :-))

VT> При циклах ПДП -AEN высокий, так ?

А я помню? Знаешь, сколько лет тому я в последний раз видел живую ису?

VT> А низком уровне на -AEN одинаковые уровни на -IOR и -IOW бывают, что ли VT> ?

Да, БЫВАЮТ. ОБА НЕАКТИВНЫЕ.

VT>>> Хорошо. Hо почему тогда периодически вместо 0x00F0 (см. схему) VT>>> компьютер считывает с карты 0x00FF ? Ведь отслеживаемая линия-то - VT>>> -IOR...

Значит ты не туда сел. Может у тебя в монтаже глюк. Волосок на плате или микротрещина в дорожке. Мы как-то день КЗ по питанию искали,, всю плату изрезали. Кусочек дорожки +5 коротил на землю в соседнем ряду микросхем. Ни одного переходного отверстия, скальпелем его вокруг обскребли - всё равно КЗ! Отодрали (уже из спортивного интереса) - фольга как фольга, текстолит как текстолит. Щупом по этому место поелозили - нет, всё нормально. Так до сих пор и не знаю что это было.

AD>> Скорее всего ты насел на чьи-то адреса и на шине данных идёт AD>> драка.

VT> Смотрю стандартную программу Windows "Сведения о системе": Ресурсы VT> аппаратуры->I/O: Диапазон с 0x3F7 по 0x480 свободен. VT> В BIOS, естественно, всё чисто. VT> Значит, советуете выбрать себе адрес в диапазоне 0x300-0x310 ? VT> Хорошо. VT> Правда, в этом диапазоне уже засела моя звуковуха :)

Вот тебе карта портов, играйся. ===========

 Ports 000H-0ffH are reserved for and used by the system board  Ports 100H-3ffH are decoded on the I/O bus for use by adapter cards  Ports 400H and up are not available on the system bus

The following table summarizes I/O port usage for the PC/XT and AT. Individual ports covered in greater detail are marked with a hyperlink. Additional info is covered in I/O Port Detail. See Cables and Pin Outs for info on hardware connectors.

AT PC/XT Description More Information ъъъъъъъ ъъъъъъъ ъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъ ъъъъъъъъъъъъъъъъъъ

000-01f 000-00f DMA controller #1, 8237A-5. DMA Ports 020-03f 020-021 Interrupt controller, 8259A. Int Controller 040-05f 040-043 Timer 8253-5 (AT: 8254.2). Timer Ports 060-063 PPI (Programmable Peripheral Interface) PPI Ports keyboard, equipment switches, timer 060-06f Keyboard controller 8042 AT Keyboard 070-07f Real-time clock, CMOS Memory, NMI mask CMOS Memory 080 manufacture's diagnostic checkpoint 080-09f 080-083 DMA page register 74LS612 DMA Ports 0a0 NMI (Non-maskable Interrupt) mask 0a0-0bf Interrupt Controller #2, 8259A 0c0-0df DMA controller #2, 8237A-5 DMA Ports 0f0-0ff Math Coprocessor

102 PS/2 Programmable Option Select

170-177 Hard disk (secondary) AT Hard Disk Ports 1f0-1f7 Hard disk AT Hard Disk Ports 200-207 200-20f Game I/O (joystick A/D port) Joystick Port 210-217 Expansion Box 278-27f 278-27f Parallel Printer #2 (#3 with MDA) Printer Ports 2c0-2df 2c0-2df EGA #2 EGA I/O Ports 2e8-2ef Asynchronous Adapter Port #4 Serial Ports 2f8-2ff 2f8-2ff Asynchronous Adapter Port #2 Serial Ports 300-31f Prototype card 320-32f Hard disk XT Hard Disk Ports 370-377 Diskette Controller (secondary) FDC Ports 378-37f 378-37f Parallel Printer #1 (#2 with MDA) Printer Ports 380-38f 380-38f Synchronous Data Link Control (SDLC) 3a0-3af 3a0-3a9 Bisynchronous port #1

3b0-3df 3b0-3df Video Graphics Array (VGA) VGA I/O Ports

3b0-3bf 3b0-3bf Monochrome Display Adapter/Printer #1 Printer Ports 3c0-3cf 3c0-3cf Enhanced Graphics Adapter (EGA) #1 EGA I/O Ports 3d0-3df 3d0-3df Color/Graphics Adapter (CGA) and EGA CGA I/O Ports

3f0-3f7 3f0-3f7 Diskette controller FDC Ports

3ef-3ff Asynchronous Adapter Port #3 Serial Ports 3f8-3ff 3f8-3ff Asynchronous Adapter Port #1 Serial Ports

See Also: I/O Port Detail BIOS Data Area Interrupts and BIOS Services Cables and Pin Outs --

===========

VT> Кстати, когда идёт обращение к PCI-картам, их адреса выставляются и VT> также на шине ISA, но -IOR и -IOW не задействуются, я правильно VT> понял ?

До того, как будет выставлен строб на шине вообще может происходить всё что угодно. Тебя интересует что там творится за несколько сотен наносекунд до строба и после. Больше тебе никто ничего не гарантирует.

VT> Порты, на которых сидят сетевые приложения вроде Apache, MySQL - они VT> специального типа или при обращении вышеперечисленных приложений по VT> ним (ответе на запрос сприптов, нап.) идёт также обращения по VT> системным шинам ПК по адресу, соответствующему порту, по которому VT> идёт обращение ?

Нет, это не те порты, эти с круглогодичной навигацией. :-))) В данном случае англоязычные наступили на те же грабли, что и мы со словом "поток" :-))). Не бери в голову.

AD>> Hет, не так. Держать до тех пор, пока твой девайс не сочтёт, что AD>> прерывание обработано.

VT> А как же ему "считать" ? Как ему понять, что прерывание обработано ?

А это тебе решать. Посмотри, например, как сделано в 580ВВ55 (i8255) в режимах 1 и 2.

With best regards, Alexander Derazhne.

Здраствуйте Vadim,

*10.08.03* *20:11:14* Вы писали в *RU.EMBEDDED* сообщение к *Alexander Derazhne* о *"ISA (продолжение)"*.

VT> Порты, на которых сидят сетевые приложения вроде Apache, MySQL - они VT> специального типа или при обращении вышеперечисленных приложений по ним VT> (ответе на запрос сприптов, нап.) идёт также обращения по системным шинам VT> ПК по адресу, соответствующему порту, по которому идёт обращение ?

Это не аппаратные порты, а программные для TCP/IP, UDP, etc. и никакого отношения к системной шине не имеют.

С уважением, Den

Sovam!

VT>> А как же емy "считать" ? Как емy понять, что пpеpывание VT>> обpаботано ? AD> А это тебе pешать. Посмотpи, напpимеp, как сделано в 580ВВ55 AD> (i8255) в pежимах 1 и 2.

Hе очень yдачный пpимеp....

С yважением, Oleg

Hello, Oleg! You wrote to Alexander Derazhne on Tue, 26 Aug 2003 19:15:48 +0400:

VT>>> А как же емy "считать" ? Как емy понять, что пpеpывание обpаботано VT>>> ? AD>> А это тебе pешать. Посмотpи, напpимеp, как сделано в 580ВВ55 AD>> (i8255) в pежимах 1 и 2.

OP> Hе очень yдачный пpимеp....

Приведи лучший, человек тебе спасибо скажет! :-|

With best regards, Alexander Derazhne.

Sovam!

OP>> Hе очень yдачный пpимеp.... AD> Пpиведи лyчший, человек тебе спасибо скажет! :-|

Hy если я емy кинy нашy pазpаботкy на mcs-51, использyющyю пpеpывания, емy легче станет? Hе пpоще ли не изобpетать велосипед, а посмотpеть хотя бы того же Хоpовица ?? Там все понятно (почти для дypаков) pасписано и наpисовано. Hа pyсском языке. П.Хоpовиц, У.Хилл "Искyсство схемотехники", в тpех томах, издание 4-е, пеpеpаботанное и дополненное, М. "миp" 1993. 2-ой том, стpаницы с

319 по 327. Кyда yж еще лyчше!

С yважением, Oleg

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required