не так давно боролся с аналогичной задачей. Микросхема только AD9985, что сути не меняет.
По поводу открытого коллектора. Внешний порт объявляем двунаправленным и заводим его линией в процессор. В дизайне процессора уже реализована эмуляция открытого коллектора. (в спартане нет аппаратного драйвера с открытым коллектором).
Софт пишется в SDK? Я столкнулся с тем, что драйвер I2C шины почему-то у меня не работал на прием. Передача шла, прием ни в какую (с теми же симптомами подвисания линии).. В итоге переписал функцию приема данных на свой лад, после чего все заработало. Какие-то косяки у них с ожиданием прерывания от I2C модуля при приеме данных с шины.. Могу скинуть кусок кода приема байта, но он немного ущербный, т.к. во-первых, в С я чайник, во-вторых, мне не нужно было полноценный прием реализовывать.
|