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

User Tag List

Страница 37 из 53 ПерваяПервая ... 333435363738394041 ... ПоследняяПоследняя
Показано с 361 по 370 из 529

Тема: Планирую сделать FDD эмулятор на Atmega8

  1. #361
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU
    Насчет эмуляции ВГ93 на МК, думаю это технически возможно, на... Atmega1284P
    Цитата Сообщение от s_kosorev
    Контролер подключен к процессору и должен реагировать на скорости процессора
    Нет. Всё наоборот. Это процессор должен поспевать за контроллером. Контроллер может работать с какой угодно низкой скоростью и никого это не волнует. В петле чтения/записи байта просто нет времени на проверку "тайм-аутов", поэтому она и не делается. Процессор работает по готовности. Процессор считывает готовность, - аппаратную (с 38-й или 39-той ног ВГ93), или же программную (из регистра статуса). Он в цикле ждёт готовности от контроллера и (т.к проверки на "тайм-аут" нет) готов ждать этого часами. Как только выставлен флаг готовности, то процессор читает из регистра данных считанный байт или записывает туда байт подлежащий записи в сектор. Пауза между готовностями может быть любой, процессору это без разницы, лишь бы он в паузе между выдачей/запросом двух байтов успевал скинуть считанный байт по LD (HL),A и сделать INC HL. Минимальная частота на которой CPU успевает это делать - 2.5 МГЦ. Поэтому если выдавать считанные байты медленнее, то процессор будет только рад. В смысле, что никаких проблем это не вызывает. Надеюсь, все это знают и приводить фрагменты листингов не требуется.

    Это в случае программного обмена. Так работают все известные отечественные контроллеры на ВГ93, за двумя исключениями. Это промышленный контроллер от одного клона РК86, в котором обмен с ВГ93 не программный (т.к скоростей РК86 на это не хватает), а аппаратный с использованием ПДП. А также контроллер НГМД от ИРИШИ, которая тоже слишком медленна, чтобы обойтись без ПДП. Но и использование ПДП не создаёт особых проблем.

    Микроконтроллер эмулирующий КНГМД должен просто ждать когда в регистр команд ВГ93 запишут команду (например чтения/записи сектора, формат трека, шаг головки и т.п) а затем её выполнить (т.е эмулировать). А с какой скоростью он это делает никого не волнует. В отличие от эмулятора дисковода, где такт импульсов очень высокий и не может быть понижен. Но даже это излишняя работа, т.к эмуляция работы контроллера IDE ещё на порядок проще.

    Поэтому для эмулятора контроллеров НГМД и IDE вовсе не нужен скоростной Atmega1284P, а наоборот, достаточно процессора 4004 с тактом 750 кГЦ выпуска 1971 года.
    Последний раз редактировалось barsik; 04.06.2017 в 03:00.

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

  3. #362
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Поэтому для эмулятора контроллеров НГМД и IDE вовсе не нужен скоростной Atmega1284P, а наоборот, достаточно процессора 4004 с тактом 750 кГЦ выпуска 1971 года.
    Вот здесь я немножко поспорю, ведь контроллер должен отдавать данные дисководу и принимать их в MFM/FM на скорости 1МГц, при этом, данные нужно еще кодировать/раскодировать, у обычных атмег типа 328p может не хватить ног для подключения одного регистра на шину данных или памяти под буфер чтения/записи (уж очень у них глупо ноги расположили), а у Atmega128 и подобных нет MASTER SPI для комфортной передачи данных в FM/MFM.

  4. #363
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU
    контроллер должен отдавать данные дисководу и принимать их в MFM/FM на скорости 1МГц, при этом, данные нужно еще кодировать/раскодировать
    Эмуляторы контроллера дисковода или винчестера IDE работают не с дисководом, а с любым другим достаточно быстрым носителем, будь это просто ОЗУ из SIMM на 1...64 мб (тогда для регенерации удобен Z80 с его /RFSH + счётчик для формирования доп.адресов регенерации), 'micro-SD' от телефона на 1/2/4 Гб или даже обычный кассетный магнитофон МАЯК-231 с электронным управлением (позволяющий быстрый автоматический поиск нужной записи). И процессор эмулятора контроллера должен соответствовать требованиям к быстродействию только этих устройств.
    Последний раз редактировалось barsik; 04.06.2017 в 11:59.

  5. #364
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Эмуляторы контроллера дисковода или винчестера IDE работают не с дисководом, а с любым другим достаточно быстрым носителем, будь это просто ОЗУ из SIMM на 1...64 мб (тогда для регенерации удобен Z80 с его /RFSH + счётчик для формирования доп.адресов регенерации), 'micro-SD' от телефона на 1/2/4 Гб или даже обычный кассетный магнитофон МАЯК-204 с электронным управлением (позволяющий быстрый автоматический поиск нужной записи). И процессор эмулятора контроллера должен соответствовать требованиям к быстродействию только этих устройств.
    Если речь не идет о работе с реальным дисководом, то вынужден вас огорчить, это всё уже реализовано в проекте Speccy 2007 + TRDOS на Atmega32 и даже имеются исходники.

  6. #365
    Activist Аватар для cy6
    Регистрация
    27.04.2015
    Адрес
    г. Пенза
    Сообщений
    368
    Спасибо Благодарностей отдано 
    251
    Спасибо Благодарностей получено 
    56
    Поблагодарили
    32 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    EvgenRU, barsik, эмулятор контроллера флопа работал бы медленнее, чем эмулятор самого флопа. Если флоп работает с каждым битом, то контроллер (со стороны ДОС) работает уже с целыми байтами. И кодировать эти байты ни во что не надо, и отдавать ДОСу надо намного медленнее (реже), чем биты - контроллеру.
    Понятно, что это уже совсем другое устройство (проект) и другие тайминги. Из плюсов - любой человек, не имеющий не только флопа, но и контроллера, сможет пользоваться ДОС. То есть ДОС становится равной магнитофону, который всегда доступен любой ретро-ПЭВМ. Учитывая тот факт, что ДОС иногда запихивают на плату с контроллером, устройство могло бы размещать эти ПЗУ на себе (эмуляция ПЗУ будет не по силам слабым мега-м).
    Эмуляция контроллера флопа особенно актуальна на той же Суре, у которой комплект для работы с FDD стоил диких денег, и доступен был лишь очень немногим.
    Хотя, это уже совсем другой проект, и как говорится не в то время, и не в том месте.

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    Можно, проблем никаких, только если размер сектора 256 байт, или хотя бы кратен
    Упс, я с лету забыла про проблему памяти на меге328. Сама сталкивалась с 2048 байтами и ее постоянно нехваткой, это жесть.
    Размер сектора кратный, но он 512 байт (не считая служебных данных в начале и конце сектора + 42 байта).
    В моем формате образа диска РК (RDI), начало каждого трека и сектора вычисляемое (фиксированное). Внутри трека добавлены межсекторные промежутки в 71 байт, чтобы соответствовать стандарту скорости вращения (300 об/мин = 3125 байт на сектор). Сам сектор пишется со всеми служебными данными "один в один".
    Этот формат полностью поддерживается программным эмулятором Emu80.

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    INDEX - LOW - 3.52ms, между индексами HIGH примерно 196ms, погрешность 0.1%
    Да, 200 мс. Между битами 8 мкс, между байтами 64 мкс. (200 мс / 0,064 мс = 3125 байт).
    Частота вывода бит на линию получается 125кгц.
    Последний раз редактировалось cy6; 04.06.2017 в 11:45.
    wtf

  7. #366
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Идея эмуляции КНГМД и дисковода более простым и дешёвым контроллером использующим в качестве носителя магнитофон с электронным управлением опоздала на ~30 лет. Да и в дешёвых отечественных магнитофонах (за 150 рублей) управление режимами было механическим. Электронное управление, т.е кнопками с электрическими контактами было только на дорогих моделях конца 80-тых: Вега-МП-120, ОРЕЛЬ-101, МАЯК-231...233, НОТА-225, ЯУЗА-220, Вильма-312. И стоили они дорого, 250...550 рублей. Например: ОРЕЛЬ-101 - 440 рублей, ЯУЗА-220 - 405 рублей.

    Новый дисковод 5050 с резиновым пассиком (35 треков, 1 сторона, 140 кб) обошёлся мне летом 1989 всего в 180 рублей. Дисковод 5305 летом 1990 обошёлся в 500 рублей. А летом 1991 цена дисководов 5311 упала уже всего до 400 рублей. А дальше цены на НГМД падали ещё быстрее. Так что эмуляция дисковода на магнитофоне в 1990-93 не дала бы существенной экономии. К тому же с магнитофоном только авто-поиск файла занимает 20-30 секунд, плюс еще время загрузки файла со скоростью килобайт за 4 секунды.

    Но при использовании 'micro-SD' или даже просто большой статической памяти подобное устройство эмуляции винчестера даже сейчас имеет смысл.

    Цитата Сообщение от EvgenRU
    всё уже реализовано в проекте Speccy 2007 на Atmega32 и даже имеются исходники
    Не думаю, что там эмулирован РК-КНГМД с FM и секторами в 512 байт, в котором нет ВГ93, а схема реализована на TTL-микросхемах. Чужие исходники для Atmeg мне не интересны, т.к в них ничего не понимаю. Но сделать такой контроллер на простейшем ядре на Z80 несложно.
    Последний раз редактировалось barsik; 04.08.2017 в 17:37.

  8. #367
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    394
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от cy6 Посмотреть сообщение
    Упс, я с лету забыла про проблему памяти на меге328. Сама сталкивалась с 2048 байтами и ее постоянно нехваткой, это жесть.
    К атмеге несложно прикручивается внешняя DRAM с программным CAS-before-RAS рефрешем. В частности, так было сделано в моем эмуляторе дисковода Megadrive256 (mega2560 + SIMM на 4 или 8 мегабайт). Но вот формировать битовый поток для флопа хотя бы на чтение на меге можно, но сложно. У меня были очень тесные, до такта выверенные циклы на ассемблере, перемешанные с регенерацией DRAM и обработкой прочей периферии. А ведь рано или поздно захочется и запись. Резюме: оставить AVR для несложных поделок, а сколь-нибудь быстрые вещи делать на STM32.

  9. #368
    Activist Аватар для cy6
    Регистрация
    27.04.2015
    Адрес
    г. Пенза
    Сообщений
    368
    Спасибо Благодарностей отдано 
    251
    Спасибо Благодарностей получено 
    56
    Поблагодарили
    32 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    К атмеге несложно прикручивается внешняя DRAM с программным CAS-before-RAS рефрешем. В частности, так было сделано в моем эмуляторе дисковода Megadrive256 (mega2560 + SIMM на 4 или 8 мегабайт).
    Да я видела, но это ведь закрытый проект. И память в нем раритетная (SIMM).

    А тут автор сделал все замечательно, на копеешных ардуино модулях (которые более чем доступны в продаже) и с открытыми исходниками, за что ему огромный респект.
    Доступность рулит, имхо.
    wtf

  10. #369
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    394
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от cy6 Посмотреть сообщение
    А тут автор сделал все замечательно, на копеешных ардуино модулях (которые более чем доступны в продаже) и с открытыми исходниками, за что ему огромный респект.
    Доступность рулит, имхо.
    Полностью согласен!

  11. #370
    Member
    Регистрация
    18.07.2008
    Адрес
    Н.Тагил
    Сообщений
    60
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно ли установить atmega328 вместо arduino uno, если да, то какой прошивкой шить?

Страница 37 из 53 ПерваяПервая ... 333435363738394041 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 24
    Последнее: 08.12.2012, 19:00
  2. Тестер транзисторов на ATmega8
    от ILoveSpeccy в разделе Творчество
    Ответов: 10
    Последнее: 19.05.2011, 15:03
  3. Ответов: 0
    Последнее: 31.01.2007, 18:18

Ваши права

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