Forum: Mikrocontroller und Digitale Elektronik ATMEGA88V BOD 1,8V Reset HC05


von Thomas F. (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Thomas F. (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Thomas F. (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
Beitrag #6985943 wurde vom Autor gelöscht.
von Hugo H. (hugo_hu)


Lesenswert?

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?

: Bearbeitet durch User
von Thomas F. (Gast)


Angehängte Dateien:

Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

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.

: Bearbeitet durch User
von Thomas F. (Gast)


Lesenswert?

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

von Thomas F. (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
von Thomas F. (Gast)


Lesenswert?

Das werde ich morgen gleich mal ausprobieren. Für heute habe ich die 
Lötsachen auf geräumt.

Vielen Dank für deine großartige Unterstützung.

von Thomas F. (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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'.

: Bearbeitet durch User
von Thomas F. (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
von Thomas F. (Gast)


Lesenswert?

> 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.

von Max M. (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Thomas F. (Gast)


Lesenswert?

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 👍

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Thomas F. (Gast)


Lesenswert?

>> 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.

von Max M. (Gast)


Lesenswert?

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.

von Thomas F. (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.