Цитата Сообщение от Patron Посмотреть сообщение
Последовательность при этом следующая:
1. Прочитать регистр данных
Контроллер переходит в режим чтения, возможно и поиск маркера, в зависимости от состояния триггера PLL_RDY.
Цитата Сообщение от Patron Посмотреть сообщение
2. Установить и сбросить GOR
Если с дисковода поступают данные, то сбросится триггер PLL_RDY и контроллер перейдет в режим поиска маркера.
Если данных с дисковода не поступает, то установка и сброс GOR ничего не меняют.
Цитата Сообщение от Patron Посмотреть сообщение
3. Ждать требование
Контроллер нашел маркер и перешел в режим чтения. В регистре считанных данных находится 0xA1A1. Начинается подсчет CRC. Триггер A1 сброшен.
Цитата Сообщение от Patron Посмотреть сообщение
4. Записать 0xA1A1
А вот это тонкий момент. То что контроллер перейдет в режим записи это точно. Но зависит все от того, что было в счетчике битов. Так что записывать начнет наверное остаток сдвигового регистра, а потом скорее всего только один байт 0XA1. Но так как триггер A1 был сброшен, то CRC не начнет снова считаться, а продолжиться.
Цитата Сообщение от Patron Посмотреть сообщение
5. Ждать флаг CRC
Начнет записываться CRC сосчитанная из того, что прочитали, и того, что записали. Но вот прочитали не только 0xA1A1, но и то, что за ним (несколько бит). Выработается сигнал FIN_STB и взведется триггер A1.
Цитата Сообщение от Patron Посмотреть сообщение
6. Записать 0x4E4E
Запишется в регистр данных записи.
Цитата Сообщение от Patron Посмотреть сообщение
7. Ждать требование
После установки требования уже будет записана CRC и один байт 0x4E, начинает писаться следующий 0x4E.
Цитата Сообщение от Patron Посмотреть сообщение
8. Прочитать регистр данных
Прерывается запись 0x4E, контроллер спустя некоторое время переходит в режим чтения без поиска маркера, именно чтения. Невыровненные данные будут поступать в регистр данных с установкой требования. Так как триггер A1 взведен, то если произойдет чудо и попадется маркер не смещенный по фазе, то сброситься регистр CRC и начнется счет снова. Но это при условии, что регистр считываемых данных будут считывать при установке требования.