Hallo,
ich stehe gerade vor einem Rätsel und brauche mal dringend eure
Schwarm-Intelligenz.
Das Problem. Mein Atmega startet, die LEDs blinken (Regenbogen - Start
Signal) dann linkt die LED (blau), daher weiß ich dass jetzt das HC05
Bluetooth Modul aktiviert wird. Übrigendes es ist eines der "Neuen Serie
von Ali" (ohne Adapterplatine und läuft bereits bei 2V - das habe ich
mit einem Netzteil getestet). Leider musste ich fest stellen, dass das
Datenblatt dazu kaum zu gebrauchen ist, da die Module von
unterschiedlichen Herstellern mit unterschiedlicher Bestückung sind :-(
.Beim aktivieren des Moduls greift die Burnout Detection, die ich auf
1,8V gestellt habe. Schalte ich diese mit den Fuses H:DF L:62 aus läuft
das Programm weiter. Schalte ich sie mit H:DE L:62 ein bootet der Atmel.
Mit meinem Mini Oszi habe ich am Batterie Clip gemessen, dort fällt die
Spannung nicht unter 1,8V am Atmel kann ich leider gerade kaum messen,
da darüber das HT-05 verlötet ist :(. Versorgt habe ich die Schaltung
mit einem PC Netzteil. 3,3V 14 Ampere. Da sollte eigentlich auch keine
Spannung zusammen brechen.
Könnt ihr euch mal bitte den Quelltext und die Eagel Dateien anschauen
und mir eure Ideen geben? ... der Reset Pin spielt keine Rolle, diesen
habe ich schon über die ISP Schnittstelle auf +3,3V gezogen (ohne
Erfolg)
Kurz zum Programm, das Programm überwacht eine Box, die bis zum
Zeitpunkt X nicht geöffnet werden soll. Die Box beinhaltet einen
Schlüssel für ein Spiel. Die Box zählt die Zeit ab und erzeugt dann
einen Verifikationscode, den das Handy auswerten kann.
Die Stelle des Reboots habe ich auf die Funktion get_BTData() Zeile: 403
eingegrenzt. In dieser Zeile wird der IRLML2502 FET auf GATE mit Strom
Versorgt, danach passiert der Reboot, bevor die LED wieder blinken kann.
Der Fet schaltet das HC05 ein. Gerne würde ich so wenig wie möglich
ändern, da ich nun ein paar von den Platinen hier schon habe und nicht
gleich wieder neu bestellen wollte. Da sind wohl jeztt die Kreativen
Ideen auch gefragt.
Quellcode und Eage Schematik + Layout hänge ich als Bild an.
Die Leiterbahnen hab ich extra dicker gemacht, da ich das Problem schon
bei der ersten Platine hatte und vermutete, dass die Leiterbahn wohl zu
dünn sei und das das Problem erzeugt. (Ich habe leider keinerlei
Elektronik Ausbildung, sondern versuche mir alles selbst an zu eignen,
was ich so brauche).
Am ADC Register PC0-PC2 hängt die RGB LED. PC5 Schaltet den IRLML2502
FET, der das BT Modul dann mit GND Versorgt.
Die Schaltung wird mit 3V (Batterie) bzw 3,3V (Netzteil) versorgt. Die
6V im Schaltplan stammen noch vom vorher eingesetzten ATMEGA8 und zwei
Batterien. Das habe ich vergessen aus zu bessern.
Auftrennen der GND Verbindung zum BT Modul ist eine ganz schlechte Idee.
Wenn überhaupt, schalte bitte auf der Highside.
AREF verbindet man auch nicht mit Vcc, sondern höchstens mit einem 100nF
Abblockkondensator.
Und mach doch bitte mal einen kompletten Schaltplan.
Matthias S. schrieb:> Auftrennen der GND Verbindung zum BT Modul ist eine ganz schlechte> Idee.> Wenn überhaupt, schalte bitte auf der Highside.> AREF verbindet man auch nicht mit Vcc, sondern höchstens mit einem 100nF> Abblockkondensator.> Und mach doch bitte mal einen kompletten Schaltplan.
Hallo Matthias,
danke für deine erste Antwort.
Das Auftrennen der GND Leitung habe ich gemacht, da beim abschalten der
VCC Leitung noch Strom verbraten wurde. Dieser lief dann über GND und
dem TX oder RX Pin. Wärst du noch so nett mir zu erklären warum GND
trennen so schlecht ist? Ein Link zum einlesen tut es natürlich auch.
Könnte AREF das Problem sein?
Der Schaltplan ist tatsächlich komplett an PC0-3 hängt die LED (PAD1-4)
Die anderen Pads sind 3,3V VCC HC05 2x GND HC05 TX und RX HC05 Bei
den TPs hängt ein Taster auf GND (INT0 / INT1).
Leider gibt es das HC05 nicht nicht Eagle so dass ich es nicht direkt
einzeichnen kann.
Thomas F. schrieb:> Wärst du noch so nett mir zu erklären warum GND> trennen so schlecht ist?
Weil in dem Moment dein AVR resettet - das ist doch das Problem. Wenn du
VCC trennst und vorher den UART abschaltest, fliesst auch kein Reststrom
mehr.
Mach mal den kompletten Schaltplan.
Thomas F. schrieb:> Leider gibt es das HC05 nicht nicht Eagle so dass ich es nicht direkt> einzeichnen kann.
Dann setze doch eine Stiftleiste o.ä. mit der richtigen Anzahl Pins ein.
Aber so weiss doch niemand, was was sein soll. N$7 jedenfalls sagt mir
nix.
ATMega88V und 32,768 MHz soll stabil laufen? Oder sollen das 32,768 kHz
sein - dann wird die Baudrate mit 9600 Baud nie erreicht.
Thomas F. schrieb:> Die Schaltung wird mit 3V (Batterie) bzw 3,3V (Netzteil) versorgt.
Never ever ... zumal der Code auch überhaupt nicht zur Quarz-Angabe
passt. Was stimmt den jetzt?
Matthias S. schrieb:>> Thomas F. schrieb:>> Leider gibt es das HC05 nicht nicht Eagle so dass ich es nicht direkt>> einzeichnen kann.>> Dann setze doch eine Stiftleiste o.ä. mit der richtigen Anzahl Pins ein.> Aber so weiss doch niemand, was was sein soll. N$7 jedenfalls sagt mir> nix.
So ich habe schon mal den Plan überarbeitet. Die AREF Leitung streiche
ich für die nächste Version, sollte ich nochmal Platinen fertigen
lassen, aber da ich den Plan ja hier zur Analyse habe, habe ich alle
Leiterbahnen mal so belassen, damit man einen Überblick hat. Die Pin
Anzahl Stimmt jetzt auch 1x VCC 2x GND am FET 1x TX und 1x RX
Soso, LED ohne Vorwiderstand und Kreuzchen als Schaltzeichen? Das ist
immer noch unleserliches Aneinanderreihen von sinnlosen Symbolen. Aus
sicherer Quelle weiss ich nämlich, das es sowohl für LED als auch für
Widerstände fertige Symbole in Eagle gibt. Gib dir doch wenigstens ein
wenig Mühe mit einem kompletten Schaltplan. Immerhin möchtest du doch
Hilfe, oder?
Und was ist nun mit dem Quarz?
Und INT0 hast du hoffentlich nicht freigegeben.
Wenn ich ein Bauteil ohne Eintrag in die Library brauche, mache ich das
so wie im Anhang.
Hallo Matthias,
ich gebe mir echt mühe, aber möchte den Schaltplan jetzt nicht zu sehr
zu den Platinen verändern, denn dann findet man den Fehler evtl. nicht
mehr. Die LED hat es nicht in Eagle gegeben (RGB Led aus China) deswegen
hab ich Testpads eben so nebeneinander gesetzt, wie Sie es mit den
Buchsenleisten machen. (TP1-4 ist ein SMD Taster)
Int0 Ist wirklich ein Testpad, da daran der externe Taster hängt, der am
Batterie Board angeschlossen ist.
Ich habe inzwischen weitere Tests gemacht. 1. Habe ich die Schaltung
ganz wild auf einem Lego Board aufgebaut, auf dem ich Teile auf
Legobausteine geklebt habe. (Damit habe ich auch den Schaltplan
entwickelt). Da funktioniert seltsamerweise alles. Es sind die gleichen
Bauteile und die gleiche Verkabelung. Incl. AREF den ich zum Test genau
so falsch auf VCC geklemmt habe. (Ab und Anstecken verändert nicht das
Verhalten)
Dann dachte ich mir okay vielleicht eine kalte Lötstelle also habe ich
eine weitere (neue) Platine bestückt und diese zeigt das gleiche
Verhalten wie die erste. (BOD Reset)
Also muss es irgendwas mit der Anordnung Leiterbahn dicke oder so zu tun
haben. Das ich zwei mal exakt das gleiche Verhalten durch eine kalte
Löststelle produziere halte ich für sehr unwahrscheinlich (wäre doch
sehr seltsam). Auf die Platine habe ich nur den Atmega diesmal gelötet
und das auch ohne AREF Pin. Das BT Modul habe ich von der Lego Platte
angeklemmt, damit ich dies auch als Fehlerquelle ausschließen kann.
Ich bin echt am Verzweifeln.
Der Quarz befindet sich bei den 2 22pf Kondensatoren, auf der anderen
Seite der Platine
Jetzt wird es richtig "strange"
Wenn ich den Plus Pol vom Blutooth Modul mit einer Krokodilklemme direkt
ans Netzteil klemme, dann ist das Problem weg. Wird das Kabel kürzer
tritt das Problem wieder auf.
Thomas F. schrieb:> Wird das Kabel kürzer> tritt das Problem wieder auf.
Puffer mal deine Versorgungsspannung auf der Platine mit einem grösseren
Elko, z.B. 100-470µF und zwar vor dem MOSFet. Probiers dann nochmal.
So mir brennt das Thema unter den Nägeln, so habe ich mich direkt daran
gemacht und an das BT Modul + und Fet Source einen 1000uF 10V Elko
gelötet und damit ist das Problem weg. Es sieht so aus als würde das
Modul beim Start irgendwie dem Atmel den Strom zu klauen. Ich werde
später mal noch mit 470uF und 100uF probieren. Aber es ist sehr
interessant, dass das nur auf der Platine auf taucht.
Thomas F. schrieb:> 102431.jpg
Wusste gar nicht, das der Mega88 auch INT3 hat :-P
Thomas F. schrieb:> Es sieht so aus als würde das> Modul beim Start irgendwie dem Atmel den Strom zu klauen
Jo, das Modul lädt mögl. intern auch einen Kondensator auf und braucht
Anlaufstrom. Das deutet aber darauf hin, das dein Strompfad zu schwach
ist.
> einen 1000uF 10V Elko
Naja, bisschen viel ist das schon, aber was solls. Die nächste Platine
würde ich aber schon sauberer routen und den Elko gleich vorsehen. Wenn
du die Anschlusspads etwas ordentlicher strukturierst, sinkt übrigens
die Gefahr des 'irgendwann falsch anschliessen'.
Ja INT3 kommt davon, wenn man das Layout 2x auf eine Platine kopiert und
dann selbst aus schneidet. 😁
Meinen Sie es würde etwas bringen, wenn ich VCC direkt ans BT Modul als
Speisepunkt legen würde?
Die Leiterbahnen für VCC Gnd zum Fet habe ich schon extra bei dem Layout
breit gemacht (das war meine Vermutung beim ersten Layout) am Atmel sind
sie lt. Eagle 0,024 und für Gnd und VCC zum Fet 0,056
Ich versuche nachher mal noch kleinere uF Werte und Berichte nochmal.
Das Modul scheint zumindest wenn es nicht verbunden ist richtig Strom zu
fressen, denn dann merkt man trotz des Elkos bei einer nicht ganz vollen
Batterie ein leichtes Flackern der LED. Sobald mit dem Handy gekoppelt
ist, ist das Flackern vorbei.
Thomas F. schrieb:> Das Modul scheint zumindest wenn es nicht verbunden ist richtig Strom zu> fressen, denn dann merkt man trotz des Elkos bei einer nicht ganz vollen> Batterie ein leichtes Flackern der LED.
Das ist bei Funkmodulen oft so, weil sie broadcasten, um sich entweder
selber zu annoncieren (BT) oder um Verbindung mit einem Netz zu bekommen
(GSM, LTE, WLAN).
Die Espressif Module z.B. sind dafür bekannt, das sie auch mal 300mA
ziehen können und deswegen eine gepufferte Versorgung brauchen.
Beim HC05 ist mir das bis jetzt nicht so aufgefallen, habe aber auch
erst eines in einem OBD2 Dongle verbaut, der sowieso vom Auto gespeist
wird. Da gibts Reserve ohne Ende und der MC dadrin (ELM327) wird nicht
gestört.
Das liegt aber vermutlich daran, das die Jungs genau wissen, das die 12V
im Auto grausam gestört sind und deswegen wird gut gepuffert.
Thomas F. schrieb:> Meinen Sie es würde etwas bringen, wenn ich VCC direkt ans BT Modul als> Speisepunkt legen würde?
Kannst mich ruhig wieder duzen. Ich würde, um nochmal auf den Anfang zu
verweisen, VCC mit einem P-Kanal schalten und nicht GND. Es ist immer
hilfreich, wenn der Bezugs- und Schirmungspunkt eines Moduls dauerhaft
mit GND verbunden ist, vor allem, weil es ein HF Modul ist.
> Kannst mich ruhig wieder duzen. Ich würde, um nochmal auf den Anfang zu> verweisen, VCC mit einem P-Kanal schalten und nicht GND. Es ist immer> hilfreich, wenn der Bezugs- und Schirmungspunkt eines Moduls dauerhaft> mit GND verbunden ist, vor allem, weil es ein HF Modul ist.
Das mit dem PFet werde ich auf jeden Fall beherzigen wenn ich wieder
Platinen machen lasse. Bisher habe ich immer alles mit NFets gemacht und
hatte nicht auf dem Radar, dass es eine Rolle spielen könnte ob ich nun
VCC oder Gnd trenne. Gibt es da eine Regel wann man welchen Pol
schaltet? Bei Relais sehe ich das sehr oft, dass gegen Gnd geschaltet
wird.
Thomas F. schrieb:> Burnout Detection
Brownout ...
Setz mal einen kleinen Widerstand von 1-5R zwischen BT Modul und
Versorgung aus Deiner PCB.
Das spielt für das Modul während des Betriebes keine Rolle, aber die
hohen Peakströme, wenn die Kondensatoren geladen werden, werden begrenzt
und die VCC an der MCU bricht nicht so stark ein.
Dein Mini Oszi ist wahrscheinlich nur zu langsam, um den kurzen neg.
Peak zu sehen, der die Brownout detection triggert.
1k-4k7 in RX und TX zum Modul, begrenzt die Ströme, wenn das BT Modul
sich den fehlenden GND über seine Discretes holen will.
Gate Vorwiderstand zum T2, macht den langsamer und begrenzt damit auch
die Peakströme die Dein Hauptproblem sind. 1-10K geraten.
Thomas F. schrieb:> Bei Relais sehe ich das sehr oft, dass gegen Gnd geschaltet> wird.
Das stimmt, aber ein Relais hat auch eine galvanische Trennung zwischen
Steuer- und Lastkreis. Lampen und LED kann man auch problemlos in der
Lowside schalten. Bei Dingen, die mit mehr als nur der Versorgung
verbunden sind, passiert es aber, das das Ding sich bei Auftrennen von
GND anfängt, über die anderen Leitungen Strom zu beziehen, wie Max
gerade sagte. Das muss nicht VCC sein, es kann eben auch GND sein.
HF Module sind nochmal was besonders, weil die ganze Schirmung und der
HF Bezugspunkt dann abgetrennt werden, wenn man GND trennt.
Für ordentliche Verhältnisse und maximales Stromsparen ist es deswegen
sinnvoll, alle Leitungen auf passiv zu schalten (bspw. als Digital
Input) und dann VCC zu kappen.
Super danke für die kurze und Verständliche Erklärung, das bringt mir
sehr viel und wird definitiv umgesetzt. Wenn ich da Platinen nach
bestelle oder ein neues Projekt beginne wird das als erstes
berücksichtigt 👍
Max M. schrieb:> Gate Vorwiderstand zum T2, macht den langsamer und begrenzt damit auch> die Peakströme die Dein Hauptproblem sind.
Vorsicht, das muss nicht klappen. Manche MC/Module reagieren allergisch
auf zu langsamen Anstieg der Versorgung. Also ausprobieren, bzw. einen
Gatewiderstand zwar vorsehen, aber sich noch nicht auf einen Wert
festlegen.
>> die Peakströme die Dein Hauptproblem sind.
Stimmt, ich habe jetzt mit 4,7 und 10 Ohm im VCC Lane zum BT Modul
getestet bei 10 Ohm klappt es bei 4,7 noch nicht.
Der Spannungsabfall über den 10R wird das BT Modul kaum stören.
Über 0,7V sollte der im Betrieb aber nicht werden, sonst fängt die TX
Leitung der MCU an das BT Modul zu speisen.
Max M. schrieb:> Der Spannungsabfall über den 10R wird das BT Modul kaum stören.> Über 0,7V sollte der im Betrieb aber nicht werden, sonst fängt die TX> Leitung der MCU an das BT Modul zu speisen.
Danke für die info. Ich habe mir jetzt auch mal ein Hm10 Modul bestellt,
das soll wohl wesentlich weniger Strom ziehen. Das werde ich jetzt
testen.