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

Do you have a question? Post it now! No Registration Necessary

Threaded View
Re: ISA (пpодолжение)
Hello, Oleg!
You wrote to Alexander Derazhne on Sun, 10 Aug 2003 21:19:06 +0400:

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

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

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

With best regards,
            Alexander Derazhne.



Re: ISA (пpодолжение)
     Sovam!

 AD>     По какомy такомy "спадy"?! Hа сабже пpеpывания запpашиваются
 AD> _высоким_ ypовнем, т.е. можно было бы говоpить о фpонте. Hо

Угy. Естественно по фpонтy. Пpи положительной логике.

 AD> встpечались мне в далёкие восьмидесятые pазные инициализации - где по
 AD> фpонтy, где по ypовню. Стандаpтного описания тогда не было, как
 AD> сейчас - не знаю (для исы? хммм...), так что делать надо так, чтобы
 AD> оно pаботало пpи любом pаскладе.

Hy вpоде как де-факто -- импyльсом.







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


ISA (продолжение)
Sun Aug 10 2003 13:15, Vadim Tzirulnicov wrote to Ilia Tarasov:

 IT>> Hичего подобного! Как ты определяешь обращение к карте? По совпадению
 IT>> адреса? Так там еще MEMR MEMW (ч/з памяти)

 VT> Они мне не нужны.

Тебе они не нужны, но в сочетании с тем, что ты их существование вообще не
учитываешь, и получается такая каша...

 IT>>  и циклы ПДП, во время
 IT>> которых адрес, выставленный на шину, недействителен (о чем сообщает
 IT>> AEN).

 VT> Я же сказал, что задействовал AEN.

Я просто еще раз напомнил...

 IT>>  К тому же правильные данные для записи гарантированы именно к
 IT>> фронту ~IOW.

 VT> Ещё раз. При обращении к карте активизируется либо -iow,  либо -ior.
 VT> на неактивном выводе сигнал, соттветственно, инверсный относительно
 VT> активного.
 VT> Т.е. можно, как я понимаю, один вывод не отслеживать.

Черта с два "либо... либо"!!!! Может быть ни один из них, а MEMW/MEMR.

 VT> И потом. Если дело в -iow, то почему читается карта некорректно
 VT> (частенько вместо реальных данных проскальзывают "0x00FF") ?

 VT> Уж при чтении можно не следить за -IOW.

При чтении - можно. При чтении необходимо обеспечить валидные данные к фронту
IOR.

 IT>>
 IT>>>> Потому что в этот регистр пишут все, кому не лень,
 IT>>
 VT>>> неправда. Только при обращении к карте.
 IT>>
 IT>> См. выше. И почитай описание шины.
 IT>>

 VT> Читал. И не раз.

Ну тебе уже написали, что надо анализировать оба сигнала. Встань осциллографом
на счетный вход своего регистра, в конце концов, и убедись, что там
проскакивают импульсы, даже когда ты не пишешь туда сам.
(Точно так же можешь убедиться, что IOR/IOW не инверсные друг относительно
друга)


Re: ISA (продолжение)
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


Re: ISA (продолжение)
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.



Re: ISA (продолжение)
Thu Aug 14 2003 22:36, Alexander Derazhne wrote to Sergey Kadenkin:

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

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

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


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


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




Re: ISA (продолжение)
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.



ISA (продолжение)
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д ]


Re: ISA (продолжение)
Поставил в своё устройство м/с К555ИД4, к входам "&" которой приваял -IOR
и -IOW, т.е. за основу взял теперь схему контроллера параллельного порта
(?3/2002).
 Посадил на 0x378, выключя предварительно встроенный контроллер в мат.
плате - как оказалось, встроенный контроллер по прежнему продолжал сидеть на
0x378, хотя в BIOS'е значилось Onboard Parallel Port: Disabled. Посадил его
на 0x278, тогда только угомонился...
Теперь о моей плате. При включении компа в плату по адресу 0x378 записалось
число 0xA (почему ? Plug&Play, что ли ?). Впрочем, и во встроенном порте
записывается при включении то же число.
Послал один раз некое число - не записалось (outportb(0x378,1)). Поставил
цикл:

while(!kbhit()){
outportb(0x378,1);
} - записалось в регистр.

Включил режим чтения:
while(!kbhit()){
outportb(0x378,6);
printf("%x",inportb(0x378));
}
- новое число в регистр не пишется, а из выходного буфера читается то верное
число, то 0xff...

Т.е. у микросхем не в порядке время доступа. Частота ISA равнялась на этот
момент 8МГц. Выставил в BIOS макс. частоту 7,159МГц - не помогло...

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



Re: ISA (продолжение)
Hello, Vadim!
You wrote  on Tue, 19 Aug 2003 14:46:46 +0000 (UTC):

 VT> Поставил в своё устройство м/с К555ИД4, к входам "&" которой приваял
 VT> -IOR и -IOW, т.е. за основу взял теперь схему контроллера
 VT> параллельного порта (?3/2002).

    Судя по соседнему письму, ты не совсем понимаешь что куда припаиваешь
:-((.

 VT>  Посадил на 0x378, выключя предварительно встроенный контроллер в
 VT> мат.
 VT> плате - как оказалось, встроенный контроллер по прежнему продолжал
 VT> сидеть на 0x378, хотя в BIOS'е значилось Onboard Parallel Port:
 VT> Disabled. Посадил его на 0x278, тогда только угомонился...
 VT> Теперь о моей плате. При включении компа в плату по адресу 0x378
 VT> записалось число 0xA (почему ? Plug&Play, что ли ?). Впрочем, и во
 VT> встроенном порте записывается при включении то же число.
 VT> Послал один раз некое число - не записалось (outportb(0x378,1)).
 VT> Поставил цикл:

 VT> while(!kbhit()){
 VT> outportb(0x378,1);
 VT> } - записалось в регистр.

 VT> Включил режим чтения:
 VT> while(!kbhit()){
 VT> outportb(0x378,6);
 VT> printf("%x",inportb(0x378));
 VT> }
 VT> - новое число в регистр не пишется, а из выходного буфера читается
 VT> то верное число, то 0xff...

 VT> Т.е. у микросхем не в порядке время доступа. Частота ISA равнялась
 VT> на этот момент 8МГц. Выставил в BIOS макс. частоту 7,159МГц - не
 VT> помогло...

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

    Вынь плату из машины. С свободной дисковой соски вытяни землю и +5.
Проверь чтобы это были они. На краешке ламелей платы (или на их контактых
площадках, если есть) создай ситуацию своего адреса и AEN. На шине данных -
0х55 или 0хАА (по вкусу). IOW и IOR. притяни резисторами по 1К к питанию.
Приготовь тумблер для замыкания IOW на землю. Подключи всё это хозяйство к
вытянутому из компа питанию. Посмотри что на выходе селектора адреса, что на
управлении твоими регистрами. Замкни тумблер, повтори предидущую операцию.
Сними IOW, подай IOR, снова просмотри управление решистрами и шинниками.
Что-то ты найдёшь, гарантирую :-))). Ну, а потом можно и в реальную шину.

With best regards,
            Alexander Derazhne.



Site Timeline