Уважаемые коллеги!
Столкнулся с такой проблемой.
Конфигурирую SPARTAN-3 в режиме SelectMAP:
1. Сигнал PROG_B в ноль, потом в единицу.
2. При этом линия INIT_B опускается в ноль.
3. Дожидаюсь возвращения INIT_B в "1".
4. Перевожу в "0" RDWR_B
5. Перевожу в "0" CS_B
Линия BUSY опускается в ноль.
6. В качестве сигнала CCLK использую сигнал WR сигнального процессора.
(данные записываются по возрастающему фронту)
Загрузку осуществляю на частоте 1 МГц.
После завершения загрузки линия DONE находится в нуле даже после многократного (100 раз) цикла записи пустых байтов (0xff). Линия INIT_B находится в состоянии лог. "1".
Пробовал после слова синхронизации писать в ПЛИС случайные данные чтобы вызвать ошибку проверки контрольной суммы (CRC). Однако линия INIT_B в "0" так и не опускается.
Заметил, что сигнал BUSY ведет себя несколько странно. В документации к микросхеме сказано, что вообще можно за ним не следить, если частоты сигнала CCLK менее 50 МГЦ (у меня 1 МГц). Однако, я заметил, что на линии BUSY выставляется "1" примерно после записи 1-го фрейма.
Если же синхронизирующее слово не передавать, то линия BUSY продолжает находится в нуле в течение всего цикла записи.
В документации сказано, что существует случай выхода ПЛИС из синхронизации в режиме загрузки. При этом линия BUSY переходит в состояние лог. "1". Но причин такой рассинхронизации не указано, кроме искажения сигнала CCLK, но их я увидеть так и не смог в моей схеме....
Согласование по питанию с 3.3В выполнил как указано в документации.
Есть ли у кого соображения, что не так я делаю?
Спасибо!