Hallo Leute!
Ich bin wirklich verzweifelt!!!
Ich muss am Montag meine Schaltung präsentieren und habe ein riesen
Problem mit dem Clock-Modul!
Ich hatte hier schonmal reingeschrieben - unterm Strich kam raus, dass
vielleicht der MSP oder der Quarz nen Schuss hat.
Aber nun ist beides NEU! Es kann nicht am Quarz liegen und am MSP daher
auch nicht.
Folgendes Problem:
Ich benutze einen MSP430F2418 und habe an ihm zwei Quarze.
Hauptquarz (System): 3.6864MHz
Uhrenquarz : 32.768kHz
Beide laufen, aber der Stromverbrauch des MSPs liegt über 2mA!!! Das
darf nicht sein, denn die Schaltung darf maximal 3,8mA verbauchen und
das kann ich mit dem Verbrauch vom uC nicht mehr gewährleisten.
Laut Datenblatt darf der MSP lange nicht soviel verbrauchen - ich habe
zum Test schonmal den Haupttakt durch zwei geteilt, arbeite also nurnoch
mit 1.8432MHz - der Verbrauch ist trotzdem zu hoch.
Mit 3.6864MHz liegt der Verbrauch meiner gesamten Schaltung bei ca.
4,6mA
Mit 1.8432MHz ist er immernoch bei 4,07mA
Damals hatte ich bereits herausgefunden, dass wenn ich den 32kHz-Quarz
von Anfang an nicht anschließe, der Verbrauch selbst mit dem 3MHz Quarz
bei ca. 700uA liegt.
Wenn ich mich nun den Pins vom Uhrenquarz genähert habe, dann stieg der
Verbrauch schlagartig auf über 2mA an und blieb auch da bis zum Reset.
Die Schaltung damals war noch auf 'nem Steckbrett, daher bestand noch
die Möglichkeit, dass das vielleicht für den extremen Stromverbrauch
verantwortlich war - aber nun ist es auf ner Platine - mit minimalen
Abständen.
Ich denke daher, dass es an meiner Initialisierung liegt - kann da mal
bitte eine drüber gucken? Ich bin sowas von verzweifelt!!!!!!
1
voidconfigure_clock_module(void)
2
{
3
// Initialization of clock source - Crystal 1.8432 MHz
4
5
// BCSCTL1: BASIC CLOCK SYSTEM CONTROL REGISTER 1
6
// XT2OFF: XT2 oscillator (bit cleared: XT2 is now active)
Wie misst du denn? Bzw. wie kommst du drauf, das der Microcontroller 2mA
"verbraucht", und nicht eventuell andere Komponenten, die an ihn
angeschlossen sind?
Poste am besten mal deinen Schaltplan, und zusätzlich am besten das
Layout (interessant sind ja auch Pins, die du nicht verwendest: wie sind
diese beschaltet?) Alternativ ein Link zum alten Thread falls dies dort
schon enthalten.
Nicht benutzte Pins sind auf Ausgang->low geschaltet.
Habe es aber auch schon in allen anderen Varianten probiert - Pins als
Eingang mit und ohne Pull-Up...
Alle Pins werden initialisiert und auf richtigen Pegel gebracht.
Ein USCI Modul wird geteilt auf zwei verschiedene EEPROMs und ein LCD,
aber auch da sind alle CSs richtig, es sind nie Zustände vorhanden, wo
irgendwas kurzgeschlossen wird oder ähnliches.
Die anderen USCIs sind jeweils für ein Modul.
Den Stromverbrauch messe ich ausschließlich am uC, habe einen Jumper
zwischen Versorgung und uC, wo ich ein Multimeter eingeschleift habe
(Yokogawa, kein Conrad-Multimeter). Der Jumper ist eigentlich für
Programmieren und Betrieb, damit keine Spannung vom Programmer an
Spannungsreglern in falscher Potentialrichtung anliegt.
Ich habe mitlerweile echt schon alles probiert....
Das seltsame ist halt, dass gerade der super-sparsame Oszillator mit dem
32kHz Quarz den Strom wegsaugt. Ohne ihn geht es, bis man sich halt dem
Pin nähert oder ihn ggf. anfasst.
Der ganze Betrieb und Zusammenbau erfolgte immer unter ESD-Schutz! Das
jetzt schon wieder genau dasselbe kaputt sein könnte, halte ich für
unwahrscheinlich - da ist nichts kaputt.
Hast du mal probiert, parallel zum Uhrenquarz einen 1M Widerstand zu
schalten? Ich hatte mal ähnliche komische Effekte mit dem LF Oszillator
am MSP. Dabei kam´s zwar nicht auf den Stromverbrauch an, aber bei
Näherung oder gar Berührung ist der völlig ausgerastet.
So, hab mal ein paar Bilder angehängt.
Auf dem Board sieht man, dass Quarz-Masseflächen von anderen getrennt
sind.
Auf dem Schaltplan sind beim Uhenquarz links zwar Kondensatoren
eingezeichnet, diese sind aber nicht bestückt, da ich die internen
verwenden wollte. Habe nur Platz für eine eventuele Nachbestückung frei
gelassen. ABER: Macht kein Unterschied (habe die in Software dann
natürlich entfernt).
wenn ich mich nicht irre, ist gut möglich habe das Datenblatt nicht vor
mir, sind die Kondensatoren im Code nicht Physikalisch vorhanden,
sondern du sagst dem uC mit was du die Oscillatoreingänge belastet.
schau dir diesen abschnitt doch nochmal im UserGuide an, ich werde mich
auch nochmal schlau machen.
Was ist mit WDTCTL?
Hast du den Watchdog-Timer deaktiviert?
Notfalls könntest du irgendein Beispielprogramm von der TI-Seite
ausprobieren und den Stromverbrauch testen.
codehamster schrieb:> sind die Kondensatoren im Code nicht Physikalisch vorhanden,> sondern du sagst dem uC mit was du die Oscillatoreingänge belastet
Schade - das hätte evtl. alles erklärt, im User's Guide steht
allerdings...(siehe Bild).
Schon mal geprüft ob das Übel von der Hardware oder der SW stammt?
Evtl. Takt anhalten und nur Strom messen? Evtl. muß auch der Aufbau
optimiert / abgeschirmt werden?
Das Übel ist dieser Uhrenquarz. An der Hardware wird es nicht liegen -
als es noch auf dem Steckbrett war OK, aber jetzt auf der Platine nicht
mehr - da lief schon so manch übleres...
Wenn ich beim Debuggen anhalte, dann ist der Strom nahe Null. Es sind
rein die Oszillatoren, welche den Strom verbrauchen. Ich probiere ja nun
auch schon ewig herum...erst mit Kontakt, bzw. Beschaltung des
LOW-Frequency_oszillators beginnt der Spuk.
Martin schrieb:> Hast du XTS in BCSCTL1 auf 0 (Low frequency mode) gestellt?
Das ist beim Start auf Low - aber auch wenn ich es explizit auf Low
stelle, dann ändert sich..............................nichts.
Der Stromverbrauch wurde auch ohne Debugger gemessen? Zumindest beim
MSP430-FET ist es so, dass der Stromverbrauch wesentlich höher ist, wenn
der Debugger angesteckt ist. Zieht man das Teil ab und resetet den
Controller fällt der Stromverbauch auf ein erträgliches Maß zurück. Das
schon probiert?
Hannes H. schrieb:> Das schon probiert?
Ja klar, daran liegts leider auch nicht. Bei mir ist es sogar umgekehrt,
wenn der dran ist, dann ist's weniger.
Ich habe alles so initialisiert wie oben im C-Text. Dass ist das, was
ich dem User's Guide entnehmen konnte. Dass da irgendwas nicht stimmt,
ist mir ja bewusst. Ich hoffe, ch habe einfach irgendwas vergessen!
Hängt einer der Eingänge auf halbem Potiential zwischen 0V und VCC?
In diesem Fall ist ein CMOS-Gatter im linearen Bereich in dem ein
Querstom von VCC nach Masse fließt.
Helmut S. schrieb:> Hängt einer der Eingänge auf halbem Potiential zwischen 0V und VCC?> In diesem Fall ist ein CMOS-Gatter im linearen Bereich in dem ein> Querstom von VCC nach Masse fließt.
Nein! Alle auf Ausgang und low. Auch Pins wie Veref+ und Veref- sind
nach Datenblatt verschaltet.
Wirkliche Eingänge habe ich nur 3 Taster und eine andere Leitung - alle
haben Pull-Ups.
Ausschließlich der SVS ist ein Eingang, an dem 1,5V anliegen, aber der
ist ja dafür gemacht.
Nur eine Intuition, ohne irgendwelche Begründung:
Hast Du das Quarzgehäuse tatsächlich angelötet? Also, wie im Schaltplan
gezeigt an Masse gelegt? Wenn ja, versuchs mal bitte ohne.
Simon K. schrieb:> Versuch doch mal statt hart Masse einen internen Pullup zu aktivieren.> Möglicherweise fließt da durch den Ausgang irgendwo Strom?
Statt hart Masse einen Pull-Up?
Ich habe sie nicht an Masse verbunden. Sie sind offen, aber habe ja
schon alles probiert - Eingänge mit Pull-Up/Down, sowohl SW wie auch HW.
Und halt auch Ausgang.
Was ist denn mit dem internen RC-Oszillator - vielleicht liegt es daran,
kann mir da nicht einer noch näheres zu sagen?
Läuft der LFXT1?
Schon im Device Erratasheet
http://focus.ti.com/lit/er/slaz033g/slaz033g.pdf nachgesehen ob es ein
Problem mit dem Quarzoszillator geben könnte, eventuell XOSC8 bei einem
Quarz mit ESR unter 40 kiloohm?
Stefan schrieb:> Läuft der LFXT1?
JA, der läuft einwandfrei. Ich habe einen Zeitzähler in meiner
Schaltung, der auf dem XT1 basiert. Die Sekunden sind auch nach mehreren
Tagen noch exakt.