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

User Tag List

Страница 10 из 32 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя
Показано с 91 по 100 из 316

Тема: ПК8000 - загрузка с внешних носителей

  1. #91
    Activist Аватар для hantarex
    Регистрация
    03.08.2010
    Адрес
    Ставрополь
    Сообщений
    286
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Большое человеческое спасибо!
    ПК8000 "Веста", "Сура". ПК8002 "Эльф". ПК8010,8020 "Корвет".

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

  3. #92
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Схема глючная!
    Аттач удалил до выяснения причин нестабильной работы. Она даже более нестабильна, чем предыдущая, собранная "на коленке". Все отличие от первой схемы - это применение микрух серии 1533, вместо 555.
    Будем разбираться, из-за чего идут частичные пропуски чтения, так как запись судя по всему проходит нормально.

  4. #93
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проверил часть схемы - ид7 и ПЗУ. Тут все в порядке. Заодно дописал в ПЗУ проверку памяти на старте, как в x86.
    Осталось проверить часть отвечающую непосредственно за обмен данными с винтом (АП6 и ИР23). При использовании 80-ти жильного шлейфа и программных задержках на операциях ввода/вывода система грузится. Правда все равно немного портятся данные при чтении. В общем, либо я с пайкой накосячил, либо одна из микрух глючит, а разводка в принципе верна.

  5. #94
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все, теперь система поддерживает C/H/S. Грузится без проблем. Проблемы начались дальше - добрая половина программ не работала. Причем не рандомно, а конкретные экземпляры (проверял несколько раз выключая/включая комп). Замена 40-жильного шлейфа на 80-жильный привела к стабильной работе винта. Все программы работают. Копирование, запись и удаление проходит без помарок.
    Так что можно сказать, что схема рабочая. Осталось только до конца выяснить, почему в линии строббирования данных возникают ложные сигналы. В выходные буду в городе, прикуплю микрух серии HC (наши 1564). Думаю они исправят положение. А может линию притянуть к плюсу?

    PS: Новую прошивку и утилиты выложу позже, как до конца разберусь с адаптером, все равно возможно еще внесу изменения.

  6. #95
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пока решил вернуться к старой схеме, с ВВ55, как наиболее простой для изготовления. Теперь разводил ручками, а автотрассировщик использовал только на заключительном этапе (так глядишь и платы научусь разводить ).
    Тесты плата прошла успешно. CF работает четко и на глаз не заметно разницы по скорости с векторной схемой на ИР23. Винт же похоже решил уйти на заслуженный отдых. Зато другие два, забракованные мной ранее, с этой платой работают четко.
    Загрузку системы пока не испытывал, нужно ее еще в ПЗУ залить. Сегодня уже лень. Если пробы пройдут удачно - выложу схему с разводкой под ЛУТ.

  7. #96
    Activist Аватар для hantarex
    Регистрация
    03.08.2010
    Адрес
    Ставрополь
    Сообщений
    286
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    так вроде от ВВ55 отказались, типа - глючит?
    ПК8000 "Веста", "Сура". ПК8002 "Эльф". ПК8010,8020 "Корвет".

  8. #97
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я инверторы добавил, как во всех микроконтроллерных схемах.
    Сегодня прошить ПЗУ не получится, а завтра уезжаю на сутки. В общем, до выходных.

  9. #98
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Работает
    Правда придется чуть-чуть подправить схему, так как в ходе тестирования выяснилось, что длительность сигнала CE для ВВ55 не всегда достаточна. Проблему решил кондер на вход CE, осталось добавить его в схему и разводку. Схему с разводкой скину вечером, а прошивку завтра постараюсь привести в божеский вид, а то в таком состоянии стыдно выкладывать.

    PS: но на завтра запланировано много дел, так что не факт что успею. Один черт не горит, успею.

  10. #99
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Схема с разводкой в аттаче.
    По схеме. Резисторы R5, R7 и R8 ставить нет нужды, они скорее на всякий случай. J3 - выбор одной из четырех возможных прошивок, по схеме все понятно. Кондер C9 не ставить, лучше внести изменения в плату (ниже).
    Выводы 30 и 31 на разных ПЗУ бывает разным, так что повнимательнее с ними. У меня разведены под флэш.

    ==================== изменения в плату для стабильной работы ====================
    Пришел китайский логический анализатор. Решил глянуть из-за чего были проблемы с чтением. В общем зря я привязал /CE ВВ55 к сигналам /RD и /WR. Если при записи сигнал /WR достаточно длинный, то с чтением я облажался. /CE вырубался вместе с /RD, когда комп только приступал к чтению. Понятно, что читал мусор. Кондер С9 хотя и смещал /CE, но все равно чтение проходило на грани.

    В общем, я себе сделал небольшую переделку. Выводы 6 и 9 ЛА3 разъединил и соединил вывод 9 с 10. Теперь /CE включён все время цикла чтения/записи и надобность в С9 отпала. Переделка незначительна и практически не заметна на плате.
    ==================== еще одна доработка ====================
    Нашел таки источник проблем. Проблема стара как мир - несоответствие документации и железа, а именно - в ПК сигнал RESET на разъемы не выведен, хотя во всех книжках он указан как существующий. Как итог, при работе плат в линию постоянно шли наводки. Причем на разных платах по разному. На моей основной импульсы достаточно скоротечные и ВВ55 просто не успевала на них среагировать. На другой в основном тоже, но пару раз удалось засечь более длительные импульсы, из-за которых ВВ55 произвела сброс и, как следствие, загрузчик не подключил часть дисков. Насколько я понял, величина и частота наводок зависят как от шлейфа, которым плата подключается к ПК, так и от самой платы (видимо микрухи фонят по разному). Это не считая того, что при старте в регистрах ВВ55 творится разброд и шатание, каждый порт сам за себя.
    В принципе проблему можно решить несколькими путями:
    1. Перерезать дорожку /RESET у ВВ55 (35-я ножка) и подпаять на нее проводок к земле. Это можно сделать внутри панельки, получится аккуратно и незаметно. Либо сделать похожую операцию у ЛА3, но там будет видно. Недостаток очевиден - полное отсутствие сброса микросхемы.
    2. Похожая, но изменения нужно вносить внутри ПК. Пины 15 разъемов расширения свободны и на них можно завести +5В, благо шина прямо у разъемов. Вариант более предпочтителен, поскольку линия RESET используется не только в данном контроллере, но и к примеру в AY-контроллере. Так хоть гарантия, что не будет непредвиденных сбросов.
    3. В самом ПК сигнал RESET присутствует и появляется на короткое время при включении и перезагрузке. Его генерирует ТМ2 (DD5), и обеспечивает сброс процессора и двух ВВ55, отвечающих за порты ввода/вывода. Только он нам не подойдет, поскольку на разъемы, по документации, должен поступать инвертированный сигнал (т.е. активный низкий уровень). Этот сигнал можно снять с ножек 9 и 1, все той же ТМ2. На фото стрелками отмечена сама ТМ2 и ножки RESET на разъемах (они были вообще пустыми):
    =================== создание и подготовка жесткого диска (Compact Flash) ===================
    Первое, нужно разбить диск на разделы. Я делаю это программой FDISK, из пакета MS-DOS/PC-DOS, но возможно есть аналогичные программы под винду. Итак, первым делом, выбираем нужный нам диск и удаляем с него все разделы. Далее, создаем основной раздел. В CP/M он будет игнорироваться, поэтому на него нет ограничений по размеру. Затем, создаем расширенный раздел на весь оставшийся объем диска. В этом расширенном разделе создаем логические диски, которые и будут отображаться в CP/M. Поэтому, желательно "нарезать" их размерами от 1 до 20 Мб, не более 12 штук (на больше не хватит памяти у ПК8000). По завершении назначаем основной раздел загрузочным (первичным) и выходим. Основной раздел можно отформатировать и записать на него дос и все необходимые утилиты, но это по желанию.
    Вот теперь используем F8000D.EXE.
    Коротко о параметрах.
    В CP/M диск состоит из 128-байтных секторов. То есть, все операции записи/чтения производятся с секторами, а не побайтно. Сектора объединяются в группы, от 2 и выше секторов (всегда кратно степени двойки!). В досе эти группы называют кластерами, в CP/M - блоками. Таким образом, минимальная единица дискового пространства в CP/M - это блок. Даже если файл имеет размер в 1 байт, на диске ему выделится один блок. Понятно, что чем меньше блоки, тем рациональнее используется дисковое пространство. Однако, в системе есть такая таблица - allocation vector (ALV), где помечается статус блоков диска (занят или свободен). Размер этой таблицы естественно ограничен. В данной реализации ее размер 2Кб, то есть на 16384 блоков (1 бит - 1 блок). И если одному диску выделить 8000 блоков, то остальным останется чуть больше половины. Поэтому количество блоков нужно распределить так, чтобы хватило всем дискам. Если имеем 12 дисков одинакового размера, то каждому можно выделить по 16384/12 = 1360 блоков. Это и регулирует параметр:
    -a<xxx> - size ALV with 'xxx', [128..512] (default 256)
    Размер задается в байтах и чтобы получить количество блоков нужно умножить на 8. Размер я ограничил от 1024 до 4096 блоков. Нужно понимать, что реальный размер блока может отличаться от заданного. Он вычисляется по формуле: size = DiskSize / ((ALV - 1) * 8) и округляется до большего значения кратного степени двойки. К примеру, имеем диск 2Мб и задаем ALV равным 300, то есть 2400 блоков. Размер блока будет равен 2Мб/(299 * 8) = 876. Округляем до ближайшего кратного и получаем 1024. Количество блоков соответственно будет 2048 (вместо запланированных 2400), а размер ALV = 256.
    Под оглавление диска тоже выделяется некоторое количество блоков. Чем больше, тем больше файлов можно на нем хранить. Максимально можно выделить 16 блоков. За это отвечает параметр:
    -d<x> - size directory in clusters [2..16] (default 2)
    Только не нужно забывать, что чем больший размер директории, тем больше времени тратит система на поиск и загрузку файлов. Ну и на размер свободного пространства тоже влияет, не без этого. Тут трудно что-то посоветовать, поскольку один файл может занимать от 1 до нескольких записей (одна запись - 32 байта) и расчитать заранее невозможно. Мне хватает 4 блоков и лишь один раз столкнулся с нехваткой места в директории, когда пытался уместить на диск несколько десятков файлов. В общем, нужно экспериментировать.
    Итак, запускаем. Выбираем диск. Далее начинается сканирование и поиск логических дисков. При нахождении логического диска будет выведен запрос на конвертирование его под CP/M. При нахождении диска CP/M будет выведен запрос на его преобразование в диск DOS. Это было сделано после того, как я столкнулся с тем, что FDISK отказывается удалять разделы с дисками НЕ-DOS. Такая вот политкорректность от мелкософта
    --------------------------------
    Теперь можно приступить к переносу софта. Это делается либо в досе, утилитой C8000D, либо в винде, посредством плагина к Total Commander, я его здесь выкладывал. Утилита C8000D требует задания имени диска, на который копируются файлы. Имя - это имя диска в CP/M, начиная от 'A' и тд. по возрастанию. Копируемые файлы можно задать по маске, как это допускает ДОС. Все, подключаем к ПК и работаем.

    PS: Собственно диск в основном разделе я форматирую под FAT16 и делаю его загрузочным. На него записываю вышеперечисленные утилиты и все файлы для ПК8000. Удобно тем, что загрузившись с него можно форматнуть любой CP/M диск и записать нужные файлы. Сам диск прекрасно виден в винде. Как-то так.
    ======================= плата ======================
    HDDVV55 (PDF).zip
    HDD_vv55.zip
    Последний раз редактировалось DemonId7; 29.12.2018 в 19:16.

  11. #100
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нашел таки ошибку, точнее невнимательность. Работает как часы. Вот теперь схему можно смело утюжить, или развести под заказ (можно съэкономить на размере). Мне же хватит и ЛУТа.

Страница 10 из 32 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. ПК8000 - Клавиатура
    от Mick в разделе ПК8000
    Ответов: 60
    Последнее: 19.03.2024, 22:36
  2. ПК8000 - Ремонт
    от Mifody в разделе ПК8000
    Ответов: 106
    Последнее: 09.03.2023, 01:20
  3. Набор платок внешних периферийных устройств для спектрума.
    от zorel в разделе Несортированное железо
    Ответов: 70
    Последнее: 31.08.2015, 23:02
  4. куплю пк8000
    от omaxlab в разделе Барахолка (архив)
    Ответов: 26
    Последнее: 02.07.2012, 21:44
  5. Тул для конвертации образов носителей
    от Alex Rider в разделе Утилиты
    Ответов: 22
    Последнее: 05.05.2012, 16:25

Ваши права

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