Схема працює на макеті, але не на друкованій платі


9

У мене досить проста схема, яка чудово працює на дошці, але у мене виникають багато проблем з передачею її на друковану плату. Я бачу дуже дивну поведінку, яка лежить поза моїм нинішнім досвідом, тому сподіваюся отримати поради.

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

Я обвів частину, яка має проблеми.

R3 - розсувний резистор, який потрібен b / c AMN42121 приводить в дію вищий ВИСОКИЙ при виявленні руху, але залишає його висячим без руху, тому розтягування потрібне.

Я використовував C1, щоб згладити перехід між рухом і без руху. C1 змушує вихідний рівень виходити на низький рівень повільно і плавно, тому стан "без руху" не досягається через кілька секунд без руху.

Інвертор є, якщо зовнішні перериви attiny викликаються низьким рівнем, тому мені потрібно інвертувати логіку. Прикро, що мені довелося використовувати такий великий пакет DIP для одного інвертора, але нічого іншого я не міг знайти.

Я зробив двосторонню плату для цієї схеми, яка виглядає приблизно так: введіть тут опис зображення

Знову ж, я поки що лише зібрав обведену область.

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

Це саме те, що я хочу бачити, тому все до цього моменту добре.

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

Приклад 1: введіть тут опис зображення

Приклад 2: введіть тут опис зображення

Зауважте, що на відміну від першого прикладу, сигнал у другому прикладі не генерується рухом - ця пила зубчаста форма просто виникає на власній без будь-яких дій від мене.

Після багатьох тестів я зміг встановити наступне:

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

Зауважте, що навіть на цьому останньому знімку сигнал не повертається до низького рівня. Ефект зник майже щойно я перестала чистити кисті.

Поки що це вказує на деякий дефект пайки, за винятком того, що я справді не можу побачити проблему. Я обережно перейшов плату з потужним збільшенням і випробував усі плями, про які я міг придумати себе для наступності - все перевіряється. Ось крупний план роботи пайки на розетці ІС та датчику: введіть тут опис зображення

Зараз у мене немає ідеї, тому будь-які поради були б дуже вдячні. Дякую.

Редагувати:

Я щойно відкрив щось цікаве. Більш детальний розгляд прикладу №2 (сигнал форми пилки-зуба) виявляє, що ухил вниз є сегментом очікуваної кривої розряду С1. Коли рівень напруги наближається до порогу інвертора і проводить там занадто багато часу, інвертор, схоже, плутається! Він генерує той невеликий вибух шуму, а потім робить щось, щоб відбити вхід до ВИСОКОГО, або просто зависає в такому "невизначеному" галасливому стані нескінченно до тих пір, поки вихід датчика знову НЕ ВИСОКИЙ / з руху (Приклад №1).

Щоб перевірити цю теорію, я замінив C1 на ковпачок, який у 10 разів менший, завдяки чому крива розряду зростає набагато крутіше і "вуалі!" - інвертор більше не плутається, і схема працює!

Звичайно, це перемагає мету С1, оскільки зараз це не забезпечує стільки затримок, скільки я хочу. Я не впевнений, чому у мене не було такої проблеми з інвертором на макетній дошці, але це припускає, що може бути дуже просте виправлення, яке може вирішити цю проблему. Я читав, що дошки мають велику "бродячу" ємність, тож, можливо, мені просто потрібно кудись стратегічно додати дещо більше конденсаторів? Будь-які ідеї?

EDIT 2: Надання зверху, оскільки деякі коментатори просили його: введіть тут опис зображення


Святі банани, ці паяльні шви виглядають жахливо . Ви там відчайдушно потребуєте трохи потоку.
Вонор Коннор

@Connor Wolf: Ви маєте на увазі штифти IC, які ні до чого не підключені? Вони ледве не паяні, але не бачив причин їх паяти. Або ви говорите про інші з'єднання пайки?
Вал Блант

Чому ви взагалі використовуєте інвертор? Підключіть вихід датчика до PB2 із серійним резистором 220-470 Ом, і вам все в порядку. Ви можете додати резистор, що спадає, але 10Meg занадто високий. Змініть його на 10 к. Також вам не потрібно підключати C1. Ви можете виконати фільтрацію в програмному забезпеченні за допомогою простої процедури затримки. На додаток до цього, C1 може додавати навантаження на датчик, так що коли підключений інвертор ІС, навантаження буде занадто великою, щоб сенсор не міг керувати, можливо?
абдулла кахраман

Я перевірив зараз, і датчик може дати максимальний вихід 100uA! Інвертор вимагає близько 1 мА вхідного струму! Отже, наведений вище резистор, який я запропонував, а це 10 к, - це занадто багато. Змініть його на 330k або 470k
abdullah

@abdullah kahraman: Вибачте - я не розумію вашої ідеї. INT0 на підводці спрацьовує при переході до НИЗКОГО, тому "жодний рух" не повинен бути представлений високим входом. Це не так? Не могли б ви пояснити свою ідею детальніше?
Вал Блант

Відповіді:


7

EDIT - через мою неправильну інтерпретацію схеми я редагую відповідь, щоб зосередити увагу на виході датчика - чи використовуєте ви аналоговий вихід для подачі в інвертор - якщо ви, можливо, вам варто спробувати тригер Schmitt, як 74HC14


1
@ValBlant Я не є експертом з ATTiny чувак - якщо ви встановили, це повинна бути така полярність, ніж це так - які рівні вхідного сигналу в інверторі - чи не могли б ви, але не застосовуючи належні логічні рівні - можливо, вам також знадобиться Шімдттський тригерний інвертор типу 74HC14?
Енді ака

1
Можливо, якщо ви знімете шапку і подивитесь, як це виглядає тоді, якщо потрібно, ви можете зробити щось у коді ATtiny, який підтримує ланцюг живим між перехідними? Ви поставили на інвертор 10n декупаж, як це запропонував хтось раніше?
Енді ака

1
Я думаю, вам знадобиться чувак-тригер - вони можуть справлятися з неохайними аналоговими часом повільного підйому та падіння - це те, що вони мають намір робити. Можливо, ваша оригінальна схема працювала через димохід, хоча завжди є вагомі причини !!
Енді ака

1
@ValBlant Зверніть увагу на специфікацію "час підйому та падіння входу" на листі даних TC74HC04 - в якому вказані найповільніші вхідні сигнали, які рекомендуються (500с піднімання / падіння при Vcc = 4,5В). Цю специфікацію можна пропустити, тим більше, що лист даних Toshiba прямо не визначає її як максимум.
Кріс Джонсон

1
Використання інвертора з тригером Шмітта вирішило мою проблему.
Val Blant

11

Не вивчаючи схему дуже детально, очевидно, що у вас немає конденсаторів для роз'єднання.

Припаяйте один поперек силових штифтів кожної мікросхеми.

Крім того, ваш коментар "вичісування змушує працювати" говорить про те, що десь у вас сухий суглоб або переривчасте з'єднання. Ретельно огляньте всі ваші пайки.

Зважаючи на непомірність мікросхеми DIL, ви могли б просто використати транзистор і помістити інформацію про час затримки в програмне забезпечення.


ОК, я просто прочитав про те, що таке конденсатори для роз'єднання. Я здивований, що мені потрібно щось подібне для живлення інвертора, який не є високошвидкісним пристроєм, але я обов'язково спробую це. Більшість джерел припускають, що керамічна шапочка 0,1uF через силові штифти ІС. У мене немає керамічних ковпачків у цьому діапазоні, але у мене є електролітика. Це буде працювати, чи мені для цього абсолютно потрібна кераміка?
Вал Блант

Що стосується інвертора, то я спочатку почав працювати з транзистором, але пізніше зрозумів, що транзисторний інвертор притягує занадто велику потужність, коли він відкритий. Моя схема повинна функціонувати на рівні близько 60uA (коли не передається), чого я не зміг досягти за допомогою транзистора, однак інтелектуальний перетворювач, здавалося, зробив цю роботу.
Val Blant

Щойно спробували електролітику 0,1uF та 1uF як роз'єднання ковпачків без змін. Однак я виявив щось цікаве, що, на мою думку, може бути натяком. Я оновлю основну публікацію новою інформацією.
Вал Блант

3

Ваша основна проблема - це зменшення споживання електроенергії.

AMN42121 споживає близько 50uA постійно. 74HC04 споживає близько 20uA постійно. ATTINY85 споживає близько 300uA з перервами, щоразу прокинувшись. Радіо використовує міліампер, коли передає.

Як часто спрацьовує датчик ?. Ви зробили якісь розрахунки потужності, щоб оцінити термін служби акумулятора?

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

[EDIT] Хоча у вас дещо неправильно, я рада бачити, що ви одночасно тестуєте свою схему. Це набагато простіше, ніж намагатися знайти винахід завершеного проекту.


1
Я також не бачу потреби в інверторі. На додаток INT0 / 1 AVR має переривання змін PCI - Pin. PCI виявляє зміну стану штифтів, будь то ВИСОКИЙ чи низький. Ви можете запустити це, а потім додати код деблокування.
Ліндон

Я думаю, що 74HC04 споживає набагато більше, ніж це.
абдулла кахраман

Детальний підрахунок ресурсу акумулятора та аналіз алгоритму коду в моєму інтерфейсі показує, що ви, хлопці, праві - я взагалі не багато перемагаю, використовуючи інвертор замість переривання Pin Change. Якби я це робив ще раз, я би робив так, як ви пропонуєте. Однак час моєї акумуляторної батареї з поточним ланцюгом в гіршому випадку складе 270 днів, тому я думаю, що я залишу конструкцію як є, використаю тригер Schmitt на інверторі та переходжу до наступного проекту. Дякую всім!
Вал Блант
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.