Важная информация

User Tag List

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 41 по 50 из 68

Тема: Ноутбучный винт не дружит с NEMO_IDE.. WTF?

  1. #41
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    HardWareMan, конкретно с ноутбучным "винтом" не работает следующий участок:

    1) Записываю команду идентификации накопителя (значение 0ECh) в порт 5Fh;
    2) Читаю значение порта статуса (этот же адрес 5Fh).

    "Винт" в знак принятия команды должен выставить старший бит (BSY). На практике же из порта 5Fh читается значение 59h и ничего не происходит. То же самое значение читается, если винчестер вообще не подключать.

    - - - Добавлено - - -

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    А получше нет качеством? Раскурить - это всегда пожалуйста, если мануалы годные.
    Есть такой вариант - http://denn.ru/8bit/orion/pro/ide-rtc.jpg

    Но лично я эти иноземные каракули не понимаю, мне роднее наше начертание ЛЭ.

    - - - Добавлено - - -

    Вот код, если это как-то поможет:

    Код:
    ; выдаём команду
    MVI A,0ECh
    OUT 5Fh
    
    WAIT_BSY:
    ; ждём принятие (D7=1)
    IN 5Fh
    RLC
    JNC WAIT_BSY
    
    ; проверяем наличие ошибок (D0=1 ?)
    IN 5Fh
    RRC
    JC ERROR
    ...
    Последний раз редактировалось Denn; 28.03.2018 в 13:52.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  2. #42
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,405
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    598
    Поблагодарили
    444 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ИД7 выбирает порты:
    A[7:4] = 0x5, т.е. порты под контроллер 0x50-0x5F
    IORQ говорит, что обращение через IN/OUT, а BLIO - Block I/O?

    Половинка ИД4 разделяет на запись и чтение, по 8 ячеек (по А[3]):
    A[3] = 0 (0x50-0x57) происходит обращение к nCS3x
    A[3] = 1 (0x58-0x5F) происходит обращение к nCS1x
    nCS1x это основной набор регистров, nCS3x это регистр расширенного статуса. Сигналы формируются через ЛИ1, когда на одном из входов будет 0 - сформируется сигнал CSH сформируется при записи в 0x58-0x5F, что соответствует записи в основной набор регистров. Он выставит старший байт, который записан предварительно в ИР23. Обращение к регистру старшего байта происходит по адресу 0x57. Одновременно с этим будет активирован nCS3x, но у HDD там регистр только на 0x6 адресе, поэтому конфликта не будет. Вообще, 0x3F0-0x3F7 это FDC, а HDD туда "вклинился" в дырку. Буфер младшего байта выбран всегда, рулёжка происходит только направлением. Поэтому, его надо всегда держать на выводе, переводя на ввод только при чтении из IDE. Сигналы A[2:0] и стробы записи/чтения выведены напрямую через буфер, поэтому все тайминги будут зависеть от цикла CPU.

    Итог:
    0x50..0x55 - не используются
    0x56 - регистр расширенного статуса IDE
    0x57 - регистр старшего байта данных IDE
    0x58-0x5F - регистры IDE.
    При работе с регистрами управления и статуса IDE регистр старшего байта можно игнорировать.
    При работе с регистром данных требуется соблюдения последовательности.
    При чтении: читаем из IDE (0x58) младший байт данных, читаем из регистра (0x57) старший байт данных.
    При записи: пишем старший байт данных в регистр (0x57), пишем младший байт данных в IDE (0x58).
    Цитата Сообщение от Denn Посмотреть сообщение
    HardWareMan, конкретно с ноутбучным "винтом" не работает следующий участок:

    1) Записываю команду идентификации накопителя (значение 0ECh) в порт 5Fh;
    2) Читаю значение порта статуса (этот же адрес 5Fh).

    "Винт" в знак принятия команды должен выставить старший бит (BSY). На практике же из порта 5Fh читается значение 59h и ничего не происходит. То же самое значение читается, если винчестер вообще не подключать.
    Тут не понятно. Нужно посканить проход команды в диск по факту (nCS1x, BA[2:0], BWR). А еще мне не очень нравится, как сделан там сброс.
    Последний раз редактировалось HardWareMan; 28.03.2018 в 14:11.

  3. #43
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    HardWareMan, спасибо! Вроде всё верно и даже красиво.. но почему эта падла не видит ноутовский винт?

    При банальной записи команды (это одно действие!), ноутовский хдд не активируется. Вероятно ему не нравятся тайминги /CS1 и /BWR, либо на момент их прихода на выходе буфера данных не то, что нужно. К сожалению, не располагаю измерительной аппаратурой, позволяющей рассмотреть сигналы и их соотношение онлайн.

    Может слишком коротко моргает /BWR ? Или /CS1 формируется чуть позже /BWR и контроллеру внутри хдд это не нравится?

    Или данные не успевают нарисоваться на выходе буфера? Но с другой стороны, на некорретную команду всё равно диск должен отвечать (ошибкой).

    - - - Добавлено - - -

    Ещё момент. Я пробовал понижать клок МП в 4 раза (10 МГц -> 2,5 МГц), ситуация никак не меняется. Времянки сигналов удлиняются, но соотношение сигналов разумеется нет.

    - - - Добавлено - - -

    HardWareMan, я правильно понимаю, что сигнал /WR приходит от МП после того, как 100%-но сформированы ША, ШД и /IORQ? Т.е. в нашем случае уже стоит /CS1 (получается из ША и "йорика") и готов код команды на выходе АП6.

    Получается, что задержка формирования /CS1 = ИД7+ИД4+ЛИ1, а задержка /BWR = ИР22.
    А вот задержка данных на выходе буфера = ИР22+ИД7+ИД4+ЛЛ1+АП6 !!!
    Последний раз редактировалось Denn; 28.03.2018 в 15:55.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  4. #44
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,405
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    598
    Поблагодарили
    444 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    HardWareMan, я правильно понимаю, что сигнал /WR приходит от МП после того, как 100%-но сформированы ША, ШД и /IORQ? Т.е. в нашем случае уже стоит /CS1 (получается из ША и "йорика") и готов код команды на выходе АП6.

    Получается, что задержка формирования /CS1 = ИД7+ИД4+ЛИ1, а задержка /BWR = ИР22.
    А вот задержка данных на выходе буфера = ИР22+ИД7+ИД4+ЛЛ1+АП6 !!!
    В отличии от твоего проверочного ногодрыгного варианта через ВВ55, этот Nemo IDE завязан на времянки CPU, в данном случае это Z80. IORD тут получается растянутым (адреса и CSхх могут запаздывать из-за указанных тобой задержек), а IOWR наоборот короткий (при этом остальные сигналы устанавливаются за 2 такта до активации WR). Могу посоветовать установить ИДшки и логику пошустрее, оставив медленномощные только буфера и регистры. Ну или на CPLD сделай весь замес. Это я к тому, чтобы проверить схему в принципе, а не конкретную реализацию на плате. Т.е., "собрать" другую макетку и попробовать с тем же софтом на том же компе.

  5. #45
    Guru
    Регистрация
    16.12.2009
    Адрес
    Харьков
    Сообщений
    4,731
    Спасибо Благодарностей отдано 
    355
    Спасибо Благодарностей получено 
    369
    Поблагодарили
    238 сообщений
    Mentioned
    11 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Denn, какая у Вас длительность IORQ? Как организовано управление WAIT проца? В Профи 3+ для нормальной работы периферии в турборежиме, введен узел удлинения iorq (а также WR и RD) на одновибраторе АГ3. он формирует импульс по выводу WAIT 400ns, тем самым удлиняя сигналы управления периферией. вот ссылка на страницу со схемой - http://sblive.narod.ru/ZX-Spectrum/Profi/Profi.htm . Вам нужен узел на DD45. ЛИСТ2П. Там же Вы найдете схему оригинального контроллера Профи 3+. На Профи схема оригинального контроллера работает отлично.
    Profi must live!

    Моё железо...

    1. Profi 5.06/1Mb(DRAM)+Profi5.06(UP)/HDD/3`5FDD/CF512Mb/SD-CARD
    3. Profi 6.2 Rev. B/1Mb/3`5FDD/HDD3.2Gb
    4. Profi 5.05(down)/1Mb+Profi 5.03(UP)/Pentagon_Fix
    Все укомплектованы:
    Profi_ZX-BUS/ZXMC2/NemoIDE/SounDrive
    [свернуть]

    Ссылка на Telegram-канал поддержки пользователей Profi.

  6. #46
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    HardWareMan, на новую недо-конструкцию я морально не готов А вот перепаять логику вполне можно попробовать.

    Итак, намечается к перепайке:

    1) 1533ИД7 -> 74ACT138
    2) 1533ИД4 -> ...эээ, тут нет вариантов, к сож ((
    3) ЛИ1 и ЛЛ1 -> 74ACT08 и 74ACT32
    4) Буфер адреса, BWR, BRD -> 74ACT373 (сейчас стоит более медленная 74HCT373).


    - - - Добавлено - - -

    solegstar, интересная информация к размышлению!
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  7. #46
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #47
    Guru
    Регистрация
    16.12.2009
    Адрес
    Харьков
    Сообщений
    4,731
    Спасибо Благодарностей отдано 
    355
    Спасибо Благодарностей получено 
    369
    Поблагодарили
    238 сообщений
    Mentioned
    11 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    2) 1533ИД4 -> ...эээ, тут нет вариантов, к сож ((
    как вариант - заменить на ИД7. с небольшой переделкой схемы.
    Profi must live!

    Моё железо...

    1. Profi 5.06/1Mb(DRAM)+Profi5.06(UP)/HDD/3`5FDD/CF512Mb/SD-CARD
    3. Profi 6.2 Rev. B/1Mb/3`5FDD/HDD3.2Gb
    4. Profi 5.05(down)/1Mb+Profi 5.03(UP)/Pentagon_Fix
    Все укомплектованы:
    Profi_ZX-BUS/ZXMC2/NemoIDE/SounDrive
    [свернуть]

    Ссылка на Telegram-канал поддержки пользователей Profi.

  9. #48
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от solegstar Посмотреть сообщение
    Denn, какая у Вас длительность IORQ
    Схема Орион-ПРО весьма навороченная. Конкретно /IORQ идёт с МП через буфер на 1533ИР22 в схему. Длительность согласно таймингам Z80. Использую два варианта клока МП: 2,5 МГц и 10 МГц.


    Цитата Сообщение от solegstar Посмотреть сообщение
    Как организовано управление WAIT проца?
    Тут наворот на навороте, и IORQ там плотно замешан. Как я понял, торможение МП происходит при всех обращениях к ОЗУ и к ВУ.

    Вот участок схемы:



    Сигнал "64" - это тактовая (10 МГц), поделённая триггером ТМ2 пополам, т.е. клок 5 МГц.


    Цитата Сообщение от solegstar Посмотреть сообщение
    В Профи 3+ для нормальной работы периферии в турборежиме, введен узел удлинения iorq (а также WR и RD) на одновибраторе АГ3.
    Под "нормальной работой" вероятно подразумевается стабильное чтение данных. В моём случае как-то всё слишком конкретно: если работает, то 100% стабильно, а если не работает, то совсем!
    Последний раз редактировалось Denn; 28.03.2018 в 18:19.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  10. #49
    Guru
    Регистрация
    16.12.2009
    Адрес
    Харьков
    Сообщений
    4,731
    Спасибо Благодарностей отдано 
    355
    Спасибо Благодарностей получено 
    369
    Поблагодарили
    238 сообщений
    Mentioned
    11 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    1) Записываю команду идентификации накопителя (значение 0ECh) в порт 5Fh;
    2) Читаю значение порта статуса (этот же адрес 5Fh).

    "Винт" в знак принятия команды должен выставить старший бит (BSY). На практике же из порта 5Fh читается значение 59h и ничего не происходит. То же самое значение читается, если винчестер вообще не подключать.
    а с чего вы взяли, что бит BSY будет выставлен в 1? команду то вы записали, но винт шустрый, проглатил её и возможно вы просто не успеваете прочитать регистр статуса. попробуйте жестко задать 0 на сигнале /RESET винта и прочитать регистр статуса, мне кажется, что тогда на BSY будет 1ца.

    - - - Добавлено - - -

    Цитата Сообщение от Denn Посмотреть сообщение
    Тут наворот на навороте, и IORQ там плотно замешан. Как я понял, торможение МП происходит при всех обращениях к ОЗУ и к ВУ.
    да, задержки на 2 и 3 такта сигнала 64. по одновибратору на АГ3 - достаточно собрать схему и с 4го вывода АГ3 через диод (катодом к 4 выводу АГ3) подключится анодом к общей точке анодов VD3, VD4. номиналы резистора и конденсатора для разных серий микросхем есть в табличке.
    Profi must live!

    Моё железо...

    1. Profi 5.06/1Mb(DRAM)+Profi5.06(UP)/HDD/3`5FDD/CF512Mb/SD-CARD
    3. Profi 6.2 Rev. B/1Mb/3`5FDD/HDD3.2Gb
    4. Profi 5.05(down)/1Mb+Profi 5.03(UP)/Pentagon_Fix
    Все укомплектованы:
    Profi_ZX-BUS/ZXMC2/NemoIDE/SounDrive
    [свернуть]

    Ссылка на Telegram-канал поддержки пользователей Profi.

  11. #50
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от solegstar Посмотреть сообщение
    а с чего вы взяли, что бит BSY будет выставлен в 1? команду то вы записали, но винт шустрый, проглатил её и возможно вы просто не успеваете прочитать регистр статуса. попробуйте жестко задать 0 на сигнале /RESET винта и прочитать регистр статуса, мне кажется, что тогда на BSY будет 1ца.
    Честно говоря, меня те же мысли стали посещать. К сожалению, Орион-ПРО с нэмой сейчас не под рукой, и доберусь до него только на следующей неделе. Вариант с перманентным сбросом (программным) вроде я тоже пробовал (в ответе IDE ничего не менялось), но на 100% не уверен.


    Цитата Сообщение от solegstar Посмотреть сообщение
    да, задержки на 2 и 3 такта сигнала 64. по одновибратору на АГ3 - достаточно собрать схему и с 4го вывода АГ3 через диод (катодом к 4 выводу АГ3) подключится анодом к общей точке анодов VD3, VD4. номиналы резистора и конденсатора для разных серий микросхем есть в табличке.
    Мне почему-то кажется, что винчестер не то устройство, для обслуживания которого 8-битке требуются какие-то задержки. На ноутбуке, в котором стоял этот накопитель, смотрели видео файлы, а тут Орион какой-то с жалкими 10(2,5 МГц) тактовой...
    Обращения к портам и так вэйтят МП, считаете, что этого недостаточно?
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. GRM1 не дружит с 1818ВГ93
    от blackinwoman в разделе Pentagon
    Ответов: 4
    Последнее: 21.01.2018, 01:20
  2. NEMO_IDE не работает с винтом.
    от John North в разделе Внешние накопители
    Ответов: 28
    Последнее: 01.04.2012, 17:02
  3. Ноутбучный дисковод.
    от Petr0v в разделе Внешние накопители
    Ответов: 7
    Последнее: 29.11.2011, 20:48
  4. Куплю маленький ноутбучный веник.
    от Surfin_Bird в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 31.10.2006, 21:29

Ваши права

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