Перейти к содержанию
    

К сожелению нет.

Кстати,не подскажете сигнал SBHE приходит после установки адреса порта,а в какое значение он первоначально устанавливается 0 или 1 ,т.е. какой байт будет передоваться в данный момент старший или младший?

 

SBHE min 20 нс после спада BALE. А спад BALE минимум 130нс после установки адреса. Это по спецификации АТ96. РС104 не читал, но думаю что ISA одинакова реализована. Про значение SBHE у Гука на 154 странице. При 16-ти разрядном чтении-записи портов по четным адресам он должен быть 0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот засада,ещё и макет перегрелся,и почему на PCM не ставят активного охлаждения...Вот если так сделать,как думаете-пойдёт?У меня почему-то сомнения по этому поводу.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity test_PC104 is
Port ( d : inout  STD_LOGIC_VECTOR (15 downto 0);
a : in  STD_LOGIC_VECTOR (15 downto 0);
prog_clk : out STD_LOGIC_VECTOR (15 downto 0);
IO_CS16 : out STD_LOGIC;
SBHE  : in STD_LOGIC;
aen : in  STD_LOGIC;
ior : in  STD_LOGIC;
iow : in  STD_LOGIC);
end test_PC104;
architecture Behavioral of test_PC104 is
signal pr_clk : STD_LOGIC;
begin
pr_clk<='1' when conv_integer(a) = 63493 and aen='0' else '0';
IO_CS16<='0' when pr_clk='1' else '1';
process(SHBE)
begin
if SHBE='1' then
if iow='0' then
if pr_clk='1' then
prog_clk(7 downto 0)<=d(7 downto 0);
end if;
end if;
elsif SHBE='0' then
if iow='0' then
if pr_clk='1' then
prog_clk(15 downto 8)<=d(15 downto 8);
end if;
end if;
end if;
end process;
end Behavioral;

Изменено пользователем darkniisiis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас получилась защёлка, управляемая SBHE. Если же он не измениться, что и должно быть при нормальной 16-разрядной передачи, то ничего не произойдет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

гук не скачивается,у него в названии русские буквы,скорее всего глюк из-за этого.

Я просто думал что SBHE изменяется в зависимости от того какой байт передаётся,0-старший,1-младший.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

гук не скачивается,у него в названии русские буквы,скорее всего глюк из-за этого.

Я просто думал что SBHE изменяется в зависимости от того какой байт передаётся,0-старший,1-младший.

 

http://ifolder.ru/2707399

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде как адрес вообще не имеет отношения к абоненту на ИСЕ при ПДП. Вопрос: Вы как программируете контроллер ПДП у CS5530 ? По моим наблюдениям он нормально не выполняет Extended Write и Compressed Time режимы передачи. Только Normal.

 

По умолчанию. Значит вроде бы должен стоять режим Normal. Но надо проверить, может в этом все дело. Спасибо за подсказку. Программист только в понедельник из отпуска выйдет :( лето. О результатах напишу.

 

После того как запрограммировали командный регистр DMA вручную ( в режиме Normal), все заработало. Черт знает как биос его программирует (или линукс), видимо меняет значения по умолчанию.

LMT, спасибо за помощь! :beer:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрел сегодня, Ваши симптомы были похожи на Extended Write. Странно, что BIOS/Linux выставляет этот режим.

В любом случае хорошо, что заработало :) :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поясните пожалуйста поведение слейва на шине при записи 16-ти разрядного числа в нечетный адрес. Как я понимаю такого быть не должно, а вдруг случится?

в частности интересует сигнал IOCS16 (подразумевается что слейв 16-ти разрядный)

я так понимаю что слейв должен запретить передачу двух байт за один такт?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почту глянь! я те скинул свой старый проект для ISA шины на PC104.

Вопросы будут, пиши в личку !

 

Скиньте пожайлуста и мне свой старый проект для ISA шины на PC104.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поясните пожалуйста поведение слейва на шине при записи 16-ти разрядного числа в нечетный адрес. Как я понимаю такого быть не должно, а вдруг случится?

в частности интересует сигнал IOCS16 (подразумевается что слейв 16-ти разрядный)

я так понимаю что слейв должен запретить передачу двух байт за один такт?

 

Не надо писать 16 разрядные числа в нечетные адреса, геморой и снижение производительности :) Оно происходит в два такта. Чтобы определить где находяться данные (младший\старший байт) нужно анализировать nSBHE. Очень подробно расписано у Гука, ссылка в этой теме есть. IOCS16 не зависит от того, четный адрес или нечетный.

 

Пишите-читайте по четным адресам. IOCS16 выставляется простым дешифрированием адреса. nSBHE вообще при этом не нужен.

 

Совсем забыл: не надо дешифрировать нечетные адреса. Проблем меньше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не надо писать 16 разрядные числа в нечетные адреса, геморой и снижение производительности :) Оно происходит в два такта. Чтобы определить где находяться данные (младший\старший байт) нужно анализировать nSBHE. Очень подробно расписано у Гука, ссылка в этой теме есть. IOCS16 не зависит от того, четный адрес или нечетный.

 

Пишите-читайте по четным адресам. IOCS16 выставляется простым дешифрированием адреса. nSBHE вообще при этом не нужен.

 

Совсем забыл: не надо дешифрировать нечетные адреса. Проблем меньше.

 

да я прекрасно это понимаю что не надо, но есть люди которые хотят затычку от непредвиденных ситуаций.. и при тестах на разных контроллерах шины были получены разные результаты при записи двубайтного числа по нечетному адресу... вот я и хотел уточнить этот момент, описана ли эта ситуация в стандарте на шину

 

p.s. поковырявшись в Гуке нашел вроде нужную табличку, будем надеяться что так оно и есть на самом деле)

Изменено пользователем UserXP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да я прекрасно это понимаю что не надо, но есть люди которые хотят затычку от непредвиденных ситуаций.. и при тестах на разных контроллерах шины были получены разные результаты при записи двубайтного числа по нечетному адресу... вот я и хотел уточнить этот момент, описана ли эта ситуация в стандарте на шину

 

Это наверно еще впрямую от схемной реализации зависит.

Если ваша плата выполняет 16 разрядный цикл доступа, а хотите его завершить как 8 разрядный, надо запрещать сигналы i/o cs16, или memcs16.

Да еще при этом обычно при обмене словами игнорируют при дешифрации адреса sbhe и sa0.

Что будет в результате обращения по нечетному адресу при обмене словами, вряд ли это у Гука описано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

самое интересное что да, написано... и написано что делать чтобы добиться "максимальной" совместимости

 

проверяю..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что будет в результате обращения по нечетному адресу при обмене словами, вряд ли это у Гука описано.

 

Офигительно все там написано.

 

И все таки не пойму, зачем по нечетным адресам работать? Софт так написан и не может быть переделан?

___.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дайте плиз. исходничек работающий или киньте на mail. Спасибо!!

 

Дайте плиз. исходничек работающий или киньте на mail. Спасибо!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...