Схема работает на макете, но не на печатной плате

9

У меня довольно простая схема, которая отлично работает на макете, но у меня много проблем с переносом ее на печатную плату. Я вижу очень странное поведение, которое лежит за пределами моего текущего опыта, поэтому я надеюсь получить совет.

Схема реализует датчик движения Wi-Fi, хотя проблема, с которой я сталкиваюсь, возникает еще до того, как я доберусь до радиочастотной части, или даже от части диаграммы UC: введите описание изображения здесь

Я обвел ту часть, которая испытывает проблемы.

R3 - это понижающий резистор, который необходим, потому что AMN42121 управляет выходом HIGH, когда обнаруживается движение, но оставляет его висящим без движения, поэтому необходимо падение.

Я использовал C1, чтобы сгладить переход между движением и отсутствием движения. С1 медленно и плавно переводит выходной уровень в НИЗКИЙ, поэтому после нескольких секунд бездействия достигается состояние «без движения».

Инвертор есть, внешние прерывания b / c attiny срабатывают по НИЗКОМУ уровню, поэтому мне нужно инвертировать логику. К сожалению, мне пришлось использовать такой большой пакет DIP для одного инвертора, но я не мог найти ничего другого.

Я сделал двухстороннюю плату для этой схемы, которая выглядит следующим образом: введите описание изображения здесь

Опять же, я пока собрал только обведенную область.

После пайки S1, R3 и C1, я получаю следующий сигнал с выхода датчика: введите описание изображения здесь

Это именно то, что я хочу увидеть, так что до этого момента все в порядке.

Далее я припаял разъем для IC2 и подключил инвертор. Здесь начинаются загадки. Сначала все было хорошо, но через некоторое время возиться с платой схема внезапно перестала работать. Когда я помещаю пробник на выход датчика, вместо приятного сигнала, который мы видели выше, я вижу изменения в следующих двух примерах:

Пример 1: введите описание изображения здесь

Пример 2: введите описание изображения здесь

Обратите внимание, что в отличие от первого примера, сигнал во втором примере не генерируется движением - эта форма зуба пилы возникает сама по себе без каких-либо действий от меня.

После многих испытаний я смог установить следующее:

  1. Отключение инвертора от розетки приводит к нормальной работе датчика.
  2. Отключение питания инвертора, оставляя его включенным, приводит к срабатыванию датчика.
  3. Использование другого инвертора не имеет никакого эффекта.
  4. Обливание платы средством для удаления флюса или ацетона и очистки щеткой иногда заставляет датчик работать снова, но очень кратко. В какой-то момент я смог сделать сигнал похожим на это с помощью агрессивной чистки зубной щеткой: введите описание изображения здесь

Обратите внимание, что даже на этом последнем изображении сигнал не возвращается на НИЗКИЙ уровень полностью. Эффект исчез, как только я перестал чистить зубы.

Пока что это указывает на некоторый дефект пайки, за исключением того, что я действительно не вижу проблемы. Я тщательно просмотрел доску с мощным увеличением и проверил все места, которые мог придумать, на предмет непрерывности - все проверяется. Вот крупный план работы пайки на разъеме IC и датчике: введите описание изображения здесь

У меня сейчас нет идей, поэтому любые советы будут с благодарностью. Спасибо.

РЕДАКТИРОВАТЬ:

Я только что обнаружил что-то интересное. Более внимательное изучение примера № 2 (сигнал формы зуба пилы) показывает, что нисходящий уклон является сегментом ожидаемой кривой разряда С1. Когда уровень напряжения приближается к порогу инвертора и проводит там слишком много времени, инвертор, похоже, запутался! Он генерирует этот небольшой всплеск шума и затем делает что-то, чтобы отбросить вход обратно в ВЫСОКИЙ, или просто зависает в этом «неопределенном» шумовом состоянии на неопределенное время, пока выходной сигнал датчика снова не станет ВЫСОКИМ во время движения (пример № 1).

Чтобы проверить эту теорию, я заменил С1 крышкой, которая в 10 раз меньше, что делает кривую разряда намного круче и "вуаля!" - инвертор больше не запутывается и схема работает!

Конечно, это противоречит цели C1, поскольку теперь она не обеспечивает столько задержек, сколько я хочу. Я не уверен, почему у меня не было этой проблемы с инвертором на макете, но это действительно говорит о том, что может быть очень простое решение, которое может решить эту проблему. Я читал, что макеты имеют большую «паразитную» емкость, так что, возможно, мне просто нужно стратегически добавить еще несколько конденсаторов? Любые идеи?

РЕДАКТИРОВАТЬ 2: Предоставление вид сверху, так как некоторые комментаторы просили его: введите описание изображения здесь

Вэл Блант
источник
Святые бананы, эти паяные соединения выглядят ужасно . Вы отчаянно нуждаетесь в некотором потоке там.
Коннор Вольф
@Connor Wolf: Вы имеете в виду выводы IC, которые ни к чему не подключены? Они почти не спаяны, т.к. я не видел причин их паять. Или вы говорите о других паяных соединениях?
Вэл Блант
Почему вы вообще используете инвертор? Подключите выход датчика к PB2 с последовательным резистором 220-470 Ом, и все в порядке. Вы можете добавить понижающий резистор, но 10Мег слишком велик. Измените это с 10 КБ. Также вам не нужно подключать С1. Вы можете выполнить фильтрацию в программном обеспечении с помощью простой процедуры задержки. В дополнение к этому, C1 может добавлять нагрузку на датчик, так что, когда интегральная схема преобразователя подключена, нагрузка слишком велика, что датчик не может управлять, возможно?
Абдулла Кахраман
Я проверил сейчас, и датчик может дать максимальную мощность 100uA! Инвертор требует около 1 мА входного тока! Итак, предложенный выше понижающий резистор, который составляет 10 кОм, это слишком много. Измените это с 330 КБ или 470 КБ
Абдулла Кахраман
@abdullah kahraman: Извините, я не понимаю вашу идею. INT0 on attiny срабатывает при переходе в LOW, поэтому «движение отсутствует» должно быть представлено входом HIGH. Разве это не правильно? Не могли бы вы объяснить свою идею более подробно?
Вэл Блант

Ответы:

7

РЕДАКТИРОВАТЬ - из-за моей неверной интерпретации схемы я редактирую ответ, чтобы сосредоточиться на выходе датчика - используете ли вы аналоговый выход для подачи в инвертор - если вы, возможно, вам следует попробовать триггер Шмитта, как 74HC14

Энди ака
источник
1
@ValBlant Я не эксперт в ATtiny чувак - если вы установили, что это должна быть такая полярность, чем она должна быть - каковы уровни входного сигнала в преобразователь - не могли бы вы, но не применять надлежащие логические уровни - может вам также понадобится триггерный инвертор Шмидта, как 74HC14?
Энди ака
1
Может быть, если вы снимите крышку и посмотрите, как это выглядит, то при необходимости вы можете сделать что-то в коде ATtiny, который поддерживает связь между переходными процессами? Вы установили на преобразователе 10n разъединитель, как это было предложено кем-то ранее?
Энди ака
1
Я думаю, вам понадобится триггер Шмитта - они могут справиться с небрежным аналоговым медленным временем нарастания и спада - это то, для чего они предназначены. Может быть, ваша оригинальная схема сработала из-за случайности, хотя всегда есть веская причина !!
Энди ака
1
@ValBlant Обратите внимание на спецификацию «времени нарастания и спада» в техническом описании TC74HC04, в которой указываются самые медленные входные сигналы, которые рекомендуются (время нарастания / спада 500 нс при Vcc = 4,5 В). Эту спецификацию легко пропустить, тем более что в техническом описании Toshiba она не указана явно как максимальная.
Крис Джонсон
1
Использование инвертора с триггером Шмитта решило мою проблему.
Вэл Блант,
11

Без детального изучения схемы очевидно, что у вас нет развязывающих конденсаторов.

Припой один через контакты питания каждого чипа.

Кроме того, ваш комментарий «очистка заставляет это работать» предполагает, что у вас есть сухое соединение или прерывистое соединение где-то. Внимательно осмотрите всю свою пайку.

Что касается DIL-чипа, который может быть излишним, вы могли бы просто использовать транзистор и установить время задержки в программном обеспечении.

Buzby
источник
хорошо, только что прочитал о том, что конденсаторы развязки. Я удивлен, что мне нужно что-то подобное для питания инвертора, который не является высокоскоростным устройством, но я обязательно попробую. Большинство источников предлагают керамический колпачок 0,1 мкФ через выводы питания микросхемы. У меня нет керамических колпачков в этом диапазоне, но у меня есть некоторые электролитические. Будет ли это работать, или мне для этого нужна керамика?
Вэл Блант
Что касается инвертора, я сначала начал с транзистора, но позже понял, что транзисторный инвертор потребляет слишком много энергии, когда он открыт. Моя схема должна функционировать на уровне около 60 мкА (когда не передается), чего я не смог достичь с помощью транзистора, но, казалось, что интегральная схема инвертора справилась с этой задачей.
Вэл Блант
Только что попробовал электролитические растворы 0,1 мкФ и 1 мкФ в качестве развязывающих крышек без каких-либо изменений. Однако я обнаружил кое-что интересное, что, я думаю, может быть намеком. Я обновлю основной пост новой информацией.
Вэл Блант
3

Похоже, вашей главной заботой является снижение энергопотребления.

AMN42121 потребляет около 50 мкА непрерывно. 74HC04 потребляет около 20 мкА непрерывно. ATTINY85 потребляет около 300 мкА с перерывами, когда проснулся. Радио будет использовать миллиамперы при передаче.

Как часто будет срабатывать датчик? Вы делали какие-либо расчеты мощности, чтобы оценить срок службы батареи?

Я предлагаю вам отказаться от инверторного и «замедляющего» конденсатора, подключить датчик непосредственно к MCU с понижением на 10 Кб согласно таблице данных датчика и записать логику задержки в MCU.

[РЕДАКТИРОВАТЬ] Хотя у вас есть некоторые ошибки, я рад видеть, что вы тестируете свою схему поэтапно. Это намного проще, чем пытаться найти завершенный проект.

Buzby
источник
1
Я тоже не вижу необходимости в инверторе. AVR имеет прерывания смены контактов PCI - в дополнение к INT0 / 1. PCI обнаруживает изменение в состоянии вывода, ВЫСОКОЕ или НИЗКОЕ. Вы можете активировать его, а затем добавить исходный код.
Линдон
Я думаю, что 74HC04 потребляет намного больше, чем это.
Абдулла Кахраман
Выполнение подробного расчета времени автономной работы и некоторый анализ алгоритма кода в моем ОК показывает, что вы, ребята, правы - я совсем не выигрываю, используя инвертор вместо прерывания Pin Change. Если бы я сделал это снова, я бы сделал, как вы предлагаете. Тем не менее, мой срок службы батареи с текущей цепью в худшем случае составит 270 дней, поэтому я думаю, что оставлю проект как есть, использую триггер Шмитта на моем инверторе и перейду к следующему проекту. Спасибо вам всем!
Вэл Блант