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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 25

Тема: Контроллер дисковода на одной микросхеме ATMega8

  1. #1
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Благодарностей: 1250
    Записей в дневнике
    21
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Контроллер дисковода на одной микросхеме ATMega8

    Точнее контроллер IDE, FDD, SDCard на котором будут работать существующие ОС.

    Насколько я понял, процессор компьютера БК0010 при обращении к любому устройству (в том числе памяти), ждет от этого устройства сигнал RPLY. И пока не придет RPLY, выполнение программы не продолжится. (Или не произойдет прерывание-ошибка, если устройство не успеет ответить за 64 такта).

    Величина тайм-аута зависания шины составляет 64 такта процессора. В случае отсутствия сигнала SYNC в течение указанного промежутка времени после установки сигналов DIN или DOUT, произойдет прерывание по 4 ячейке. (с) http://emuverse.ru

    Это очень хорошая новость. Это значит, что можно абсолютно весь эмулятор реализовать на единственном "медленном" микроконтроллере?

    Меня изначально пугала идея подключать стандартное ПЗУ (27512) в БК0010. Помимо того, что потребуется ставить две ПЗУ, нужно еще ставить 8 не маленьких микросхем (хранение и дешифрация адреса).

    Схема БК0010. Сигнал RPLY/СИП/B20 выведен на системную шину.

    Схема блока расширения памяти. Там есть блок формирования СИП.

    Вообще, ПЗУ от БК0010 очень похожи на микросхемы GROM компьютера TI99/4. Там так же шина данных и адреса совмещены, так же внутренняя дешифрация адреса, так же есть сигнал RPLY. И я уже написал эмулятор этих GROM на МК ATMega. Так что проблем в написании эмулятора контроллера дисковода не должно возникнуть.

    Прав ли я?
    И кто нибудь уже делал подобный эмулятор ПЗУ и FDD на единственном МК?

    Такой контроллер может изготовить любой электронщик, так как не нужно будет множества редких элементов. Нужен будет только:

    1) Разъем
    2) Контроллера ATMega
    3) Разъем для SD-карты
    4) SD-карта

    И цена подобного контроллера будет от 100 рублей.

    P.S. У меня сейчас проблемы только с разъемом.
    Последний раз редактировалось vinxru; 06.03.2012 в 16:05.

  2. Эти 2 пользователя(ей) поблагодарили vinxru за это полезное сообщение:
    Mad Killer/PG (11.03.2012), perestoronin (08.12.2012)

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

  4. #2
    Activist Аватар для Woland
    Регистрация
    26.10.2011
    Адрес
    Москва
    Сообщений
    239
    Благодарностей: 304
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Очень оптимистично про 100 руб..
    Мне под заказ разработчик реплицирует SMK512 на ПЛИС, выйдет себестоимости минимум 700 руб (без учета оплаты интеллектуального труда).
    Последний раз редактировалось Woland; 07.03.2012 в 00:27.

  5. #3
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Благодарностей: 1250
    Записей в дневнике
    21
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ПЛИС дороже стоит. И вы делаете реплику сложного устройства.

    Я же планирую сделать работу с SD-картой в микроконтроллере. БК0010 будет записывать в специальный порт команду (1-чтение сектора, 2-запись сектора, 3-форматирование дорожки...) и читать/записывать из этого порта 512 байт данных.

    Хотя можно сделать полноценную эмуляцию контроллера FDD, но я думаю, что это не нужно.

  6. Этот пользователь поблагодарил vinxru за это полезное сообщение:
    Mad Killer/PG (11.03.2012)

  7. #4
    Moderator Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    Воронеж
    Сообщений
    4,068
    Благодарностей: 562
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    1) Разъем
    И цена подобного контроллера будет от 100 рублей.
    P.S. У меня сейчас проблемы только с разъемом.
    Один разъём 100-150 руб.

    Цитата Сообщение от vinxru Посмотреть сообщение
    БК0010 будет записывать в специальный порт команду
    БК0010 то ничего записывать не будет, это софт делает. Вопрос в том, что это будет? Это типа ROM диска с загрузчиком с него как ты к Апогею делал или как стандартный софт будет с этим работать?
    Рыцарь ордена Хламовников

    Мои магазины на Мешке: Retro store и Компьютерные комплектующие

  8. #5
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Благодарностей: 1250
    Записей в дневнике
    21
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    БК0010 то ничего записывать не будет, это софт делает. Вопрос в том, что это будет? Это типа ROM диска с загрузчиком с него как ты к Апогею делал или как стандартный софт будет с этим работать?
    Все стандартные программы должны с ним работать, как с обычным дисководом.

    Насколько я понял, почти все программы для БК обращаются к диску
    через драйвер находящийся в ПЗУ контроллера дисковода.

    По адресам находятся подпрограммы:
    @#160000 - Загрузка и запуск boot-секторов с главного флопа.
    @#160002 - Загрузка и запуск boot-секторов с любого флопа.
    @#160004, 6 - Чтение/запись секторов
    @#160010 - Иницилиазция
    @#160012 - Форматирование дорожки

    Я напишу свои варианты этих функций, простейшие функции в несколько команд,
    которые будут просто копировать данные между БК0010 и микроконтроллером.

    ---------- Post added at 11:55 ---------- Previous post was at 11:49 ----------

    @#160004 — подпрограмма чтения/записи секторов (ЕМТ54). Подпрограмме передаются параметры:

    R0 — номер первого сектора из группы читаемых или записываемых.
    R1 — длина массива информации (файла). Задается в двухбайтных машинных словах. Если длина больше нуля, это означает чтение, если меньше нуля (NEG R1), — запись.
    R2 — начальный адрес массива информации в ОЗУ.
    R3 — адрес размещения в ОЗУ рабочей области контроллера. (создается @#160010)

    Подпрограмма читает или записывает указанное количество двухбайтных слов, начиная с заданных адреса в ОЗУ и сектора на диске. Количество читаемых или записываемых секторов зависит от длины файла (каждый сектор занимает 0.5 Кб или в БКшечном восьмеричном представлении 1000). По результатам чтения устанавливается состояние бита С слова состояния процессора. Если чтение произведено без ошибок, С=0. Если возникла ошибка чтения/записи, С=1 и в ячейке ОЗУ по адресу @#52 находится байт — номер ошибки.
    Выглядит всё подозрительно просто.

    ---------- Post added at 12:24 ---------- Previous post was at 11:59 ----------

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Один разъём 100-150 руб.
    В крайнем случае можно попробовать пару IDE/FDD/LPT/SCSI-шлейфов засунуть в разъем. (После доработки ножовкой.) Лично я нашел разъем бесплатно (в комплекте с Орион-128).

  9. #6
    Veteran Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    1,576
    Благодарностей: 486
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попробовать стоит.
    Больше игр нет

  10. #7
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Благодарностей: 1250
    Записей в дневнике
    21
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Жду, пока придут по почте детали.

  11. #8
    Member
    Регистрация
    07.03.2011
    Адрес
    Павловский-Посад
    Сообщений
    64
    Благодарностей: 52
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если Мегу8 использовать в кач. ПЗУ объём получиться 8к-дрова, так?
    ног хватает (20шт. надо в кач. ПЗУ), скорости хватит (мин. цикл ВМ1>1.5мкс), только памяти побольше и будет заменитель РЕ2. + ЕЕПРОМ есть.

  12. #9
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Благодарностей: 1250
    Записей в дневнике
    21
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Под дрова хватит и 512 Байт. Помимо ПЗУ в ATMega надо будет еще зашить программу чтения/изменения FAT32, так что под ПЗУ места не много остается. А образы дискет будут хранится на SD-карте. Больше 1000 дискет на 1 Гб флешку.

    Кстати в МК можно еще всякой периферии для БК засунуть не усложняя схему. Часы, порт PS/2 мыши, RS232, ЦАП, АЦП и т.п.

  13. Этот пользователь поблагодарил vinxru за это полезное сообщение:
    Mad Killer/PG (11.03.2012)

  14. #10
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,938
    Благодарностей: 3437
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Кстати в МК можно еще всякой периферии для БК засунуть не усложняя схему. Часы, порт PS/2 мыши, RS232, ЦАП, АЦП и т.п.
    А нельзя ли сделать все же девайс совместимым с обычным флопповодом, а не 'свой собственный'?

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 280
    Последнее: 05.11.2017, 13:34
  2. Контроллер дисковода
    от andrew76 в разделе Внешние накопители
    Ответов: 54
    Последнее: 08.02.2017, 10:37
  3. Специалист_МХ: контроллер дисковода
    от fifan в разделе Специалист
    Ответов: 101
    Последнее: 21.04.2015, 12:44
  4. Куплю контроллер дисковода
    от djvini в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 20.04.2011, 23:19
  5. Ответов: 3
    Последнее: 11.03.2008, 22:00

Ваши права

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