Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 26.04.2008, 11:30   #1
fossa_white
Прохожий
 
Регистрация: 29.11.2007
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
fossa_white на пути к лучшему
По умолчанию Проблема с 16-разрядным обменом по ISA

Уважаемые мастера, подскажите пожалуйста }=

Имеется самопальное устройство для ISA (интерфейсный контроллер, 6 портов по 8 бит каждый). Порты сидят три штуки на младшей части ШД и три-на старшей. Обращение к портам выполняется при помощи 16 разрядного обмена, т. е . порты читаютсязаписываются парами.

Адреса портов:
300h - PORT01
301h - PORT23
302h - PORT45
303h - управляющий регистр (управляет выбором режима портов-на запись или на чтение).

При пошаговой отладке девайса (без компа)-всё работает отлично.

При попытке работать с утройством в компе наблюдается следующий глюк: при попытке записать AA55h в 300h для примера 55h нормально попадает в нулевой порт, а вот AAh, вместо того, чтобы оказаться в первом порте, оказывается во втором, т. е. в младшем байте порта, висящего по адресу 301h. Этот глюк происходит при любом обращении (что по чтению, что по записи) к любым адресам. Младший байт-на месте, старший уходит в порт с адресом на единицу большим.

Расследование причин (путём осцилографирования шины) показало, что шина работает в режиме 8 разрядного, а не 16 разрядного обмена. При этом сигнал -CS16 формируется нормально и вовремя (опять-же проверено осцилографом).

Спецификация ISA говорит следующее:

+--------------+---------------+----------------+
| Задатчик | Исполнитель |Выполняемый цикл|
+--------------+---------------+----------------+
|Размер|SBH|SA0|Размер| -CS16 |Размер| Чт.|Зап.|
+------+---+---+------+--------+------+----+----+
| 8 | 1 | 0 | 8 | 1 | 8 |L-›L|L-›L|
+------+---+---+------+--------+------+----+----+
| 8 | 0 | 1 | 8 | 1 | 8 |L-›H|H-›L|
+------+---+---+------+--------+------+----+----+
| 8 | 1 | 0 | 16 | 0 | 8 |L-›L|L-›L|
+------+---+---+------+--------+------+----+----+
| 8 | 0 | 1 | 16 | 0 | 8 |H-›H|H-›H|
+------+---+---+------+--------+------+----+----+
| 16 | 0 | 0 | 8 | 1 | 8 |L-›L|L-›L|
+------+---+---+------+--------+------+----+----+
| 16 | 0 | 0 | 16 | 0 | 16 |L-›L|L-›L|
| | | | | | |H-›H|H-›H|
+------+---+---+------+--------+------+----+----+

Моё устройство должно работать в режиме, описываемом самой нижней строкой. Но, осцилограммы (встающий в 1 SBH и меняющееся значение SA0) показывают, что шина работает в режиме, описываемом третьей и четвёртой сверху строкой. Вопрос, почему? Мне кажется, что проблема эта программная, но как её решить-не понимаю пока. Работа с портом идёт из-под ДОС, используется Borland C 3.1, для вывода данные в порты используется функция outport (не outportb, так как первая-16 разрядная, а вторая-8 разрядная).

Кто-нибудь знает, что я делаю не так?

P.s. Вопросы типа "проверь схему" не принимаются, так как при ручном тестировании всё работает как надо и потому, что даже если вытащить устройство из шины и просто запустить программу-драйвер, то шина всё равно висит в 8 разрядном режиме.

Заранее спасибо }=
Реклама:
fossa_white вне форума  
Непрочитано 26.04.2008, 11:38   #2
fossa_white
Прохожий
 
Регистрация: 29.11.2007
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
fossa_white на пути к лучшему
По умолчанию

Блин, таблица отображается неправильно. На рисунке-правильный вариант:

-- Прилагается рисунок: --

fossa_white вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ISA > USB alsto Микроконтроллеры, АЦП, память и т.д 11 12.09.2008 09:20
ISA Soundblaster + PIC = MIDI Player zlatoust Микроконтроллеры, АЦП, память и т.д 2 15.01.2006 13:23
[Решено] Usb->Isa или Lpt->Isa или Pci->Isa ?????? Ggorsh Ремонт оргтехники 6 14.12.2003 00:57
Подскажите ссылку на спецификацию шины ISA. Sergey Микроконтроллеры, АЦП, память и т.д 3 22.06.2003 21:08


Часовой пояс GMT +4, время: 06:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot