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

User Tag List

Страница 2 из 53 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 526

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

  1. #11
    Master Аватар для s_kosorev
    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    Petit FatFs не требует много памяти при чтении, при смене дорожки вполне можно успеть считать данные по SPI в буфер сектора, особенно, если карта быстрая.
    он в минимальном режиме 44байт оперативки, постоянно читает FAT, т.е. очень медленно, по идее нужно сразу вычитать все номера кластеров в память, что бы быстро сектор нужный находить

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

    либо при шаге с трека не трек, можно только кластера текущего цилиндра получить, операция шага по трекам достаточно медленная, если другие варианты не приемлемы, вкладывать логику именно в эти промежутки

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

    По умолчанию

    Цитата Сообщение от Trol73 Посмотреть сообщение
    Т.е., первичная цель чисто спортивная - показать, что на atmega8 можно сделать эмулятор флопа который работает? Функциональность не принципиальна?
    Первичная цель - разобраться как работает флопик, ну и сделать решение попроще/подешевле, без доп обвязки логикой.


    Цитата Сообщение от Trol73 Посмотреть сообщение
    У atmega8 20 пинов (если предполагается использовать ISP-программатор). Если 11 пинов уйдет на интерфейс FDD + еще 7 на дисплей 1602, без подствеки + 1 на клавиатуру. Тогда останется 1 свободный вывод. Для светодиода, например. А для SD-карты надо ещё минимум 3 (но скорее все же 4) пина (а ещё лучше все 5).

    По RAM- и flash-памяти все тоже получается на пределе. Т.е., если что-то из atmega8 получится, то это обещает быть шедевром с точки зрения разработки и программирования, но не с точки зрения юзабельности.
    Для дисковода в режиме чтения требуется всего 8 пинов (DS, INDEX, MOTORON, STEP, DIR, RDT, SIDE, TRK0) при поддержке записи 10 пинов (+WDT и WGT), DS и MOTOR можно вынести на логику конечно или на диоды, но это в крайнем случае. DS0-DS3 переключаются джампером и преобразуются во вход DS.

    У атмеги8 18 пинов, если использовать кристалл, 8 пинов уйдет на чтение, 3 пина уйдет на карточку, считаю нецелесообразным использовать пин под CS карты. 6 пинов на экран, подсветка и RW пойдут на +5в. Остается 1-2 пина под кнопки Тут еще нужно будет подумать...
    Последний раз редактировалось EvgenRU; 21.03.2016 в 10:29.

  3. #13
    Master Аватар для s_kosorev
    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    цилиндр вроде 512байт
    цилинд это сумма всех секторов в случае TRD, то есть что то около 5кб * 2 стороны

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

    по дисплеям, в крайнем случае можно с SPI интерфейсом, это всего 2 доп CS что бы разделить карту и дисплей 5 пинов на карту + дисплей

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

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    цилинд это сумма всех секторов в случае TRD, то есть что то около 5кб * 2 стороны

    по дисплеям, в крайнем случае можно с SPI интерфейсом, это всего 2 доп CS что бы разделить карту и дисплей 5 пинов на карту + дисплей
    Насчет цилиндра вчера еще разобрался, это 8к в случае TRD, чтоб его хранить нужно 128 атмегу еще и со SRAM....

    Насчет SPI... в принципе, можно, т.к. индикация будет только при смене дорожки или в период неактивности, а можно и через сдвиговый регистр, тоже достаточно бюджетная вещь.
    Последний раз редактировалось EvgenRU; 21.03.2016 в 10:39.

  5. #15
    Master Аватар для s_kosorev
    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    то 8к в случае TRD, чтоб его хранить нужно 128 атмегу еще и со SRAM....
    в теории, диск крутится, данные одновременно не фигурируют, можно как выше писали, по мере кручения диска подтягивать данные, 2 буфера по 512к, только тут главное что бы не наткнутся на подтормаживания SD

    как по мне вместо mega128 уже есть смысл брать xmega, таже мега но чуть шустрее ядро, и всякого рода event и dma, что в теории может разгрузить ядро, но есть одно но! она на 1такт дольше на прерывания реагирует, могут быть вопросы со стороны шины компьютера

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

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    как по мне вместо mega128 уже есть смысл брать xmega, таже мега но чуть шустрее ядро, и всякого рода event и dma, что в теории может разгрузить ядро, но есть одно но! она на 1такт дольше на прерывания реагирует, могут быть вопросы со стороны шины компьютера
    Отличия в цене ОЧЕНЬ существенные, если Atmega128 можно взять в китаях за 60р, то xmega самая дешевая обойдется в 300р

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

  8. #17
    Activist Аватар для Trol73
    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    346
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    Первичная цель - разобраться как работает флопик, ну и сделать решение попроще/подешевле, без доп обвязки логикой.
    Вот Если попроще/подешевле, то есть смысл посмотреть и сравнить на алиэкспрессе цены на mega8, mega32 и mega128. Разница стоимости МК в 10 рублей ведёт к многократному упрощению задачи )

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

    По умолчанию

    Наверное так и поступлю, есть атмеги128 и срам 512кб, всё по 60р

    Окончательно разобрался со схемой кодирования в MFM (см первое сообщение), в связи с этим есть вопрос, как лучше это сделать.
    Первое что приходит на ум, сделать в прошивке таблицу перекодировки байт в 16 битное значение и по ней кодировать, вроде как получается на порядок быстрее, чем генерировать клок и 2 байта налету.

    Т.е. последовательность действий такова

    1. Есть таблица перекодировки байт
    2. Есть таблица CRC16 для адресного поля всех секторов
    3. Открываем TRD, генерируем CRC16 для каждых 256 байт и помещаем в таблицу в SRAM
    4. Шлем данные нулевой дорожки в READ DATA пока не пришел STEP или смена стороны
    5. Читаем новую дорожку или переключаемся на другую сторону
    6. Шлем данные новой дорожки, повторяем пункт 5 пока дисковод активен

    Так же неплохо бы предусмотреть возможность работы с количеством секторов до 166 включительно, чтобы можно было защищенные дискеты открывать.
    Последний раз редактировалось EvgenRU; 21.03.2016 в 11:16.

  10. #19
    Activist Аватар для Trol73
    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    346
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Имхо, MFM лучше сразу сделать по таблице. А CRC16 можно попробовать для начала на лету считать. Потом, если где-то не хватит производительности, либо разбираться, либо ставить SRAM. По идее, тут одной меги128 должно хватить без внешней памяти (сужу по опыту разработки эмулятора магнитофона на ней).

  11. #20
    Master Аватар для s_kosorev
    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    там несколько табличек будет в MFM на дискетах есть пропуски синхроимпульса, для разных меток

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

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

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

Эту тему просматривают: 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

Ваши права

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