User Tag List

Показано с 1 по 10 из 538

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

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

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

    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    595
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    22 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Petit FatFs не требует много памяти при чтении, при смене дорожки вполне можно успеть считать данные по SPI в буфер сектора, особенно, если карта быстрая. У меня есть модуль на C с вырезанной кучей всего ненужного из Petit, так что он работает очень быстро, но нужна карта класса 10 (таких сейчас полно).

    Пока что есть 2 непонятных момента по этой диаграмме.
    Нажмите на изображение для увеличения. 

Название:	diagram2.jpg 
Просмотров:	1290 
Размер:	46.5 Кб 
ID:	56528

    1. Почему SIDE начинает колбасить ?
    2. Все-таки в каком формате идет поток бит с READ DATA ?

    На второй пункт нашел ответ здесь
    http://firmware.altervista.org/Data%...20Decoding.htm
    Каждый бит данных кодируется как 2 бита RN, NN, NR. И еще про MFM тут http://www.spas-info.ru/stati/14-cha...nykh-nositelej

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

    Цитата Сообщение от IanPo Посмотреть сообщение
    MFM-цилиндр<=12800 байт *2 = 25600
    Для поддержки файловой системы карточки также требуется память
    HFE-формат отличается от MFM, в основном тем, что там биты реверсированы уже и цилиндры поделены на 512-байтовые блоки, что удобно для МК с малым размером ОЗУ
    Уже ответил про карточку.
    Насчет размера цилиндра, где-то читал инфу, что сырой MFM трэк имеет длину 6300 байт, т.е. цилиндр 12600 получается
    Но я не буду писать цилиндр. У меня данные будут из TRD, это сильно упрощает задачу. Остальные данные будут браться из области кода прошивки в том числе CRC адресного поля. CRC данных буду генерироваться налету в процессе сдвига бит данных.

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

    Получается, дискета крутится со скоростью 300 оборотов в минуту, т.е. 5 оборотов в секунду, кластер в идеальных условиях должен считываться примерно за пол секунды - секунду, чего вполне достаточно. А если еще учесть, что при отсутствии сектора на обороте делается еще несколько попыток его чтения, то можно на одном обороте подсовывать не все сектора, будет работать медленнее чем настоящий флоп, но зато будет! Хотя конечно проще мегу пожирнее поставить...
    Последний раз редактировалось EvgenRU; 21.03.2016 в 14:24.

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

  3. #2

    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    352
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    По RAM- и flash-памяти все тоже получается на пределе. Т.е., если что-то из atmega8 получится, то это обещает быть шедевром с точки зрения разработки и программирования, но не с точки зрения юзабельности.

  4. #3

    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    595
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    22 сообщений
    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.

  5. #4

    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    352
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #5

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

    По умолчанию

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

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

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

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

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

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

Ваши права

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