Obwód działa na płycie chlebowej, ale nie na płytce drukowanej

9

Mam dość prosty układ, który działa idealnie na płycie chleba, ale mam problem z przeniesieniem go na płytkę drukowaną. Widzę bardzo dziwne zachowania, które leżą poza moim obecnym doświadczeniem, więc mam nadzieję uzyskać porady.

Obwód implementuje czujnik ruchu Wi-Fi, chociaż problem, który mam, zdarza się, zanim przejdę do części RF, a nawet części uC na schemacie: wprowadź opis zdjęcia tutaj

Okrążyłem tę część, która ma problemy.

R3 jest rezystorem obniżającym, który jest wymagany b / c AMN42121 steruje wyjściem WYSOKIM po wykryciu ruchu, ale pozostawia go zawieszonym bez ruchu, więc konieczne jest obniżenie.

Użyłem C1, aby wygładzić przejście między ruchem a brakiem ruchu. C1 powoduje, że poziom wyjściowy przechodzi powoli i płynnie w stan LOW, więc stan „brak ruchu” jest osiągany po kilku sekundach braku ruchu.

Inwerter jest tam b / c zewnętrzne przerwania attiny są wyzwalane przez NISKI poziom, więc muszę odwrócić logikę. Szkoda, że ​​musiałem użyć tak dużego pakietu DIP dla jednego falownika, ale nie mogłem znaleźć nic innego.

Dla tego obwodu wykonałem dwustronną płytkę drukowaną, która wygląda następująco: wprowadź opis zdjęcia tutaj

Znów zgromadziłem tylko kółko do tej pory.

Po lutowaniu S1, R3 i C1 otrzymuję następujący sygnał z wyjścia czujnika: wprowadź opis zdjęcia tutaj

Właśnie to chcę zobaczyć, więc do tego momentu wszystko jest w porządku.

Następnie wlutowałem w gniazdo dla IC2 i podłączyłem falownik. Tu zaczynają się tajemnice. Na początku wszystko było w porządku, ale po pewnym czasie bałaganu z tablicą obwód nagle przestał działać. Kiedy umieszczam sondę na wyjściu czujnika, zamiast ładnego sygnału, który widzieliśmy powyżej, widzę wariacje na następujących dwóch przykładach:

Przykład 1: wprowadź opis zdjęcia tutaj

Przykład 2: wprowadź opis zdjęcia tutaj

Zauważ, że w odróżnieniu od pierwszego przykładu, sygnał w drugim przykładzie nie jest generowany przez ruch - który zobaczył, że kształt zęba pojawia się sam bez żadnego działania ode mnie.

Po wielu testach udało mi się ustalić, co następuje:

  1. Odłączenie falownika od gniazda powoduje, że czujnik znów działa poprawnie.
  2. Odcięcie zasilania falownika przy pozostawieniu go podłączonego powoduje, że czujnik działa.
  3. Użycie innego falownika nie ma wpływu.
  4. Oblanie płyty środkiem do usuwania topnika lub acetonu i szorowanie za pomocą pędzla czasami powoduje, że czujnik znowu działa, ale bardzo krótko. W pewnym momencie mogłem sprawić, by sygnał wyglądał tak, agresywnie szorując szczoteczką: wprowadź opis zdjęcia tutaj

Zwróć uwagę, że nawet na tym ostatnim zdjęciu sygnał nie wraca całkowicie do NISKIEGO poziomu. Efekt zniknął prawie jak tylko przestałem szczotkować.

Jak dotąd wskazuje to na pewną wadę lutowniczą, z tym wyjątkiem, że naprawdę nie widzę problemu. Ostrożnie przeszedłem planszę z dużym powiększeniem i przetestowałem wszystkie miejsca, o których mogłem pomyśleć pod kątem ciągłości - wszystko się sprawdza. Oto zbliżenie pracy lutu na gnieździe scalonym i czujniku: wprowadź opis zdjęcia tutaj

Nie mam już pomysłów, więc każda rada byłaby bardzo mile widziana. Dziękuję Ci.

EDYTOWAĆ:

Właśnie odkryłem coś interesującego. Bliższe badanie przykładu # 2 (sygnał kształtu piły) ujawnia, że ​​nachylenie w dół jest segmentem oczekiwanej krzywej rozładowania C1. Kiedy poziom napięcia zbliża się do progu falownika i spędza tam zbyt dużo czasu, falownik wydaje się być zdezorientowany! Generuje ten niewielki wybuch szumu, a następnie robi coś, aby przywrócić wejście do WYSOKIEJ, lub po prostu spędza czas w tym „nieokreślonym” głośnym stanie w nieskończoność, aż sygnał wyjściowy czujnika ponownie osiągnie WYSOKI poziom b / c ruchu (Przykład nr 1).

Aby przetestować tę teorię, zastąpiłem C1 nakładką, która jest 10 razy mniejsza, dzięki czemu krzywa rozładowania jest znacznie bardziej stroma i „voila!” - falownik przestaje się mylić, a obwód działa!

Oczywiście, to przeczy celowi C1, ponieważ nie zapewnia teraz tyle opóźnień, ile chcę. Nie jestem pewien, dlaczego nie miałem tego problemu z falownikiem na płycie chleba, ale sugeruje, że może być bardzo łatwa naprawa, która mogłaby rozwiązać ten problem. Czytałem, że płyty chlebowe mają dużą „błądzącą” pojemność, więc może po prostu muszę gdzieś strategicznie dodać więcej kondensatorów? Jakieś pomysły?

EDYCJA 2: Zapewnienie widoku z góry, ponieważ niektórzy komentatorzy o to poprosili: wprowadź opis zdjęcia tutaj

Val Blant
źródło
Święte banany, te złącza lutownicze wyglądają okropnie . Desperacko potrzebujesz trochę płynności.
Connor Wolf,
@Connor Wolf: Czy masz na myśli piny układu scalonego, które nie są do niczego podłączone? Te są ledwo wlutowane, b / c nie widziałem powodu, aby je lutować. A może mówisz o innych połączeniach lutowanych?
Val Blant 17.04.13
Dlaczego w ogóle używasz falownika? Podłącz wyjście czujnika do PB2 za pomocą rezystora szeregowego o wartości 220–470 omów i możesz już zacząć. Możesz dodać rezystor, ale 10 Meg jest o wiele za wysokie. Zmień to na 10k. Nie musisz też podłączać C1. Możesz wykonać filtrowanie w oprogramowaniu za pomocą prostej procedury opóźnienia. Oprócz tego C1 może zwiększać obciążenie czujnika, tak że gdy podłączony jest układ scalony falownika, obciążenie jest zbyt duże, aby czujnik nie mógł napędzać?
abdullah kahraman
Sprawdziłem teraz, a czujnik może dać maksymalną moc wyjściową 100uA! Falownik wymaga około 1 mA prądu wejściowego! Tak więc powyższy sugerowany przeze mnie rezystor obniżający, który wynosi 10k, to za dużo. Zmień na 330k lub 470k
abdullah kahraman 17.04.13
@abdullah kahraman: Przykro mi - nie rozumiem twojego pomysłu. INT0 po podłączeniu jest wyzwalane przy przejściu do LOW, więc „brak ruchu” musi być reprezentowany przez wejście HIGH. Czy to nie w porządku? Czy mógłbyś bardziej szczegółowo wyjaśnić swój pomysł?
Val Blant 17.04.13

Odpowiedzi:

7

EDYCJA - z powodu mojej błędnej interpretacji obwodu edytuję odpowiedź, aby skupić się na wyjściu czujnika - czy używasz wyjścia analogowego do zasilania falownika - jeśli tak, może powinieneś spróbować wyzwalacza Schmitta jak 74HC14

Andy aka
źródło
1
@ValBlant Nie jestem ekspertem od kolesia ATtiny - jeśli ustaliłeś, że musi to być taka polaryzacja, jak to możliwe - jakie są poziomy sygnału wejściowego do falownika - czy nie stosując odpowiednich poziomów logicznych - może również potrzebujesz falownik wyzwalacza Schmidtta jak 74HC14?
Andy alias
1
Może jeśli zdejmiesz nasadkę i zobaczysz, jak to wygląda, w razie potrzeby możesz zrobić coś w kodzie ATtiny, który utrzymuje obwód przy życiu między stanami nieustalonymi? Czy umieściłeś 10-decoupler na falowniku, jak ktoś wcześniej sugerował?
Andy aka
1
Myślę, że potrzebujesz kolesia ze spustem Schmitta - mogą poradzić sobie z niechlujnymi analogowymi czasami powolnego wzrostu i czasów opadania - właśnie to mają zrobić. Może twój oryginalny obwód działał z powodu fuksa, chociaż zawsze jest dobry powód !!
Andy alias
1
@ValBlant Zwróć uwagę na specyfikację „czasu narastania i opadania wejścia” w arkuszu danych TC74HC04 - która określa najwolniejsze zalecane sygnały wejściowe (czasy narastania / opadania 500ns przy Vcc = 4,5V). Jest to łatwa do przeoczenia specyfikacja, zwłaszcza że arkusz danych Toshiba nie określa jej jawnie jako wartości maksymalnej.
Chris Johnson
1
Użycie falownika ze spustem Schmitta rozwiązało mój problem.
Val Blant,
11

Bez szczegółowego badania obwodu oczywiste jest, że nie ma kondensatorów odsprzęgających.

Przylutuj jeden do styków zasilania każdego układu.

Również komentarz „szorowanie sprawia, że ​​działa” sugeruje, że masz gdzieś suche połączenie lub przerywane połączenie. Sprawdź dokładnie całe lutowanie.

Jeśli chodzi o nadmierną moc układu DIL, mógłbyś po prostu użyć tranzystora i umieścić oprogramowanie w opóźnieniu czasowym.

Buzby
źródło
ok, właśnie przeczytałem o tym, czym są kondensatory odsprzęgające. Dziwi mnie, że potrzebuję czegoś takiego do zasilania falownika, który nie jest urządzeniem o dużej prędkości, ale zdecydowanie spróbuję. Większość źródeł sugeruje ceramiczną nasadkę 0,1 uF na pinach zasilania układu scalonego. Nie mam żadnych ceramicznych czapek w tym zakresie, ale mam elektrolitykę. Czy to zadziała, czy absolutnie potrzebuję do tego ceramiki?
Val Blant 17.04.13
Jeśli chodzi o falownik, początkowo zacząłem od tranzystora, ale później zrozumiałem, że falownik tranzystorowy pobiera o wiele za dużo energii, gdy jest otwarty. Mój obwód musi działać przy około 60uA (kiedy nie nadaje), czego nie byłem w stanie uzyskać za pomocą tranzystora, ale układ scalony falownika wydawał się wykonywać tę pracę.
Val Blant 17.04.13
Właśnie wypróbowałem elektrolitykę 0,1uF i 1uF jako odsprzęgacze bez żadnych zmian. Odkryłem jednak coś interesującego, co może być wskazówką. Zaktualizuję główny post o nowe informacje.
Val Blant 17.04.13
3

Wydaje się, że Twoim głównym celem jest zmniejszenie zużycia energii.

AMN42121 zużywa około 50uA w sposób ciągły. 74HC04 zużywa około 20uA w sposób ciągły. ATTINY85 zużywa około 300uA sporadycznie, po obudzeniu. Radio będzie używać miliamperów podczas transmisji.

Jak często czujnik będzie uruchamiany? Czy wykonałeś jakieś obliczenia mocy, aby oszacować żywotność baterii?

Sugeruję odrzucić falownik i kondensator „spowalniający”, podłączyć czujnik bezpośrednio do MCU za pomocą menu rozwijanego 10K zgodnie z arkuszem danych czujnika i zapisać logikę opóźnienia czasowego w MCU.

[EDYCJA] Chociaż coś jest trochę nie tak, cieszę się, że testujesz swój obwód naraz. To o wiele łatwiejsze niż próba znalezienia ukończonego projektu.

Buzby
źródło
1
Nie widzę też potrzeby falownika. AVR ma przerwania PCI - Pin Change Interrupts oprócz INT0 / 1. PCI wykrywa zmianę stanu pinów, czy jest WYSOKA, czy NISKA. Możesz uruchomić to, a następnie dodać kod ogłaszający.
lyndon
Myślę, że 74HC04 zużywa znacznie więcej.
abdullah kahraman
Przeprowadzenie szczegółowego obliczenia żywotności baterii i analiza algorytmu kodu w moim uC pokazuje, że macie rację - wcale nie wygrywam dużo, używając falownika zamiast przerwania Pin Pin. Czy miałbym to zrobić ponownie, zrobiłbym tak, jak sugerujesz. Jednak w najgorszym przypadku moja żywotność baterii w obecnym obwodzie wyniesie 270 dni, więc myślę, że porzucę projekt bez zmian, użyj wyzwalacza Schmitt na moim falowniku i przejdę do następnego projektu. Dziękuję wam wszystkim!
Val Blant,