nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

USB Blaster ловит наводку!

Наконец-то нашёл "виновника", почему у меня макет иногда в перезагрузку уходит! Недавно я думал на перегрев стабилизатора 7805, и даже поставил его на небольшой теплоотвод. Но дело было не в нём...

Записал небольшое видео по этому поводу.



И "текстовая расшифровка" под катом, кому так удобнее. Оно не вполне совпадает, но смысл примерно тот же.


Со стороны "технологического разъёма" макета и идущих из него проводов, включающих в себя шлейф JTAG в IGBT-раскраске, стоит китайский лабораторный блок питания. Так-то у него корпус железный, но лицевая сторона пластиковая, и кнопка включения питания стоит непосредственно спереди. При включении, а особенно выключении питания в кнопке проскакивает искра. И в этот момент у меня макет уходит в перезагрузку!

Корпус макета алюминиевый и довольно толстый, вряд ли он пропускает внутрь какие-либо помехи. И действительно, если отсоединить разъём, то никакого эффекта кнопка питания больше не имеет.

Получается, наводка приходит на провода, что в общем-то ожидаемо, они же у меня не экранированы! Как бы это лабораторный макет, провода либо силовые (подзарядка), либо ЦИФРОВЫЕ, которые должно быть совсем непросто "вывести из себя"! Всё-таки 1,5 вольта навести случайной искрой - это ещё умудриться надо!

Но даже если возникает сбой одного или нескольких бит - какая вероятность, что это приведёт к перезагрузке! Причём по сути, это перезагрузка / переконфигурация всей ПЛИС, то есть она по-новой выставляет все свои ножки в режим "вход с подтяжкой на +3,3 вольта", снова загружает конфигурацию из ПЗУ - и начинает выполняться. Что бы мы не посылали по RS485, такого эффекта вызвать не получилось бы!

Далее, у меня была мысль, что по питанию какая-то фигня творится: 7805 каким-то макаром "пугается" скачка напряжения и временно обесточивает всё остальное. Но это не подтвердилось: когда я отсоединил внутренний разъём, по которому идёт RS485 и JTAG, проблемы также прекратились.

Значит, по методу исключения, виноват JTAG! Он действительно может управлять поведением ПЛИС, причём у него в некотором роде "приоритет" над всем остальным.

Но всё равно это удивительно: не так-то просто с помощью коротких случайных импульсов на шлейфе вызвать конкретно перезагрузку! Там же нужно подавать тактовую частоту по TCK, и в то же время выдавать правильные значения на TMS, чтобы вывести "конечный автомат JTAG" в правильное состояние, и не забывать втаскивать правильные биты на TDI. Какой шанс, что эта искра всё это сделает???

Поэтому решил проверить одну вещь: отсоединил от шлейфа коробочку USB Blaster Шлейф остался висеть, воткнутый в макет, но теперь, сколько я не долбил кнопку на лабораторном источнике питания, никакого эффекта это не возымело! То же самое получилось, когда я оставил шлейф воткнутым в USB Blaster, но отключил его от компьютера!

Выходит, именно USB Blaster реагирует буквально на любой "мусор", пришедший по шлейфу, и "от греха подальше" запускает перезагрузку!

Так что, если у вас схема на ПЛИС вдруг начинает "перезапускаться" не с того не с сего, при наличии самых пустяшных "источников помех", будь то искрящая кнопка, или включающаяся лампа дневного света, или резко меняющийся ток потребления - дело может быть именно в USB Blaster. Сразу после прошивки можно его отсоединить - и работать без него, до следующей прошивки.


Есть что-то в "намеренном" применении не самых качественных приборов и кабелей. Это позволяет гораздо быстрее наткнуться на всевозможные "пограничные случаи", которые в противном случае возникли бы уже "в полевых условиях", где и стресса больше, и ответственности, и дедлайн отчётливо вырисовывается, и так много поменялось в сравнении с "родной лабораторией", что не понятно, за что хвататься! Так что китайский блок питания (ну, немного доработанный, чтобы не убить всё скопом), преобразователь USB-RS485 за 200 рублей без клеммы экрана (только A и B) и гальванической развязки, неэкранированные шлейфы - это наше всё :) Правда, до нового года я могу опять не успеть приборчик запустить, разве что до старого. Или произойдёт рождественское чудо, и может тогда я уверую!
Tags: ПЛИС, программки, работа, странные девайсы
Subscribe

  • Нахождение двух самых отдалённых точек

    Пока компьютер долго и упорно мучал симуляцию, я пытался написать на ассемблере алгоритм захвата на ближней дистанции. А сейчас на этом коде можно…

  • Слишком общительный счётчик

    Вчера я чуть поторопился отсинтезировать проект,параметры не поменял: RomWidth = 8 вместо 7, RamWidth = 9 вместо 8, и ещё EnableByteAccess=1, чтобы…

  • Балансируем конвейер QuatCore

    В пятницу у нас всё замечательно сработало на симуляции, первые 16 миллисекунд полёт нормальный. А вот прошить весь проект на ПЛИС и попробовать "в…

  • Ковыряемся с сантехникой

    Наконец-то закрыл сколько-нибудь пристойно трубы, подводящие к смесителю, в квартире в Москве: А в воскресенье побывал на даче, там очередная…

  • Мартовское велосипедное

    Продолжаю кататься на работу и с работы на велосипеде, а также в РКК Энергию и на дачу. Хотя на две недели случился перерыв, очередная поломка,…

  • Обнаружение на новом GPU - первые 16 мс

    Закончилась симуляция. UFLO и OFLO ни разу не возникли, что не может не радовать. За это время мы дошли до строки 0x10F = 271. Поглядим дамп памяти:…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 48 comments

  • Нахождение двух самых отдалённых точек

    Пока компьютер долго и упорно мучал симуляцию, я пытался написать на ассемблере алгоритм захвата на ближней дистанции. А сейчас на этом коде можно…

  • Слишком общительный счётчик

    Вчера я чуть поторопился отсинтезировать проект,параметры не поменял: RomWidth = 8 вместо 7, RamWidth = 9 вместо 8, и ещё EnableByteAccess=1, чтобы…

  • Балансируем конвейер QuatCore

    В пятницу у нас всё замечательно сработало на симуляции, первые 16 миллисекунд полёт нормальный. А вот прошить весь проект на ПЛИС и попробовать "в…

  • Ковыряемся с сантехникой

    Наконец-то закрыл сколько-нибудь пристойно трубы, подводящие к смесителю, в квартире в Москве: А в воскресенье побывал на даче, там очередная…

  • Мартовское велосипедное

    Продолжаю кататься на работу и с работы на велосипеде, а также в РКК Энергию и на дачу. Хотя на две недели случился перерыв, очередная поломка,…

  • Обнаружение на новом GPU - первые 16 мс

    Закончилась симуляция. UFLO и OFLO ни разу не возникли, что не может не радовать. За это время мы дошли до строки 0x10F = 271. Поглядим дамп памяти:…