Hallo Zusammen, wie würdet Ihr die Rechenleistung eines Atmega mit einem MSP430 bei gleicher Taktfrequenz bewerten? Der Atmega ist ein 8 Bit Prozessor, der MSP ein 16 Bit Prozessor.
Such mal das Dokument "AVR Competitive Analysis with MSP430" von den Atmel Leuten. IMHO kann man Programme schreiben, die auf dem einen µC besser aussehen als auf dem anderen µC. Wer was ist, hängt vom Schreiber ab :)
Wenn das Paper von Atmel ist, könnte es etwas tendenziös sein. Mich hätte die Meinung von jemandem interessiert, der beide Prozessoren kennt und in C programmiert.
Hier gibt es das Paper: http://www.prochild.co.kr/board/files/tb_6/TI_MSP430Competitive%20Analysis-Rev.3.doc Beim Avr sprechen sie von 16Mips, wohingegen der MSP430 nur 8 Mips erreicht. Ausserdem 20-30% größerer Code.
Meine Einschätzung - nur aus eigener Erfahrung, habe beide schon ausprobiert - ist folgende: Der AVR ist schneller, wenn es nicht ums Rechnen geht, sondern um möglichst schnelles Port-Toggeln für Bitbanging, und die meisten Dinge, sie sich mit bitweisen logischen Verknüpfungen abbilden lassen. Der MSP430 hat die Nase vorn, sobald mit größeren Zahlen gerechnet wird - das muß man ihm mit 16 Bit nunmal lassen - und besitzt eine überraschend gute Code-Effizienz. Es kann durchaus vorkommen, daß ein funktionsgleiches C-Programm auf dem MSP430 am Ende einige Bytes weniger Binärcode ergibt. Eine allgemeine Empfehlung geben kann man nicht, beide haben ihren Reiz und jeder seine eigenen Vorteile. Ich würde den AVR verwenden, wo es um Low-Level Sachen in "harter Echtzeit" geht und jede Mikrosekunde zählt, den MSP430 eher zur Meßwertverarbeitung oder für Regelungsgeschichten und so. Am Ende sind es jedoch meist andere Kriterien, die zur Wahl eines Mikros für ein bestimmtes Projekt bestimmend sind - Betriebsspannung, Peripherieausstattung... allein die A/D-Wandler von AVR und MSP430 sind grundlegend unterschiedlich. Der vom MSP ist wesentlich schneller, aber auch deutlich unruhiger, so daß man für brauchbare Ergebnisse mehr Aufwand treiben muß. Ich meine hier natürlich den ADC12, es gibt verschiedene Varianten, schon klar.
Texas Instruments hat (mindestens vor Jahren) die Information zum Compilerschreiben sehr restriktiv vergeben, deshalb ist die Auswahl an Compilern fuer den MSP430 sehr viel geringer. Ich hatte damals keine Lust auf IAR, und daher fiel der MSP420 flach, und ich waehlte den AVR. Heute gibt es mindestens noch Imagecraft fuer den MSP430.
Oh, es gibt auch MSPGCC, praktisch genauso brauchbar wie das Gegenstück beim AVR, und alternativ eine auf 16 kB limitierte Entwicklungssoftware von TI (eigener Compiler + IDE). Natürlich hat man die meiner Meinung nach ausgesprochen praktische Integration von AVR-GCC in das AVR Studio nur bei Atmel. TI hat leider nie Benühungen unternommen, MSPGCC in die eigene IDE einzubinden. Allerdings kann MSPGCC mit Eclipse benutzt werden, dazu gibt es eine Anleitung im Netz.
Vielen Dank für eure Hinweise. Da mir auf der Embedded-Systems das Launchpad in die Hände gefallen ist, kam ich nicht umhin, damit ein wenig zu spielen. Zuerst dachte ich der MSP430G2231 hätte einen Hardware Multiplier mit MAC, aber leider hatte ich zuerst mit dem IAR-Compiler für den falschen Typ kompiliert. Nachdem nun mein Testprogrämmchen läuft, wollte ich den Prozessor außerhalb des Launchpad testen. Aber: leider geht es nicht. Im Launchpad geht es. Mein Aufbau: Spannungsversorgung über eine Solarzelle mit 220uF geglättet und eine Piezo Speaker an Port 1.2. Also insgesamt nur 3 Pins angeschlossen. Weiß jemand, ob der MSP430 noch eine spezielle Reset-Konfiguration benötigt oder bzgl Spannungsversorgung empfindlich ist?
>Weiß jemand, ob der MSP430 noch eine spezielle Reset-Konfiguration >benötigt Reset muss halt auf high. >oder bzgl Spannungsversorgung empfindlich ist? Wieviel Volt hat du denn?
> http://www.prochild.co.kr/board/files/tb_6/TI_MSP430Competitive%20Analysis-Rev.3.doc Man sollte bei diesem Atmel-Paper nicht vergessen, das es alt ist. Z.B. ""There will be a megaAVR with LCD 1H 2002."" Mittlerweile kaufbar einzeln als ATMega169 oder auf Platine mit Display als Butterfly. oder: ""AVR is manufactured in a dense process, but still allowing 2.7-5.5V operation."" Das hat sich mit dem XMega auch erledigt, da ist bei 3.6V Schluß. Dafür fangen diverse AVR schon bei 1.8V an, der ATTiny43U dank integriertem Wandler schon bei 0.9V. Also, es hat sich einiges getan, auf der MSP430-Seite sicherlich auch, hab' das dort nicht so verfolgt. Und was ein Controller letztendlich zu leisten vermag, ist, von wenigen Aspekten abgesehen, weniger von der Architektur/Familie abhängig, sondern von den Fähigkeiten des Programmierers. Mit passend designten Code bekommt man jede CPU in den Kriechgang. ;-) Gruß Jadeclaw
Joerg S. schrieb >>Weiß jemand, ob der MSP430 noch eine spezielle Reset-Konfiguration >>benötigt >Reset muss halt auf high. Danke, das war's. Beim Attiny13 muss man den Reset nicht extern beschalten, dort zieht ein interner Pullup den Reset nach oben. Hier mein kleines Low-Power-Solar Projektchen: http://www.hobby-roboter.de/forum/viewtopic.php?f=5&t=43&p=528 Ich hatte gehofft, dass der MSP gegenüber dem Attiny13 bei noch geringeren Lichtverhältnissen los läuft. Ich habe festgestellt, das der Attiny13 noch bis zu einer Versorgungsspannung von 1.1V anläuft. Der Attiny13 läuft damit schon bei ziemlich schwachem Licht im Vergleich zum MSP430G2231 und ist damit für den Solarvogel im Vorteil. Vielleicht kann jemand von den Erfahrenen unter euch mal auf die Takteinstellung in meinem Programm schauen und sagen, ob ich einigermaßen das Minimum des Stromverbrauchs erwischt habe.
Der Attiny13 läuft nur mit 1 Volt, nur wenn der Brownout-Detektor abgeschaltet ist. Ob der ADC läuft ist die Frage. Beim Msp430 musst du auch den Brownout-Detektor deaktivieren, vielleicht klappt es dannn auch. Der neue MSP430L092 läuft schon ab 0.9 Volt [http://processors.wiki.ti.com/index.php/Low_Voltage_Microcontrollers_from_MSP430]
>Beim Msp430 musst du auch den Brownout-Detektor deaktivieren, vielleicht >klappt es dannn auch. Lässt sich meines wissens nicht deaktivieren. Der MSP hat ja auch keine Fuses, d.h. er müsste mindestens beim ersten Start mit aktiviertem BOR starten. Die neuen MSP430L/Cxx haben nur ROM! Vermutlich ist es einfach der Flash-Speicher der es notwendig macht erst mit höherer Spannung anzulaufen.
Kann durchaus sein. Dennoch ist der "L092" Typ technisch ganz interessant - Im Datenblatt wird erwähnt, daß er einen Loader enthält, der das Programm in einem internen 2K RAM lädt, und währenddessen über P1.2 eine Ladungspumpe bedient, um den externen seriellen EEPROM zu versorgen. Das ist vom Konzept her gar nicht so schlecht gedacht, allerdings sind wir wahrscheinlich von der tatsächlichen Erhältlichkeit dieser Mikros noch ein Stück weit entfernt. Es könnte unter Umständen Muster geben. Dennoch stellen sich bei niedrigen Betriebsspannungen plötzlich neue Fragen, zum Beispiel: "Wie bekomme ich eigentlich eine LED zum leuchten...?"
>"Wie bekomme ich eigentlich eine LED zum leuchten...?" Eventuell mit einer Ladungspumpe: http://www.elektronik-kompendium.de/sites/slt/0206161.htm Oder man bastelt einen ganz einfachen Step-Up-Converter http://de.wikipedia.org/wiki/Aufw%C3%A4rtswandler in dem man die Schaltpultze direkt mit dem MC erzeugt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.