Der MSP430-Tread II

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

manuel
Beiträge: 765
Registriert: Fr 7. Feb 2014, 00:14

Re: Der MSP430-Tread II

Beitrag von manuel »

Hi,

das mit dem alignment hab ich in meinen Projekten wo ich das rauskopiert hab sogar drinn :) Aber man bekommt nur ein "warning", weil das alignment zu groß ist. Die obergrenze ist bei 2 bytes, weil es keinen größeren Datentyp gibt. Obwohl, long gibts doch auch ? :?

So schaut das dann aus:

./wbus/wbus_server.c:160:13: warning: alignment of †˜seq_data†™ is greater than maximum object file alignment. Using 2 [enabled by default]

Ersetze seq_data mit "meine_daten"

Grüße,
Manuel
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Der MSP430-Tread II

Beitrag von Fritzler »

Das is komisch, ich verwende das Attribut um L1 Tabellen für MMUs zu alignen.
Da macht der Compiler das auch und wirft kein Warning.
Würde er nicht alignen, dann würde die MMU nicht funktionieren.
static unsigned int l1_table[4096] __attribute__((aligned(4096 * 4)));
manuel
Beiträge: 765
Registriert: Fr 7. Feb 2014, 00:14

Re: Der MSP430-Tread II

Beitrag von manuel »

Hi Fritzler,

merkst was ? Der MSP430 hat keine MMU. :D

Grüße,
Manuel
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Der MSP430-Tread II

Beitrag von Fritzler »

Türlich merk ich was, aber das ist dem Compiler doch egal. :lol:
Hab nur nen Anwendungsfall gegeben und dass der Compiler das dann auch macht.

Die Fehlermeldung von manuel ist in der Tat komisch.
Google sagt, fixen durch das setzen eines defines:
#define MAX_OFILE_ALIGNMENT 256

Ansonsten hier noch was von den AVRs, aber ließe sich auch aufn MSP GCC anwenden:
http://www.avrfreaks.net/index.php?name ... ic&t=65874
Benutzeravatar
Kuddel
Beiträge: 5074
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der MSP430-Tread II

Beitrag von Kuddel »

Das mit dem Flash war ja inzwischen gelöst.
Ich würde gerne noch mal die eigentlich Frage in den Vordergrund stellen: Ein viel zu hoher Stromverbrauch.
Kuddel hat geschrieben:Ich muss da noch eine Frage stellen:
Der MSP430 hat doch so einen herrlich niedrigen Stromverbrauch. Habe jetzt mal den MSP vom Launchpad runtergenommen und mitsamt Display etc. auf ein Breadboard geklemmt. Ergebnis: 0,63 mA.
Der MSP läuft auf 32kHz-Quarz, der schwingt auch, und ist auch so initialialisiert (BCSCTL3|=XCAP_3;). Ziehe ich den Quarz ab, bleibt der Prozessor stehen.
Die Peripherie baucht nur 0,1 mA, habe auch jeden Pin mal abgesteckt, scheint auch kein Fehler drin zu sein.
Der Stromverbrauch sollte doch wesentlich niedriger sein, oder liege ich falsch?
Gruß
Kuddel
manuel
Beiträge: 765
Registriert: Fr 7. Feb 2014, 00:14

Re: Der MSP430-Tread II

Beitrag von manuel »

Hallo,

@Fritzler: Man könnte den MSP430 GCC maintainern die Änderung von dem define ja mal vorschlagen. Aber wenn was mit ARM gcc geht kann man nicht wirklich Rückschlüsse auf MSP430 machen.

@Kuddel: Wie ich schon geschrieben hatte, es gibt ne ganze latte "sleep" modi. Ich denke auch nicht das es mit Quartz ziehen getan ist. Probiermal den niedrigsten low power modus. Es gibt macros die das machen:

LPMx : in modi "x" schlafen gehen.
LPMx_EXIT : aus modi "x" aufwachen.

Und x geht von 0 bis 3 oder 4, weiß nimmer genau. Je nach dem sind mehr oder weniger peripherie geräte noch an oder aus.

Grüße,
Manuel
Benutzeravatar
Kuddel
Beiträge: 5074
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der MSP430-Tread II

Beitrag von Kuddel »

Sleep geht doch nicht, weil ich ja das LCD mit 60 bis 100 Hz antreiben muss.
Gruß
Kudel
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Der MSP430-Tread II

Beitrag von Fritzler »

War denn das Strommessen mit angeschlossenem Display?
Alle ungenutzen Eingänge per internem Pullup auf HIGH gezogen?
Gemessen mit nem normalen Multimeter? Miss doch mal den Spannungsabfall über nen Widerstand per Oszi, wegen Stromspitzen.
Lass das Programm intern mal in einer Endlosschleife laufen, sodass keine Portpins toggeln.
Bei CMOS frisst ja die Leveländerung Strom, also jedes Portpinwackeln frisst Strom, auch wenn das LCD nicht dranne hängt.

Zudem ist das ja sicherlich die Stromangabe für den CPU kern im Datenblatt?
Perepherie will ja auch noch Strom, gibts also nen Register um Perepherie vom Strom zu trennen?
Bei den neuen AVRs und einigen kleinen ARMs gibts das jedenfalls.

Die LCD Ansteuerung kenn ich jetzt nicht, aber zwischendurch sollte doch sicherlich immermal Zeit sein die CPU schlafen zu legen?
Benutzeravatar
Kuddel
Beiträge: 5074
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der MSP430-Tread II

Beitrag von Kuddel »

Laut Datenblatt bin ich bei 1 Mhz bei 0,2mA. Bei 32 kHz kann ich nix genaues finden, aber eben entsprechend weniger. Die Peripherie bringt max 0,1mA (gemessen).
Das mit der Endlosschleife kann ich mal programmieren. Gbts beim MSP430 eine Funktion "Alle Interrupts stoppen, ähnlich "CLI"?
Welchen Hintergrund hat das "Alle ungenutzen Eingänge per internem Pullup auf HIGH gezogen?"? Ich habe zwei keine ungenutzen Pins, aber ich glaube, in diese Richtung muss ich suchen.
Gruß
Kuddel
manuel
Beiträge: 765
Registriert: Fr 7. Feb 2014, 00:14

Re: Der MSP430-Tread II

Beitrag von manuel »

Hallo Kuddel,

ACLK ist bis LPM3 active, und ACLK kann mit Sicherheit für deine LCD Signalgeneration verwendet werden. 100 Hertz ist doch keine Frequenz für einen uC, zwischen den Flanken ist eine Ewigkeit von Schlaf möglich.

Alle interrupts stoppen geht mit dint(); interrupts einschalten: eint();

Grüße,
Manuel
Benutzeravatar
Kuddel
Beiträge: 5074
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der MSP430-Tread II

Beitrag von Kuddel »

So, habe mal den MSP430 ohne jeglicher Peripherie (Display, Taster etc) betrieben. Dann zusätzlich ohne Interupt und mit Endlosschleife. Keine Änderung. Mal abgesehen davon, dass nach dem zurückstecken irgendwas schief lief und nun nix mehr geht. Egal, nicht mehr heute.
Gruß
Kuddel
Benutzeravatar
Kuddel
Beiträge: 5074
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der MSP430-Tread II

Beitrag von Kuddel »

Heute noch getestet: Messung mit dem Oszilloskop. Keine Änderung: Das Moped zieht 0,53 mA.
Gruß
Kuddel
Edit: Sleepmodus bringt auch nicht soo viel. Immer noch über 0,1mA. Habe ich was übersehen? Muss ich irgendwelche Module speziell abschalten?
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Der MSP430-Tread II

Beitrag von Fritzler »

Hatte doch oben schonmal gesagt, dass das nur für den Kern gilt.
Perepherie sollte sich mit irgendwelchen Stromsparregistern abschalten lassen.
Benutzeravatar
Kuddel
Beiträge: 5074
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der MSP430-Tread II

Beitrag von Kuddel »

Fritzler hat geschrieben:Hatte doch oben schonmal gesagt, dass das nur für den Kern gilt.
Perepherie sollte sich mit irgendwelchen Stromsparregistern abschalten lassen.
Soweit ist das klar. Aber ich bin weit ab von den Werten im Datenblatt.
Gruß
Kuddel
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Der MSP430-Tread II

Beitrag von Fritzler »

Ist denn der Brownout detector an?
Die Dinger ziehen auch nett Strom.
manuel
Beiträge: 765
Registriert: Fr 7. Feb 2014, 00:14

Re: Der MSP430-Tread II

Beitrag von manuel »

Hallo,

also, ich weiß ned wie oft ich das versuchen soll noch zu erklären. Ich versuchs a letztes mal. Der MSP430 verbraucht erst dann weniger Strom wenn man ihn in den entsprechenden niedrig verbrauch Modus schickt. Quartz abziehen, Endlosschleife, das ist alles Moppelkotze. Lies mal die Anleitung, da steht drinn welche register wie gesetzt werden müssen damit die verschiedenen Module runtergefahren werden. Das kann einem aber alles völlig egal sein, weil man gleich die Compiler eingebaute Funktion LPM0, LPM1, LPM2, LPM3 oder LPM4 Funktion verwenden kann. So schwer ist das nu wirklich nicht die 4 Buchstaben in den source code einzubauen :D
Sleep geht doch nicht, weil ich ja das LCD mit 60 bis 100 Hz antreiben muss.
Diese Aussage ergibt keinen Sinn. Man kann den LPM3 sleep modus verwenden, mit diesem läuft ACLK und entsprechende Timer zum generieren vom 60 Hz Takt. Daran kann man eine ISR koppeln um das LCD glücklich zu machen. Mir fällt jetzt auch kein anderer uC mit weniger Stromspargedöhns ein auf dem das nicht funktionieren würde. :?

Grüße,
Manuel
Benutzeravatar
Kuddel
Beiträge: 5074
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der MSP430-Tread II

Beitrag von Kuddel »

manuel hat geschrieben:Hallo,
also, ich weiß ned wie oft ich das versuchen soll noch zu erklären. Ich versuchs a letztes mal
Bitte die Tonlage wahren. Ich habe alle Stromsparmodi ausprobiert. Habe ich doch auch geschrieben.
Er verbraucht mehr, als im Datenblatt angegeben. Weitaus mehr. AUCH im Stromsparmodus. Alle Stromsparmodi. Auch im Tiefschlaf immer noch 0,2mA. Er soll aber laut Datenblatt bei 1Mhz OHNE Stromsparmodi nur 0,2mA ziehen. Oder ist "aktive mode" ein Stromsparmodus?
Der brown out (ist das nicht nur ein Schmitt-Trigger, der den reset bei x Volt anzieht?) wird kaum mehr als einige µA ziehen, oder?
Mir nützt es nichts, hier wild rumzubasteln, ohne zu verstehen, warum und was passiert. Vielleicht lese ich ja das Datenblatt auch falsch.

Werde das Projekt erstmal anhalten und mir Literatur zu dem Thema durchlesen. Inzwischen ist auch die Platine fast fertig, da kann ich passend einen Stopp einlegen.
Gruß
Kuddel
Benutzeravatar
xoexlepox
Beiträge: 4814
Registriert: So 11. Aug 2013, 19:28
Wohnort: So etwa in der Mitte

Re: Der MSP430-Tread II

Beitrag von xoexlepox »

Kuddel hat geschrieben:Ich habe alle Stromsparmodi ausprobiert.
Ääääh, mal n'e ganz blöde Frage: Du hast nicht zufälligerweise irgendwelche Spannungteiler (um die Spannungen an den Analogeingängen anzupassen) in der Schaltung? Mit einer gewissen Betriebsblindheit habe ich es mal geschafft, eine Schaltung zu entwickeln, die einen Akku vor Tiefentladung schützen sollte. Leider lag der Teiler zu Spannungsmessung vor der Anschalteinrichtung und hat trotz Abschaltung damit den Akku tiefentladen :cry:
Tobi
Beiträge: 821
Registriert: So 11. Aug 2013, 16:52
Wohnort: Eschweiler

Re: Der MSP430-Tread II

Beitrag von Tobi »

xoexlepox hat geschrieben: Leider lag der Teiler zu Spannungsmessung vor der Anschalteinrichtung und hat trotz Abschaltung damit den Akku tiefentladen :cry:
Ich muss gerade an ein Elektro-Dreirad denken... :mrgreen:
Benutzeravatar
Finger
Administrator
Beiträge: 7392
Registriert: Di 12. Jun 2012, 20:16
Kontaktdaten:

Re: Der MSP430-Tread II

Beitrag von Finger »

Ich muss zugeben, auch eine Weile zu grübeln gemusst zu haben. Des Rätsels Lösung waren schliesslich Kriechströme im Fädeldrahtverhau. Anhauchen trieb die Stomaufnahme um Faktor 10 nach oben...
Benutzeravatar
Bastelbruder
Beiträge: 11482
Registriert: Mi 14. Aug 2013, 18:28

Re: Der MSP430-Tread II

Beitrag von Bastelbruder »

Bruzzelzinn?

Kürzlich durfte ich einen Prüfstand kalibrieren, bei der Strommessung wurden verschiedene Offsetwerte in Abhängigkeit von der Betriebsspannung eingebaut. Der Konstrukteur hat sogar den üblichen Eigenbau-Meßverstärker durch einen teuren INA... ersetzt und der Fehler war vor 10 Jahren nicht wegzukriegen.
Kurzes Kopfrechnen 14V÷70µA ergibt 200kΩ, das Ohmmeter an den Prüflingsanschlüssen zeigt.. 200,0 kΩ :shock:
Zuletzt geändert von Bastelbruder am Sa 15. Mär 2014, 11:13, insgesamt 1-mal geändert.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Der MSP430-Tread II

Beitrag von Fritzler »

DAS ist doch mal ne schöne Fehlerursache :lol:
BeAalt den Kuddel doch mal mit Steckbrettern zum Entwickeln :twisted:
Benutzeravatar
Kuddel
Beiträge: 5074
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der MSP430-Tread II

Beitrag von Kuddel »

Ich habe ein Steckbrett. Aber der MSP ist TSOPirgendwas oder so. Etwa 4x6mm groß. 20polig. Da musste ich mit Fädeldraht ran, um das Ding auf eine DIL-Fassung zu löten. Die Bilder dazu gibts hier irgendwo im Forum. Obgleich das ganz gut ging, bleiben natürlich solche Kriechstrecken nicht aus.
Gruß
Kuddel
Benutzeravatar
flogerass
Beiträge: 1145
Registriert: Mo 12. Aug 2013, 17:46
Wohnort: Nord-Östlich von Ulm

Re: Der MSP430-Tread II

Beitrag von flogerass »

Kuddel hat geschrieben:Oder ist "aktive mode" ein Stromsparmodus?
Ich kenne nur "aktive halt" und das ist ein Stromsparmodus.
Kuddel hat geschrieben: Der brown out (ist das nicht nur ein Schmitt-Trigger, der den reset bei x Volt anzieht?) wird kaum mehr als einige µA ziehen, oder?
Der Brownout zieht richtig viel Strom weil er eine halbwegs genaue Spannungsreferenz braucht, und die gibts nicht für umsonst.
Benutzeravatar
Kuddel
Beiträge: 5074
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der MSP430-Tread II

Beitrag von Kuddel »

Kleine Zwischenmeldung:
Bin diese Woche mal wieder zu diesem Projekt gekommen. Oh man, die Projektpausen ziehen sowas echt in die Länge.
Also: Platine ist fertig. Alles eingelötet und Platine gereinigt etc, damit keine Kriechströme da sind. Auch den Code mal ein wenig bereinigt und mit Stromsparmodi gespielt. Aber der hohe Stromverbrauch bleibt. Bin jetzt bei fast leerer Batterie bei 0,25 mA.
Zum Thema Stromsparmodus: Die Taktquelle hat 32 kHz. Das Display wird mit 100 Hz betrieben. Ich muss also 100 mal pro Sekunde mindestens 8 Schaltvorgänge machen. Da kommt der Stromsparmodi wenig zum tragen.
Die Schaltung selber hat nur 4 Widerstände mit 500 k, da kann ich noch auf 1M Ohm gehen. Bringt aber nicht wirklich viel.

Was ich noch gesehen habe: Die interne Temperaturmessung braucht richtig viel. Ich werde noch mal sehen, ob ich die ausschalten und nur einmal pro Minute kurz anschalten kann. Damit kriege ich die Laufzeit pro Batterie vielleicht auf kanpp ein Jahr. Zum vergleich: Die Originalschaltung braucht (nur Displaybetrieb) 0,003 mA.
Gruß
Kuddel
Benutzeravatar
Kuddel
Beiträge: 5074
Registriert: Fr 28. Jun 2013, 10:56
Wohnort: Denk immer an St. Alamo!

Re: Der MSP430-Tread II

Beitrag von Kuddel »

Sooo,hier endlich mal das Endergebnis:
Diese Teile habe ich von jemanden hier aus dem Forum bekommen (zwei Platinen nur zur Ansicht, um Vorder- und Rückseite zu zeigen):
temp00.jpg
Es ist ein Temperaturlogger, der nach dem Loggen die Daten auf USB ausgibt. Die Elektronik simuliert einen USB-Stick, der eine pdf mit den gesammelten Daten enthält. Sehr chic.
Allerdings kann man von den Chips wirklich nix verwenden. Sie sind mit einer Verschlüsselung gesichert.Damn!
Also bauen wir halt alles neu. Wiederverwendet werden: Das Gehäuse (mit dem netten USB-Kabel dran), die Taster, die Batterie, das nackte Display mit Zebragummi und ein Quarz.
Hier das Ergebnis:
temp03.jpg
Ich wollte nicht auch noch das USB-Protokoll verbauen. Also kommt ein Trick (siehe Bild):
Erzeugt wird das PS2-Protokoll, welches Tasteneingaben der gesammelten Temperaturen erzeugen. Das Signal wird auf den USB-Stecker gegeben. Das wiederum kommt in den USB- auf PS2-Adapter. Der wird dann in einen PS2-auf USB-Konverter geben und erzeugt ein USB-Signal auf einem USB-Stecker. Der wird dann in einen USB-Eingang vomPC gegeben.

So sieht das ganze fertig aus:
temp01.jpg
Gruß
Kuddel
Antworten