User Tag List

Страница 4 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 31 по 40 из 68

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,236
    Спасибо Благодарностей отдано 
    493
    Спасибо Благодарностей получено 
    996
    Поблагодарили
    643 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    Не стал я торопиться с перепайкой NEMO, а зашёл с другой стороны. Для другого Ориона собрал наипростейший "контроллер" IDE:



    По сути это и контроллером сложно назвать, просто переходник с ППА (КР580ВВ55А) на IDE. С точки зрения "феньшуя" тут вообще всё плохо: у кондовой ВВ55 нагрузочная способность никакая (максимум один вход ТТЛ!), быстродействие вообще унылее некуда.
    И вот сюрприз... через такой "контроллер" сабжевый ноутбучный "винт" без проблем определился и работает!!! Вот вообще без проблем:




    Т.е. дело не в микросхемах, не в нагрузочной способности, не в помехах, а в чём-то другом. Какой-то косяк (с времянками?) в нэмо-схемотехнике. Придется вникать в его устройство... ((


    Фото девайса:

    Скрытый текст







    [свернуть]
    Последний раз редактировалось Denn; 28.03.2018 в 02:26.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

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

  3. #2

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,318
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,483
    Поблагодарили
    968 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Какой-то косяк (с времянками?) в нэмо-схемотехнике.
    а в софте (например длительность опроса/передачи) не может быть подвоха ?
    примерно как дискетные турболоадеры не работали быстро на старых моделях дисководов

  4. #3

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,236
    Спасибо Благодарностей отдано 
    493
    Спасибо Благодарностей получено 
    996
    Поблагодарили
    643 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    а в софте (например длительность опроса/передачи) не может быть подвоха ?
    примерно как дискетные турболоадеры не работали быстро на старых моделях дисководов
    В случае NEMO-IDE тайминги формируются аппаратно. В софте я мееееедленно кладу команду в порт, а накопитель её не получает. Т.е. программно фактически одно простое действие: я записываю в порт командного регистра байт 0ECh и всё! Дальше жду ответ накопителя (смотрю его регистр статуса). Ответа никакого нет.
    И вот тут уже надо разбираться, а как аппаратно контроллер с помощью одной команды МП реализует целый алгоритм действий?

    Через контроллер-затычку я делаю это так:

    1) Выставляю в регистре данных 00ECh (именно два байта, т.к. ШД в IDE 16-разрядная);
    2) Активирую линию /CS1FX (выборка блока командного регистра накопителя);
    3) Активирую линию /IOW (импульс записи данных в регистр накопителя);
    4) Жду немного (7+ тактов МП);
    5) Деактивирую линию /IOW;
    6) Деактивирую линию /CS1FX.

    Каким чудесным образом NEMO делает это всё одной командой МП? Может всё таки есть те, кто в курсе как работает этот контроллер?

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

    Пытаюсь понять работу нэмо-схемы...

    При записи в регистр команд HDD, дёргаются оба чипселекта регистров данных, стало быть на ШД IDE выставляется инфа из обоих регистров. Что, в общем-то, логично. Но при этом в старший регистр со стороны МП ничего не записывается, стало быть в HDD выдаётся мусор, который был в этом регистре от предыдущих операций.
    Могу предположить, что десктопные "винты" игнорируют инфу в MSB, а ноутбучный хочет всё по-честному. Но не уверен, что я правильно понял работу схемы...

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

    Есть инфа , что мой вариант нэмы скопипастен с Profi 3+.

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

    Цитата Сообщение от Denn Посмотреть сообщение
    Но при этом в старший регистр со стороны МП ничего не записывается, стало быть в HDD выдаётся мусор, который был в этом регистре от предыдущих операций.
    Могу предположить, что десктопные "винты" игнорируют инфу в MSB, а ноутбучный хочет всё по-честному. Но не уверен, что я правильно понял работу схемы...
    Не подтвердилось! Попробовал подсовывать мусор в варианте с "затычкой", всё равно работает. В чём-то другом проблема.
    Последний раз редактировалось Denn; 28.03.2018 в 13:11.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  5. #4

    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    В хозяйстве также есть другой 2,5" девайс фирмы IBM, с ним всё то же самое - "не алё". Проявляется следующим образом: при подаче питания шпиндель раскручивается, но при отправке команд ничего не происходит, контроллер раппортует об ошибке накопителя. По факту "винт" никак не отвечает вообще. Картина ровно та же самая, что и с голым кабелем. Соответственно, индикатор активности не вспыхивает.
    Я об этом писал не один раз в разных темах, на Профи аналогичным образом не работают некоторые WD рзамером до 2-г гигабайт, 10 гиг и выше работают. Кроме WD ещё какие то винты не опознавались, не помню уже за давностью лет. Альтернативно одаренный Совелий брызгал ядовитой слюной и растопыривал пальцы, в упор не понимая, что проблема тут физическая, не соответствие уровней сигналов на шине. шина ведет себя так, как будто винт вообще не подключен.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  6. #5

    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    3,002
    Спасибо Благодарностей отдано 
    205
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня с классическим НЕМО-ИДЕ такая ситуация. К нему подключен адаптер для CF. Так вот древняя CF на 256МБ работает замечательно (на обычной частоте компа и в ТУРБО). А вот более современный Kingston на 4ГБ работает только в ТУРБО-режиме, да и то подглючивает (читается мусор в каталоге, использую WDC v1.61). На обычной частоте компа вообще не детектится. А вот если эту же CF (Kingston на 4ГБ) вставить в SMUC2 (любой версии), то в нём эта CF замечательно работает на любой скорости компа.
    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

  7. #6
    HardWareMan
    Гость

    По умолчанию

    Я догадываюсь, как именно он это делает, но хотелось бы увидеть актуальную схему. Если покажешь - я разъясню.
    Что касается старшего байта, то это трюк со стороны IDE. У него только регистр данных 16 бит, а остальные только 8. Поэтому, значение старшего байта учитывается только при пересылке данных (и в схеме он, по идее, должен записываться первым, а считываться последним).

  8. #7

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,236
    Спасибо Благодарностей отдано 
    493
    Спасибо Благодарностей получено 
    996
    Поблагодарили
    643 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    HardWareMan, вот - http://denn.ru/8bit/orion/pro/hdd_pro_trd.pdf

    На схеме есть нарисованная от руки доработка, как я понимаю это строб TRD сигналом чтения МП. Эта доработка у меня сделана, без неё вообще не работало.

    П.С. давай всё таки раскурим КАК она работает, а то похоже никто больше не в курсе
    Последний раз редактировалось Denn; 28.03.2018 в 13:31.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  9. #8

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,236
    Спасибо Благодарностей отдано 
    493
    Спасибо Благодарностей получено 
    996
    Поблагодарили
    643 сообщений
    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.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  10. #9
    HardWareMan
    Гость

    По умолчанию

    ИД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.

  11. #10

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,236
    Спасибо Благодарностей отдано 
    493
    Спасибо Благодарностей получено 
    996
    Поблагодарили
    643 сообщений
    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 из 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

Ваши права

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