Я использую SiI0680A для обмена данными между ПЛИС и ЖД. Конфигурирование "силикона" проходит нормально. При обращении к регистрам винта (кроме 'DR') через 'TFR'-ы "силикона" успешно завершается каждая 3-я транзакция: 1-я завершается 'Retry'-ем, "силикон" при этом выдаёт на ATA-шлейф короткие адресные сигналы (60нс) и нормальные DIOR#/DIOW#%; 2-я завершается 'Retry'-ем, "силикон" при этом корректно обменивается с винтом; 3-я завершается успешно, на ATA-шлейфе при этом ничего не происходит. Таким образом удаётся выбрать устройство, записать команду 'IDENTIFY DEVICE' (при этом загорается светодиод активности устройства), прочитать состояние, увидеть, что BSY=0, DRDY=1, DRQ=1. Далее следует обращение к 'Data Register'-у устройства, и вот тут при первой же транзакции, завершаемой 'Retry'-ем, "силикон" выдаёт на ATA-шлейф адресные сигналы, переводит DIOR# в 0 и больше не меняет их значение. Все остальные сигналы на ATA-шлейфе имеют нормальное значение. Повторные транзакции завершаются 'Retry'-ем. В таком состоянии "силикон" может находиться неограниченное время, пока на него не будет подан сброс.

У кого-нибудь есть опыт работы с SiI0680A или соображения по поводу вышеописанного? Заранее спасибо.