Programm startet beim Anlegen an Spg nicht immer

  • 1
  • 2
  • 3
  • Page 1 of 3
tbegle
Benutzer
Avatar
Gender: n/a
Age: 64
Posts: 150
Registered: 01 / 2018
Subject:

Programm startet beim Anlegen an Spg nicht immer

 · 
Posted: 28.10.2020 - 15:02  ·  #1
Hallo Power User,

das Problem hatte ich schon des Öfteren.
Woran kann dies liegen?

Fakten:
Programm Code Rest noch 1%(trotz Merlin) Prog. läuft korrekt
Schalt-Netzteil 12V/10A
Elko 4700uF/25V auf Platine (Auch wegen 8 x 12V/1A DC Motore mit Freilaufdiode)
Versuchte es mit mdelay ohne spürbarem Erfolg!( x funkt. x nicht!)
Hat manchmal sogar Auswirkung auf die Serielle Schnittstelle! hängt zahlreiche @ ... an oder gibt Zeichen(Daten) verzögert oder asynchron aus!

begin
Enableints;
mdelay(10);
InitPorts;
mdelay(10);
Init_EEPROM_; // EEprom beschreiben(0-127 Einträge)
mdelay(100);
Init_Variable_; // EEprom -> Variable
mdelay(1000);
U_Check; // Spg am Akku (LIPO)
( U_Akku:= float(GetADC(x))*0.0232; // misst mit U-Teiler auf 10mV genau!)


PS
Welche Funktion hat der Watchdog? - habe ich bis heute nicht begriffen - ist der ok eingestellt?

import Watchdog,SysTick,SerPort,ADCPort,TWIMaster,BeepPort;
from System import Random,float;
define
ProcClock = 16000000; // Hertz
Watchdog = 10; // 1024msec ??

PS
Manchmal muss ich sogar den Reset länger gedrückt halte, dass das Prog. wieder startet

Gruss
Toni
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2080
Registered: 03 / 2003
Subject:

Re: Programm startet beim Anlegen an Spg nicht immer

 · 
Posted: 28.10.2020 - 17:47  ·  #2
Hallo Toni,

ein paar Fragen:
- Was für ein uC und Taktfrequenz? Spannung?
- Wie ist dein Reset beschaltet?
- Wie ist es ohne die Motoren?
- Wie werden die Motoren angesteuert?
- Kannst du ein Bild des Aufbaus zeigen?
- Kondensatoren am uC und den restlichen Halbleitern vorhanden?
- Spannungsversorgung der Elektronik wie gemacht?

Der Watchdog ist entweder ein Prozess/Task, der alle x ms/us getriggert wird. Fehlt dieser Trigger eine bestimmte Zeit, resettet der uC. Gibts auch als externen Baustein. Soll ein Aufhängen verhindern bzw. im Falle daß sich der uC aufhängt, neu starten. Brauch ich nicht und hab ich noch nie gebraucht.

4700uF bei den Motoren? Sportlich :D.

Gruss
Harry
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: Programm startet beim Anlegen an Spg nicht immer

 · 
Posted: 28.10.2020 - 20:54  ·  #3
Vielleicht schwingt der externe Quarz nicht an
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: Programm startet beim Anlegen an Spg nicht immer

 · 
Posted: 29.10.2020 - 10:10  ·  #4
Quote by tbegle

Hallo Power User,

das Problem hatte ich schon des Öfteren.
Woran kann dies liegen?

Fakten:
Programm Code Rest noch 1%(trotz Merlin) Prog. läuft korrekt
Schalt-Netzteil 12V/10A
Elko 4700uF/25V auf Platine (Auch wegen 8 x 12V/1A DC Motore mit Freilaufdiode)
Versuchte es mit mdelay ohne spürbarem Erfolg!( x funkt. x nicht!)
Hat manchmal sogar Auswirkung auf die Serielle Schnittstelle! hängt zahlreiche @ ... an oder gibt Zeichen(Daten) verzögert oder asynchron aus!

begin
Enableints;
mdelay(10);
InitPorts;
mdelay(10);
Init_EEPROM_; // EEprom beschreiben(0-127 Einträge)
mdelay(100);
Init_Variable_; // EEprom -> Variable
mdelay(1000);
U_Check; // Spg am Akku (LIPO)
( U_Akku:= float(GetADC(x))*0.0232; // misst mit U-Teiler auf 10mV genau!)


PS
Welche Funktion hat der Watchdog? - habe ich bis heute nicht begriffen - ist der ok eingestellt?

import Watchdog,SysTick,SerPort,ADCPort,TWIMaster,BeepPort;
from System import Random,float;
define
ProcClock = 16000000; // Hertz
Watchdog = 10; // 1024msec ??

PS
Manchmal muss ich sogar den Reset länger gedrückt halte, dass das Prog. wieder startet

Gruss
Toni

Hallo Toni,

kontrolliere mal die Spannung am µC beim einschalten, sieht für mich nach einen Spannungseinbruch am µC aus oder ein saftiges EMV-Problem (kommt bei Motoren und Motorregler oft vor.). Wie ist Dein GND-Konzept auf der Leiterplatte und Deine Resetbeschaltung aufgebaut?

Wenn Du nicht weisst, für was ein Watchdog ist, solltest Du ihn besser nicht nutzen! Du musst diesen dann auch regelmäßig antriggern, sonst führt er einen Reset durch. Deine Einstellung ist scheinbar der Software-Watchdog. Bei diesen habe ich schlechte Erfahrung, damit dieser funktioniert muss der µC erstmal richtig arbeiten, aber dazu kommt es ja bei Dir nicht. Also kann er auch keinen Reset durchführen. Du kannst aber beim XMega über FuseBits den Watchdog und den BODLvl einstellen.

Beim Xmega nutze ich meist ca. 2,6V, unter dieser Spannung wird er in Reset gehalten.

Leider sehe ich keine BODLVL Einstellung, ich denke hier ist das Hauptproblem, dieser BrownOut ist für die Spannungsüberwachung, wenn nicht genug Spannung am Controller vorhanden ist, damit dieser sauber arbeitet, wird der µC solange in Reset gehalten. Es kann sein, das der µC beim einschalten nicht genug Spannung hat. Oft ist es so das beim einschalten Kondensatoren und andere Treiber erst orgendlich Energie ziehen und der µC dann in diesen Moment zu wenig Energie bekommt. Ich kenne Dein Boardaufbau und deinen Schaltregler/Spannungsquelle nicht.

Wenn der µC zu wenig Spannung am Anfang hat, kommt es oft vor das dieser irgendwo im Nirvana hängen bleibt.

Thorsten
tbegle
Benutzer
Avatar
Gender: n/a
Age: 64
Posts: 150
Registered: 01 / 2018
Subject:

Re: Programm startet beim Anlegen an Spg nicht immer

 · 
Posted: 29.10.2020 - 23:39  ·  #5
Recht herzlichen Dank für eure Ratschläge und euer Engagement, da tun sich ja Abgründe auf!
Ich werde diese schnellstmöglich verifizieren!
Vorab:
Ich verwende die Nano Module mit dem 328p schon seit 3Jahren, dabei hat es noch nie ein Problem gegeben. In meiner Wohnung 6Stück verbaut
da ich (Licht) Schalter nicht mag. bei div. Kunden etwa 40 Stück verbaut!
Beim Wachhund hatte ich noch nie eine Reaktion bemerkt, auch kein gebell, (wird entfernt)
Die 8 DC-Motore 9V/700mA haben alle Freilaufdioden und werden mit einem LIPO Akkus 11,1V Unenn/10A (<<RI) versorgt und mit (16fach) PWM 1600Hz auf 9V runter geregelt. 16 fach NMOS Treiber Array(30V/5,6A) Eigenentwicklung ist auch in viele Geräte ohne ein Problem verbaut.
Das Problem mit den hohen Anlaufströmen habe ich gelöst, das nicht alle Motore gleichzeitig anlaufen sondern 250ms zeitversetzt, trotzdem nehme ich euren Hinweis ernst, wegen der Masse! (habe die 12V(11,1V) und Masseleitungen mit Lötzinnauftrag noch verstärkt
Die Serienplatine wird eine CU Auflage von 70u haben und zusätzlich mit Zinn verstärkt.
4700uF// zu LIPO
Tektronix beim Einschalten an 5V (Step down Wandler) keine Auffälligkeiten festgestellt(steiler Anstieg <<Oberwellen), werde nochmals nachsehen.

Device = mega328p, VCC = 5;
{ $BOOTRST $03800} {Reset Jump to $03800}
define_fuses
Override_Fuses;
COMport = USB2;
LockBits0 = [];
FuseBits0 = [CKSEL0, CKSEL1, SUT0]; // > 8MHz?
FuseBits2 = [];
ProgMode = SPI;
ProgFuses = false; // ausschalten!!!!
ProgLock = false;
ProgFlash = true;
ProgEEprom = true;
Supply = 5.0, 200;
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: Programm startet beim Anlegen an Spg nicht immer

 · 
Posted: 30.10.2020 - 08:56  ·  #6
Quote by tbegle

Recht herzlichen Dank für eure Ratschläge und euer Engagement, da tun sich ja Abgründe auf!
Ich werde diese schnellstmöglich verifizieren!
Vorab:
Ich verwende die Nano Module mit dem 328p schon seit 3Jahren, dabei hat es noch nie ein Problem gegeben. In meiner Wohnung 6Stück verbaut
da ich (Licht) Schalter nicht mag. bei div. Kunden etwa 40 Stück verbaut!
Beim Wachhund hatte ich noch nie eine Reaktion bemerkt, auch kein gebell, (wird entfernt)
Die 8 DC-Motore 9V/700mA haben alle Freilaufdioden und werden mit einem LIPO Akkus 11,1V Unenn/10A (<<RI) versorgt und mit (16fach) PWM 1600Hz auf 9V runter geregelt. 16 fach NMOS Treiber Array(30V/5,6A) Eigenentwicklung ist auch in viele Geräte ohne ein Problem verbaut.
Das Problem mit den hohen Anlaufströmen habe ich gelöst, das nicht alle Motore gleichzeitig anlaufen sondern 250ms zeitversetzt, trotzdem nehme ich euren Hinweis ernst, wegen der Masse! (habe die 12V(11,1V) und Masseleitungen mit Lötzinnauftrag noch verstärkt
Die Serienplatine wird eine CU Auflage von 70u haben und zusätzlich mit Zinn verstärkt.
4700uF// zu LIPO
Tektronix beim Einschalten an 5V (Step down Wandler) keine Auffälligkeiten festgestellt(steiler Anstieg <<Oberwellen), werde nochmals nachsehen.

Device = mega328p, VCC = 5;
{ $BOOTRST $03800} {Reset Jump to $03800}
define_fuses
Override_Fuses;
COMport = USB2;
LockBits0 = [];
FuseBits0 = [CKSEL0, CKSEL1, SUT0]; // > 8MHz?
FuseBits2 = [];
ProgMode = SPI;
ProgFuses = false; // ausschalten!!!!
ProgLock = false;
ProgFlash = true;
ProgEEprom = true;
Supply = 5.0, 200;


Hallo Toni,

hmm. das Fusebit2 ist hier nicht gesetzt. Hier ist eigentlich der BODLVL zu finden, ich würde diesen irgendwo bei ca. 4,5V einstellen und aktivieren, aber aus dem Kopf weiß ich das beim ATMEGA nicht mehr. Ich nutzte seit Jahren nur noch den XMEGA. (siehe Datenblatt oder evtl. ein andere User)

GND-Konzept; Hier geht es nicht um eine Leiterbahn Verstärkung einiger Bahnen. Hier geht’s um eine optimale und Gute "Störstrom-Unterdrückung" und das verhindern der Störströme die bei Motoren, HF-Signalen, PWM usw. entstehen.

Bei den meisten Leiterplatten haben wir in den zwischenlagen mindestens eine komplette GND-Planes, alle freien Flächen mit GND gefüllt, viele Vias durch den diese zur Verbindung um möglichst GUTE GND Verbindungen zu bekommen. An den Stützkondensatoren meistens 2 VIAs in das GND-Pläne so nahe wie möglich an den Kondensator und diesen wiederrum so NAHE wie möglich an den gestützten Chip. Man muss hier unbedingt Loops verhindern/ oder so klein wie möglich halten.

Trennungen zwischen den Digitalen- und Analogen-GND. Beim rausschalten des GND (BUS und Verbraucher) werden diese GND gefiltert um sich keine Störströme auf das Board zu holen und auch keine auszusenden.

Ich wollte nun wissen wie Du auf Deinen Board dies umgesetzt hast.

Thorsten
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 307
Registered: 07 / 2003
Subject:

Re: Programm startet beim Anlegen an Spg nicht immer

 · 
Posted: 30.10.2020 - 12:22  ·  #7
Hallo Toni,
wenn's kein allzugroßes Geheimnis ist, poste den Schaltplan und Fotos vom Aufbau.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2080
Registered: 03 / 2003
Subject:

Re: Programm startet beim Anlegen an Spg nicht immer

 · 
Posted: 01.11.2020 - 08:29  ·  #8
Quote by tbegle

(habe die 12V(11,1V) und Masseleitungen mit Lötzinnauftrag noch verstärkt
Die Serienplatine wird eine CU Auflage von 70u haben und zusätzlich mit Zinn verstärkt.


Der spezifische Widerstand von Kupfer ist 0.0171 Ohm*mm2/m. Der von Blei 0.21, Zinn 0.11, Elektronik-Loten etwa 0.15-0.22 ...... was glaubst du, wie dick diese Verstärkung sein müßte, damit das einen Hauch von Wirkung zeigt? Gleichzeitig stört es die Wärmeabgabe und sorgt sogar für eine zusätzlich Erwärmung der Leiterbahn.
Ja wir haben das alle schon gemacht, aber es ist totaler Blödsinn.

Ich habe mal Leiterbahnen durch Kupferblech 0.1mm verstärkt und so sollte es auch Wirkung zeigen. Auch ein aufgelöteter Kupferdraht ist noch um Welten besser als verzinnen.

Gruss
Harry
You must be logged in or your permissions are to low to see this Attachment(s).
  • 1
  • 2
  • 3
  • Page 1 of 3
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   139   153 · Page-Gen-Time: 0.052895s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI