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

User Tag List

Страница 56 из 65 ПерваяПервая ... 525354555657585960 ... ПоследняяПоследняя
Показано с 551 по 560 из 644

Тема: Замена дисковода эмулятором диска

  1. #551

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Выкладываю свой проект в открытый доступ.
    На данный момент работает форматирование(кроме солоновской проги, в которой виснет и Жан-Франсуазовый эмуль), запись, чтение, выбор файла и индикация (частично). После встраивания индикации в прогу (цилиндр, сторона, состояние, мотор) запись стала глючить почему-то. Поэтому я отключил пока, после выбора файла видно только имя загруженнного файла.

    В общем, смотрите, решайте, стоит ли дальше делать плату прототипа (я думаю, стоит), задавайте впоросы. Я попытаюсь описать вкратце принцип работы.
    Вложения Вложения
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

  2. #552

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ЗЫ. В СОЛОНовской программе ЧТЕНИЕ ДИСКА работает с возвратом к нулевому треку на каждом цилиндре (с HxC FloppyEmul так не делает). Возможно, причина в слишком долгой загрузке цилиндра. В других программах такого не наблюдал. Выяснилось после включения индикации.

    1. Формат записи-чтения - стандартный MFM (в обе стороны конвертируется утилитой от Эмулятора HxC). Эмулируется 80-дорожечный 2-сторонний дисковод.

    2. Читается цилиндр (2 трека = 26КБ), пишется потреково (13 КБ).

    3. MFM-последовательность чтения генерируется выводом таймера TIM3 - длительность импульса (уровня 0) постоянная, период программируется на ходу в прерывании, исходя из количества 0 перед 1.

    4. Запись осуществляется аналогично, замером времени между фронтами WDATA. Частота таймера подобрана так, что измеренный период, деленный на 32 (сдвинутый на 5 вправо), разбивается на 4 возможных значения: 0 - самый первый импульс (от активации WGATE до первого импульса WDATA проходит около 2 мкс), далее 1,2,3 - соответствующие 4,6,8 микроксекундным импульсам (01,001,0001). Все остальные значения на практике не наблюдались и считаются ошибочными.

    5. Программа представляет из себя вечный цикл с ветвлением согласно текущему состоянию (смысл названий очевиден: INIT, IDLE, LOADCYL, READTR, WRITETR). Обработчиками прерываний: таймер 3 - чтение, таймер 4 - запись, внешние прерывания от STEP и WGATE. Переход из одного состояние в другое сопровождается перепрограммированием периферии контроллера.

    6. Частота контроллера выбрана 72 МГц, чтобы портировать на серию STM32F103. В качестве прототипа используется STM32F4-discovery с доп. платой интерфейсов STM32F4DIS-BB и самодельной платой с подтягивающими резисторами и доп. блоком интерфейса на WH1602 и кнопками.
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

  3. #553

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    uint8_t buff[ MAX_TRACK_LEN * 2 ]; главный буфер для заголовка, треков
    uint32_t track_lengs[ HXCMFM_NOT * HXCMFM_SD ]; массив длин дорожек (в mfm у Jeff разные длины могут быть)
    uint32_t track_offsets[ HXCMFM_NOT * HXCMFM_SD ]; массив смещений начал дорожек
    char Image_File_Name[ MAX_PATH_LEN ]; имя загружаемого файла с путем
    char CurrDir[ MAX_PATH_LEN ]; текущая директория (выбор файла)
    unsigned char TmpBuffer[32];
    volatile long int CurrBit; текущий бит
    volatile unsigned char ZeroCounter; счетчик кол-ва 0 перед 1
    volatile uint32_t CylNumber; текущий цилиндр
    uint32_t LoadedCylNumber; текущий загруженный цилиндр
    volatile long int CurrBitW, CurrBitWStart; начало и длина записанной дорожки
    volatile long int SideW; сторона, на которую идет запись
    FE_States CurrState = INIT; текущее состояние
    FE_States LastState = NONE; предыдущее состояние (для вывода изменений состояния)

    long int TrackDataBase; смещение начала области дорожек
    FE_BUTTs ButtonR; нажатые кнопки
    long int AllFiles; всего файлов в директории
    long int FileIndex; текущий файл
    unsigned char fWP; признак WriteProtect
    unsigned char Side, LastSide; текущая сторона (для индикации)

    void TIM3_Config(void); первоначальная настройка таймера 3
    void TIM4_Config(void); первоначальная настройка таймера 4
    void GPIO_Config(void); настройка остальных выводов
    long int Load_HXCMFM_file(void); загрузка заголовка файла и анализ, формирование массивов длин дорожек и т.п.
    long int Load_Cylinder(long int); загрузка цилиндра в buff
    long int Save_Track(long int); запись дорожки из buff в файл
    void EXTILine10_Config(void); настройка выводов STEP и WGATE
    void EXTIButtons_Config(void); настройка выводов кнопок
    FE_BUTTs WhatKey(void); ждет нажатия кнопки, результат - нажатая кнопка
    long int ReadDir(char * DirPath); считывает содержимое директории
    void Error2LCD(unsigned char * ErrorStr); вывод ошибки
    void WriteStats(void); вывод текущего состояния при работе
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

  4. #554

    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,776
    Спасибо Благодарностей отдано 
    553
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    138 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нет желания засетапить проект где-нибудь на github?

  5. #555

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    tnt23, не знаю, раньше я туда проекты не выкладывал. К тому же, железо пока только у меня есть. Готовлю плату прототипа, если к ней будет интерес, подумаю про github.
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

  6. #556

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

    По умолчанию

    Попробуй сделать адаптацию под схему эмулятора Gotec http://cortexamigafloppydrive.wordpress.com/ (здесь есть схема эмулятора) а потом его уже доработать (добавиь индикатор и карт ридер )

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

  8. #557

    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,776
    Спасибо Благодарностей отдано 
    553
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    138 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от IanPo Посмотреть сообщение
    tnt23, не знаю, раньше я туда проекты не выкладывал. К тому же, железо пока только у меня есть. Готовлю плату прототипа, если к ней будет интерес, подумаю про github.
    Просто для коллективной работы над проектом без svn никуда. А железо я готов себе тоже сделать, тема близка

  9. #558

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    tnt23, почитал про github, можно сделать. Я планировал перейти с IAR 32K kickstart на Eclipse + Sourcery CodeBench Lite Edition, там есть плагин github.
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

  10. #559

    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,776
    Спасибо Благодарностей отдано 
    553
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    138 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну гитхаб тут просто к слову пришёлся, я на нём держу проект драйвера для AmigaOS. Можно и code.google.com, и вообще любую систему контроля версий.

  11. #560

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    chief, за схему спасибо, но у меня такой железки нет. А отладить без железа нереально. Своя схема у меня в голове уже есть, осталось ее нарисовать.
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

Страница 56 из 65 ПерваяПервая ... 525354555657585960 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Достал грохот жесткого диска ...есть элегантное решение
    от Orionsoft в разделе Несортированное железо
    Ответов: 1
    Последнее: 27.07.2005, 18:36
  2. куплю плату Бета-диска
    от rw6hrm в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 18.07.2005, 20:07
  3. Определение номера дисковода
    от goodboy в разделе Программирование
    Ответов: 2
    Последнее: 22.06.2005, 01:54

Ваши права

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