Die Schaltung funktioniert auf Steckbrett, aber nicht auf Leiterplatte

9

Ich habe eine ziemlich einfache Schaltung, die perfekt auf dem Steckbrett funktioniert, aber ich habe große Probleme, sie auf eine Leiterplatte zu übertragen. Ich sehe ein sehr seltsames Verhalten, das außerhalb meiner aktuellen Erfahrung liegt, und hoffe, einen Rat zu bekommen.

Die Schaltung implementiert einen WLAN-Bewegungssensor, obwohl das Problem, das ich habe, erst auftritt, bevor ich zum HF-Teil oder sogar zum uC-Teil des Diagramms komme: Geben Sie hier die Bildbeschreibung ein

Ich habe den Teil eingekreist, der Probleme hat.

R3 ist ein Pulldown-Widerstand, der erforderlich ist. B / c AMN42121 treibt den Ausgang auf HIGH, wenn eine Bewegung erkannt wird, lässt ihn jedoch für keine Bewegung hängen, sodass ein Pulldown erforderlich ist.

Ich habe C1 verwendet, um den Übergang zwischen Bewegung und Nichtbewegung zu glätten. C1 bewirkt, dass der Ausgangspegel langsam und gleichmäßig auf LOW geht, sodass der Zustand "keine Bewegung" nach einigen Sekunden ohne Bewegung erreicht wird.

Der Wechselrichter ist da. Die externen Interrupts von b / c attiny werden durch den LOW-Pegel ausgelöst, daher muss ich die Logik invertieren. Es ist bedauerlich, dass ich für einen Wechselrichter ein so großes DIP-Paket verwenden musste, aber ich konnte nichts anderes finden.

Ich habe eine doppelseitige Leiterplatte für diese Schaltung hergestellt, die so aussieht: Geben Sie hier die Bildbeschreibung ein

Auch hier habe ich bisher nur den eingekreisten Bereich zusammengestellt.

Nach dem Löten von S1, R3 und C1 erhalte ich folgendes Signal vom Sensorausgang: Geben Sie hier die Bildbeschreibung ein

Genau das möchte ich sehen, also ist bis zu diesem Punkt alles in Ordnung.

Als nächstes habe ich eine Buchse für IC2 eingelötet und den Wechselrichter eingesteckt. Hier beginnen die Geheimnisse. Anfangs war alles in Ordnung, aber nach einer Weile des Spielens mit der Platine funktionierte die Schaltung plötzlich nicht mehr. Wenn ich eine Sonde am Sensorausgang platziere, sehe ich anstelle des oben gezeigten netten Signals Variationen der folgenden zwei Beispiele:

Beispiel 1: Geben Sie hier die Bildbeschreibung ein

Beispiel 2: Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass im Gegensatz zum ersten Beispiel das Signal im zweiten Beispiel nicht durch Bewegung erzeugt wird - diese Sägezahnform entsteht nur von selbst, ohne dass ich etwas unternehme.

Nach vielen Tests konnte ich Folgendes feststellen:

  1. Wenn Sie den Wechselrichter aus der Steckdose ziehen, funktioniert der Sensor wieder ordnungsgemäß.
  2. Wenn der Wechselrichter unter Spannung steht, während er angeschlossen bleibt, funktioniert der Sensor.
  3. Die Verwendung eines anderen Wechselrichters hat keine Auswirkung.
  4. Wenn Sie die Platine mit Flussmittelentferner oder Aceton übergießen und mit einer Bürste schrubben, funktioniert der Sensor manchmal wieder, aber nur sehr kurz. Irgendwann konnte ich das Signal durch aggressives Schrubben mit einer Zahnbürste so aussehen lassen: Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass das Signal auch in diesem letzten Bild nicht vollständig auf den NIEDRIGEN Pegel zurückkehrt. Der Effekt verschwand fast, sobald ich aufhörte zu bürsten.

Bisher deutet dies auf einen Lötfehler hin, außer dass ich das Problem wirklich nicht sehen kann. Ich bin mit starker Vergrößerung sorgfältig über das Brett gegangen und habe alle Stellen, die mir in den Sinn kamen, auf Kontinuität getestet - alles wird überprüft. Hier ist eine Nahaufnahme des Lötauftrags an der IC-Buchse und am Sensor: Geben Sie hier die Bildbeschreibung ein

Ich habe jetzt keine Ideen mehr, daher wäre jeder Rat sehr dankbar. Danke.

BEARBEITEN:

Ich habe gerade etwas Interessantes entdeckt. Eine genauere Untersuchung von Beispiel Nr. 2 (das Sägezahnformsignal) zeigt, dass die Abwärtsneigung ein Segment der erwarteten C1-Entladungskurve ist. Wenn sich der Spannungspegel der Schwelle des Wechselrichters nähert und dort zu viel Zeit verbringt, scheint der Wechselrichter verwirrt zu werden! Es erzeugt diesen kleinen Rauschstoß und unternimmt dann etwas, um den Eingang auf HIGH zurückzuschalten, oder bleibt einfach in diesem "unbestimmten" verrauschten Zustand auf unbestimmte Zeit hängen, bis der Sensorausgang b / c der Bewegung wieder HIGH wird (Beispiel 1).

Um diese Theorie zu testen, habe ich C1 durch eine 10-mal kleinere Kappe ersetzt, wodurch die Entladungskurve viel steiler und "voila!" - Der Wechselrichter wird nicht mehr verwirrt und die Schaltung funktioniert!

Dies macht natürlich den Zweck von C1 zunichte, da es jetzt nicht so viel Verzögerung bietet, wie ich möchte. Ich bin nicht sicher, warum ich dieses Problem mit dem Wechselrichter auf dem Steckbrett nicht hatte, aber es deutet darauf hin, dass es eine sehr einfache Lösung geben könnte, die dieses Problem beheben kann. Ich habe gelesen, dass Steckbretter eine große "Streukapazität" haben, also muss ich vielleicht strategisch irgendwo mehr Kondensatoren hinzufügen? Irgendwelche Ideen?

EDIT 2: Bereitstellung einer Draufsicht, da einige Kommentatoren danach gefragt haben: Geben Sie hier die Bildbeschreibung ein

Val Blant
quelle
Heilige Bananen, diese Lötstellen sehen schrecklich aus . Sie brauchen dort dringend etwas Fluss.
Connor Wolf
@ Connor Wolf: Beziehen Sie sich auf die IC-Pins, die mit nichts verbunden sind? Die sind kaum gelötet, b / c Ich sah keinen Grund, sie zu löten. Oder sprechen Sie über die anderen Lötstellen?
Val Blant
Warum verwenden Sie überhaupt einen Wechselrichter? Verbinden Sie den Ausgang des Sensors mit einem Vorwiderstand von 220-470 Ohm mit PB2, und schon kann es losgehen. Sie können einen Pulldown-Widerstand hinzufügen, aber 10 Meg ist viel zu hoch. Ändern Sie es mit einem 10k. Außerdem müssen Sie C1 nicht anschließen. Sie können die Filterung in der Software mit einer einfachen Verzögerungsroutine durchführen. Darüber hinaus kann C1 dem Sensor eine Last hinzufügen, sodass beim Anschließen des Inverter-IC die Last zu hoch ist, als dass der Sensor sie möglicherweise nicht antreiben kann.
Abdullah Kahraman
Ich habe jetzt überprüft und der Sensor kann eine maximale Leistung von 100uA geben! Wechselrichter benötigt ca. 1mA Eingangsstrom! Der obige Pulldown-Widerstand, den ich vorgeschlagen habe und der 10k beträgt, ist also zu viel. Ändern Sie es mit einem 330k oder 470k
abdullah kahraman
@abdullah kahraman: Es tut mir leid - ich verstehe deine Idee nicht. INT0 bei Attiny wird beim Übergang zu LOW ausgelöst, daher muss "keine Bewegung" durch den Eingang HIGH dargestellt werden. Ist das nicht richtig? Könnten Sie bitte Ihre Idee näher erläutern?
Val Blant

Antworten:

7

BEARBEITEN - wegen meiner Fehlinterpretation der Schaltung bearbeite ich die Antwort, um mich auf den Ausgang des Sensors zu konzentrieren - verwenden Sie den Analogausgang, um in den Wechselrichter einzuspeisen - wenn Sie es sind, sollten Sie vielleicht einen Schmitt-Trigger wie einen 74HC14 versuchen

Andy aka
quelle
1
@ValBlant Ich bin kein Experte für den ATtiny-Typen - wenn Sie festgestellt haben, dass es diese Polarität sein muss - wie auch immer - was sind die Eingangssignalpegel in den Wechselrichter - könnten Sie aber nicht die richtigen Logikpegel anwenden - könnten Sie auch brauchen ein schmidtt auslöser wie 74HC14?
Andy aka
1
Wenn Sie die Kappe entfernen und sehen, wie das dann aussieht, können Sie bei Bedarf im ATtiny-Code etwas tun, das die Schaltung zwischen Transienten am Leben hält? Haben Sie einen 10n-Entkoppler an den Wechselrichter angeschlossen, wie dies zuvor von jemandem vorgeschlagen wurde?
Andy aka
1
Ich denke, du brauchst einen Schmitt-Trigger-Typ - er kann mit schlampigen analogen langsamen Anstiegs- und Abfallzeiten umgehen - genau das sollen sie tun. Vielleicht hat Ihre ursprüngliche Schaltung wegen eines Zufalls funktioniert, obwohl es immer einen guten Grund gibt !!
Andy aka
1
@ValBlant Beachten Sie die Spezifikation "Anstiegs- und Abfallzeit des Eingangs" im Datenblatt des TC74HC04, in der die langsamsten empfohlenen Eingangssignale angegeben sind (Anstiegs- / Abfallzeiten von 500 ns bei Vcc = 4,5 V). Dies ist eine leicht zu übersehende Spezifikation, zumal das Toshiba-Datenblatt sie nicht explizit als Maximum angibt.
Chris Johnson
1
Die Verwendung eines Wechselrichters mit einem Schmitt-Trigger löste mein Problem.
Val Blant
11

Ohne Ihre Schaltung genau zu untersuchen, ist es offensichtlich, dass Sie keine Entkopplungskondensatoren haben.

Löten Sie einen über die Stromanschlüsse jedes Chips.

Außerdem deutet Ihr Kommentar zum Schrubben darauf hin, dass Sie irgendwo eine trockene Verbindung oder eine intermittierende Verbindung haben. Überprüfen Sie alle Ihre Lötarbeiten sorgfältig.

Wenn ein DIL-Chip zu viel des Guten ist, hätten Sie einfach einen Transistor verwenden und das Zeitverzögerungsmaterial in die Software einfügen können.

Buzby
quelle
ok, habe gerade etwas darüber gelesen, was Entkopplungskondensatoren sind. Ich bin überrascht, dass ich so etwas brauche, um einen Wechselrichter anzutreiben, der kein Hochgeschwindigkeitsgerät ist, aber ich werde es auf jeden Fall versuchen. Die meisten Quellen schlagen eine keramische 0,1 uF-Kappe über den Stromanschlüssen des IC vor. Ich habe keine Keramikkappen in diesem Bereich, aber ich habe einige Elektrolyse. Funktioniert das oder brauche ich dafür unbedingt eine Keramik?
Val Blant
In Bezug auf den Wechselrichter habe ich zunächst mit einem Transistor begonnen, später jedoch festgestellt, dass ein Transistor-Wechselrichter im geöffneten Zustand viel zu viel Strom verbraucht. Meine Schaltung muss bei etwa 60 uA funktionieren (wenn nicht gesendet wird), was ich mit einem Transistor nicht erreichen konnte, aber der Wechselrichter-IC schien die Aufgabe zu erfüllen.
Val Blant
Ich habe gerade 0,1uF- und 1uF-Elektrolyte als Entkopplungskappen ohne Änderung ausprobiert. Ich habe jedoch etwas Interessantes entdeckt, von dem ich denke, dass es ein Hinweis ist. Ich werde den Hauptbeitrag mit den neuen Informationen aktualisieren.
Val Blant
3

Ihr Hauptanliegen scheint die Reduzierung des Stromverbrauchs zu sein.

Der AMN42121 verbraucht kontinuierlich ca. 50uA. Der 74HC04 verbraucht kontinuierlich ca. 20uA. Der ATTINY85 verbraucht zeitweise etwa 300 uA, wenn er aufgewacht ist. Das Radio verwendet beim Senden Milliampere.

Wie oft wird der Sensor ausgelöst? Haben Sie Leistungsberechnungen durchgeführt, um die Batterielebensdauer abzuschätzen?

Ich schlage vor, dass Sie den Wechselrichter entsorgen und den Kondensator verlangsamen, den Sensor mit einem 10K-Pulldown gemäß Sensordatenblatt direkt an die MCU anschließen und die Zeitverzögerungslogik in die MCU schreiben.

[EDIT] Obwohl Sie ein bisschen falsch liegen, bin ich froh zu sehen, dass Sie Ihre Schaltung stufenweise testen. Es ist so viel einfacher als zu versuchen, ein abgeschlossenes Projekt fehlerhaft zu finden.

Buzby
quelle
1
Ich sehe auch keine Notwendigkeit für einen Wechselrichter. Der AVR verfügt zusätzlich zu INT0 / 1 über PCI - Pin Change Interrupts. PCI erkennt eine Änderung des Pin-Status, unabhängig davon, ob es sich um HIGH oder LOW handelt. Sie können dies auslösen und dann den Entprellungscode hinzufügen.
Lyndon
Ich denke, 74HC04 verbraucht viel mehr als das.
Abdullah Kahraman
Eine detaillierte Berechnung der Akkulaufzeit und eine Algorithmusanalyse des Codes in meinem uC zeigen, dass Sie Recht haben - ich gewinne überhaupt nicht viel, wenn ich den Wechselrichter anstelle des Pin-Change-Interrupts verwende. Würde ich es noch einmal tun, würde ich tun, was Sie vorschlagen. Im schlimmsten Fall beträgt meine Akkulaufzeit mit dem Stromkreis jedoch 270 Tage. Ich denke, ich werde das Design unverändert lassen, einen Schmitt-Trigger an meinem Wechselrichter verwenden und mit dem nächsten Projekt fortfahren. Danke euch allen!
Val Blant