nazim 0 20 марта, 2019 Опубликовано 20 марта, 2019 (изменено) · Жалоба Здравствуйте, Уважаемые Профессионалы! Я столкнулся с трудностью при конфигурировании Spartan-6 в режиме Slave-Serial. Данные высылаются в формате big endian и защёлкиваются фронтом сигнала CCLK, но конфигурация не заканчивается и пин DONE не устанавливается в еденицу. Раньше, с идентичным конфигурационным bin файлом, на плате с загрузкой Slave Select-Map чип конфигурировался влёт. Алгоритм следущий (в соответствии с ug380): 1. Сброс PROG_B (больше 300 нс) -> INIT_B сбрасывается в ответ 2. Ожидание высокого уровня на INIT_B 3. DIN побитно (big endian) устанавливается в нужный бит, CCLK защёлкивает данные по фронту 4. В конце кофигурационного файла посылаем нули Осциллограмма конфигурации и схема прицеплены к тексту. Частота CCLCK специально занижена до 150 кГц. Конфигурационный файл сверялся с файлом отгруженным с анализатора, ошибок в байтах нет, INIT_B остаётся на высоком уровне на протяжении всего процесса конфигурации и вроде бы ничто не удерживает пин DONE в состоянии нуля. Проверил распайку и на всякий случай смонтировал вторую такую же плату, но результат тот же. У кого-нибудь возникали подобные сложности со Slave-Serial? Благодарю за советы!config.bmp Spoiler lboard2-2.8.pdf Изменено 20 марта, 2019 пользователем nazim Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zig 34 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 1. PullUp на DONE есть? 2. Какое тактирование было выбрано при генерации bin файла? CCLK, JTAG или User Clock 3. Что указано в Startup Option (Не установлен ли Wait for DLL Lock) 4. Попробуйте после файла конфигурации передать несколько дополнительных байт. Иногда DONE не взводится и ПЛИС ждет еще несколько тактов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 5. Проверьте правильность установки сигналов выбора режима загрузки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nazim 0 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 2 hours ago, Zig said: 1. PullUp на DONE есть? На DONE стоит pullup в 330ом к положительной шине питания 3.3в, как было указанов в UG380 2 hours ago, Zig said: 2. Какое тактирование было выбрано при генерации bin файла? CCLK, JTAG или User Clock При генерации бин файла было выбрано тактирование CCLK 2 hours ago, Zig said: 3. Что указано в Startup Option (Не установлен ли Wait for DLL Lock) Wait for DCM and PLL Lock (Output Events) указано: Default (NoWait) 2 hours ago, Zig said: 4. Попробуйте после файла конфигурации передать несколько дополнительных байт. Иногда DONE не взводится и ПЛИС ждет еще несколько тактов. Пробовал от восьми тактов, до нескольких тысяч, при низком уровне на DIN (пробовал также и с высоким) но к сожалению, конфигурация не заканчивается Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nazim 0 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 2 hours ago, aaarrr said: 5. Проверьте правильность установки сигналов выбора режима загрузки. М0 и М1 подключены напрямую к VCCО_2 3.3в, как указано на картинке в UG380, что активизирует режим Slave - Serial CSI_B, RDWR_B, HSWAPEN и SUSPEND подключёны к земле Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zig 34 21 марта, 2019 Опубликовано 21 марта, 2019 · Жалоба Посмотрел анализатором у себя. Кристалл Spartan-6 XC6SLX150. Загружаю bit файл, не преобразуя в bin. Первые байты 00 09 0F F0 0F F0 0F F0 0F F0 00 00 01 61. Старший бит вперед. Бит данных изменяется по спаду, стабилен во время фронта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nazim 0 21 марта, 2019 Опубликовано 21 марта, 2019 · Жалоба 4 minutes ago, Zig said: Посмотрел анализатором у себя. Кристалл Spartan-6 XC6SLX150. Загружаю bit файл, не преобразуя в bin. Первые байты 00 09 0F F0 0F F0 0F F0 0F F0 00 00 01 61. Старший бит вперед. Бит данных изменяется по спаду, стабилен во время фронта. Большое спасибо за участие, Zig. Попробую сегодня. Вы уж простите за наглость, но могли бы Вы померить ещё и амплитудное значение CCLK поближе к ножке или хотя бы на резисторном делителе? Может у меня с CCLK неприятность? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zig 34 21 марта, 2019 Опубликовано 21 марта, 2019 · Жалоба На тактах, ближе к ПЛИС PullUp и PullDown по 100 Ом. Низкий - 0,66В, высокий 2,54В. Питание IO 3,3В. Частота 12 МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nazim 0 22 марта, 2019 Опубликовано 22 марта, 2019 · Жалоба пе 10 hours ago, Zig said: На тактах, ближе к ПЛИС PullUp и PullDown по 100 Ом. Низкий - 0,66В, высокий 2,54В. Питание IO 3,3В. Частота 12 МГц. Огроменное СПАСИБО, Zig! Сложность была с пином CSI_B, сидевшим на земле и просевшим сигналом CCLK. После перерезания дорожки соединявшей CSI_B с землёй и подтяжки к плюсу вывода микроконтроллера с которого шла генерация CCLK, верхняя амплитуда поднялась до трёх вольт и всё заработало ) DONE переходит в высокий уровень по окончанию конфигурации. На второй плате, где CSI_B всё ещё соединён с землёй, конфигурация не заканчивается. Чип XC6SLX9-3TQG144 (speed grade -3), конфигурировал bin файлом, полученым из ISE опцией -g Binary. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 22 марта, 2019 Опубликовано 22 марта, 2019 · Жалоба А куда CSI_B подключили? Сложность у вас была, видимо, в звенящем CCLK из-за отражений в линии, который увидели бы осциллографом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nazim 0 22 марта, 2019 Опубликовано 22 марта, 2019 · Жалоба 7 hours ago, ViKo said: А куда CSI_B подключили? Сложность у вас была, видимо, в звенящем CCLK из-за отражений в линии, который увидели бы осциллографом. CSI_B просто висит в воздухе, но на нём сейчас +3.3, потому как он подтягивается изнутри к положительной шине, когда HSWAP_EN притянут к земле. Я смотрел осциллографом у которого заявлены 100МГц (меандр с частотой до 3МГц он должен показывать вполне достоверно), звона не было, но CCLK был просевший до 1.25В. После установки PullUp на пин контроллера с которого идёт сигнал CCLK, уровень поднялся до 3.3 (видно из за того что у меня разводка очень плохая или где-то с монтажом что-то не так, надо над этим поработать). После установки PullUp появился overshoot на переднем фронте и небольшой звон, но теперь конфигурация проходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться