# TI MSP430

De TI MSP430 is een RISC-gebaseerde microcontroller (MCU) van Texas Instruments. De 16 bit-processor is speciaal ontworpen voor een laag energieverbruik. De processor is van het type mixed signal processor (MSP) en accepteert dus zowel analoge als digitale invoersignalen.

## Energieverbruik

De microcontroller is ontworpen voor toepassing in apparaten die zeer weinig elektrische energie verbruiken. Door het lage energieverbruik van de controller zelf, kan deze ook toegepast worden in apparaten die uitsluitend op batterijvoeding werken. Het verbruik bedraagt enkele milliampères, afhankelijk van de toepassing. Om het energieverbruik te beperken heeft de MSP430 een regelbare klok en een slaap-modus.

### Kloksysteem

De hoofdklok bepaalt de maximale kloksnelheid van de microprocessor. Bij de eerste serie heeft deze een frequentie van 8 MHz, bij series met een hoger nummer is ook de kloksnelheid hoger, tot 25 MHz in series 5 en 6. Om het energieverbruik te minimaliseren werken functies die geen hoge kloksnelheid vragen op een lagere frequentie. De microprocessor gebruikt dus verschillende kloksnelheden. Indien de microcontroller niet intensief gebruikt wordt, kunnen de niet gebruikte klokken worden uitgezet.

### Wake-up

De microcontroller kent een slaapmodus, met een stroom van minder dan 1 microampère, waarbij de randapparatuur doorwerkt maar de centrale verwerkingseenheid is uitgeschakeld zolang er geen data hoeven te worden verwerkt. Als het apparaat erom vraagt kan de controller binnen 1µs weer volledig operationeel zijn (de controller heeft een onmiddellijke wake-up van minder dan 1µs).

## Geheugen

De MSP430 kan met verschillende soorten geheugen zijn uitgerust. Het toegepaste geheugen wordt vermeld in het typenummer:
* "C" staat voor masker-ROM en is door de producent voorgeprogrammeerd;
* "F" staat voor Flash, universeel, niet-vluchtig geheugen;
* "FR" voor FRAM (Ferroelectric RAM), dat veel sneller is dan Flash en minder energie verbruikt;
* "G" staat voor Flash Value Line, de goedkoopste variant;
* "L" staat voor RAM, een geheugentype dat de inhoud verliest als de spanning wordt onderbroken.
Bij de MSP430 worden het programma en de data in hetzelfde geheugen opgeslagen. De chip heeft geen memory bus en het beschikbare geheugen is dus gelimiteerd aan het chipgeheugen. De hoeveelheid geheugen verschilt per type en is maximaal 256 KB Flash- en 18 KB RAM-geheugen in de 5- en 6-series. Dit is meestal genoeg, maar bij het verwerken van veel data kan dit een beperking vormen. De werkingsspanning ligt tussen de 1,8 en 3,6 V.

## Communicatie protocol

In deze reeks microcontrollers heeft Texas Instruments het communicatieprotocol Spy-Bi-Wire (SBW) toegepast, een geserialiseerde variant van JTAG.

## MSP430-typen en naamgeving

Er zijn veel verschillende typen van de MSP430 met elk iets andere specificaties. De typenamen zijn logisch opgebouwd. Bij de aanduiding MSP430F5137 is dit bijvoorbeeld als volgt:
* MSP430: de standaardprefix
* F: flashgeheugen. Zie onder Geheugen voor de andere typen.
* 5: het serienummer 5, met een frequentie tot 25MHz. Dit kan 1 t/m 6 zijn.
* 1: het generatienummer binnen de serie.
* 37: het nummer dat de geheugenconfiguratie aangeeft.

## Energiebeheer

Voor een maximale batterijlevensduur moet het energieverbruik worden geminimaliseerd. Er zijn vier soorten verbruik:

### Standby-verbruik

Wanneer de microcontroller in stand-by staat zal deze zeer weinig energie verbruiken. Het terugbrengen van de microcontroller in actieve toestand duurt slechts kort, waarna de cpu opnieuw data kan verwerken.
De stand-bymodus heeft de volgende mogelijkheden en eigenschappen:
* Automatische ontwaking op tijdsinterval: de microcontroller heeft een realtimeklok (RTC) die in een stand-bymodus loopt en het mogelijk maakt om de microcontroller na een specifiek tijdsinterval automatisch een wake-up te geven.
* RAM behouden tijdens stand-by: het behouden van de in het RAM opgeslagen informatie gedurende de stand-bymodus maakt het mogelijk om de microcontroller snel te starten zonder de opstartcode die veel energie vraagt. Dit spaart energie en tijd.
* Interruptmogelijkheden: de microcontroller kan bepaalde randapparaten in stand-bymodus ingeschakeld laten waardoor de microcontroller bij een interrupt, zoals een UART-commando, snel kan ontwaken.
* Spanningscontrole: Brownout Reset (BOR) en Supply Voltage Supervisor (SVS) zijn belangrijke circuits die de betrouwbaarheid van de microcontroller vergroten. Storingen en onderbrekingen in de voeding van de microcontroller kunnen de betrouwbaarheid van de operatie negatief beïnvloeden. Na een plotselinge of te grote daling van de spanning volgt automatisch een reset.
* Temperatuur: Bij een hogere temperatuur zal het halfgeleidend materiaal meer lekstroom vertonen en daardoor meer verbruiken.

### Energieverbruik door randapparatuur

Indien er randapparatuur wordt aangesloten op de MSP430 zal deze hiervan data moeten verwerken en mogelijk uitkomsten terugsturen. Dit vraagt energie en kan geoptimaliseerd worden door bijvoorbeeld de mcu minder of efficiënter data te laten verwerken.

### Energieverbruik door het geheugen

RAM- en Flashgeheugen kunnen alleen data vasthouden als ze onder spanning blijven. Het energieverbruik is afhankelijk van de frequentie waarmee data worden geschreven en de hoeveelheid te bewaren data.

### Actief energieverbruik

Het actieve energieverbruik is elektrische energie die de processor verbruikt bij het verwerken van data. Die kan geminimaliseerd worden door optimale programma's voor de microcontroller te schrijven.

## Toepassingen

De MSP430 kan geïmplementeerd worden in een netwerk waarbij draadloos moet worden gecommuniceerd zoals bijvoorbeeld bij een sensornetwerk. Deze chip kan ook dienen in de medische sector, bijvoorbeeld in compacte meettoestellen. Ook capacitieve aanraakscherm-interfaces kunnen worden ondersteund met de MSP430 door gebruik te maken van zijn oscillatoren. Verder wordt deze chip gebruikt in fitnessapparaten, zoals hartslagmeters, en bij het regelen van motoren zoals in printers en speelgoed.
De chip wordt toegepast in compacte toepassingen die gewoonlijk niet veel mogen verbruiken, omdat deze op batterijen werken en de capaciteit dus beperkt is.
Er zijn tegenwoordig modules die de implementatie van deze microcontroller eenvoudig maken. Een voorbeeld hiervan is de WizziKit. Hierbij kunnen externe apparaten worden aangesloten en kan er met JTAG en UART worden gewerkt.

## Externe link

* (en) MSP430 op de website van Texas Instruments
* (en) voorbeeld van een MSP430 module om zelf van start te gaan