Skip to content

Hardwaredesign mit Mikrocontrollern

Stromversorgung

Vorbetrachtungen

  • Eingangsspannungsbereich
    • Eingangsspannungsbereich des MSP430: 1.8 - 3.6 V
    • Aber auch Eingangsspannungsbereich andere Peripherie-Module sind zu beachten!
    • Meist wird eine Auftrennung nach 3.3 V und 5 V benötigt.
  • Auswahl der Batterietechnologie entsprechend des Stromverbrauchs und der Batterielaufzeit

Batterie- oder Akkumulatortechnologie

Super-Caps

  • Ganz schnell wiederaufladbar mit ganz einfacher Ladeschaltung
  • Nutzbar für hohe Betriebsströme
  • vergleichsweise geringe Kapazität bei großer Bauform
  • Formel zur Abschätzung der Laufzeit:

    \[ t = \frac{\Delta U \cdot C}{I} \]
  • Beispiel:

    \[ I = 20\,\mu\text{A},\quad \Delta U = 3.6\,\text{V}-1.8\,\text{V} = 1.8\,\text{V},\quad C = 1\,\text{F}\]
    \[ t = 90000\,\text{s} = 25\,\text{h} \]

    → Nur für kurze Überbrückungen der Stromversorgung bei kleinen Verbrauchern geeignet.

  • Wichtige Daten aus dem Datenblatt:
    • Maximale Ladespannung
    • Maximale Betriebsdauer
      SuperCaps entladen sich von selbst. Es fließt meist ein Leckstrom von wenigen Mikroampere.

alt: "Datenblatt eines SuperCap", src: "Datenblatt VINATech VEC3R0335QG", w:75

Batterien und Akkumulatoren des AA/AAA-Standard

  • Einfach austauschbar, überall erhältlich
  • Wiederaufladen der Akkus meist in einen externen Netzteil
  • Vergleichsweise geringe Zellspannung, Verwendung mehrere Batterien in Reihe ohne Probleme möglich
  • Kapazität einer AA-Batterie meist > 2000 mAh
  • Diese Kapazität wird jedoch nur erreicht, wenn die Batterie fast vollständig entladen wird

alt: "Entladekurve einer AA-Batterie", src:"Datenblatt Duracell MX1500", w:50
alt: "Beispiel eines Batteriefaches auf einer Platine", w:50

Lithium-Knopfzellen

  • In verschiedenen Baugrößen und Kapazitäten erhältlich
  • Auch als Akkumulator erhältlich, Laden meist in einen externen Ladegerät
  • Zellspannung beträgt meist 3 V. Bei Akkumulatoren meist sogar bis 4 V!
  • Verwenden eines Batteriehalters, der auf die Platine gelötet wird

alt: "Beispiel eines Batteriehalters für Knopfzellen", src: "Reichelt-Produktseite KZH20SMD", w:25

Lithium-Ionen- oder Lithium-Polymer-Akkumulatoren

  • sehr große Energiedichte! (ca. doppelte von AA-Batterien)
  • Zellspannung von 3.6 - 4.2 V
  • In sehr verschiedenen Größen und Kapazitäten erhältlich
  • Größere Bauformen kommen meist in einer Parallel- oder Reihenschaltung
  • Reihen- oder Parallelschaltungen nur vom Hersteller vorgenommen werden, Zellen müssen meist einzeln überwacht werden!
  • Ladeschaltung muss meist im Produkt verbaut werden
  • Folgende Komponenten für Batteriemanagement werden benötigt:
    • Ladeschaltung: Ladeschaltung mit constant current / constant voltage-Methode (maximal 4.2 V)
    • over discharge protection: Akkus dürfen maximal bis 2.5 V entladen werden.
    • short circuit protection: Der Ladestrom muss begrenzt werden.
    • Spannungswandler: Anpassen der Batteriespannung auf benötigte Betriebsspannung

Möglichkeiten der Spannungswandlung

  • Problem: Batteriespannung meist nicht konstant, Batteriespannung muss reduziert oder erhöht werden, um für die Schaltung passend zu sein.

Verpolungsschutz

  • Wenn die Batterie vom Nutzer eingelegt werden muss, sollte die Schaltung einen Verpolungsschutz besitzen.
  • Eine invertierte Eingangsspannung sorgt in der Regel für eine Zerstörung der Bauteile
    DS-Dioden eines CMOS-Inverters:
    alt: "Aufbau eines CMOS-Inverters", w: 25
  • Mögliche Lösung: Einbau einer Diode in den Strompfad
    • Idealerweise eine Schottky-Diode auf Grund der geringeren Durchflussspannung
    • Achtung: Eingangsspannungsbereich verändert sich, da ein zusätzlicher Spannungsfall von circa \(200\,\text{mV}\) hinzukommt
  • Link zum Kompendium zum Verpolungsschutz: http://www.lothar-miller.de/s9y/categories/39-Verpolschutz

alt: "Verpolungsschutz mit MOSFET", src: "http://www.lothar-miller.de/", w: 50

Lineare Spannungsregler

  • Lineare Spannungsregler liefern bei einer variablen Eingangsspannung eine feste Ausgangsspannung
  • Die Ausgangsspannung ist entweder durch den IC festgelegt oder kann durch eine Widerstandskombination frei definiert werden.
  • Beispiel:

alt: "LM317 als variable Spannungsquelle", w:50

\[ U_{\text{OUT}} = 1.25\,\text V \cdot \frac{R_2}{R_1} \]

alt: "LM7805 als 5 V-Festspannungsregler", w:50

  • Die Ausgangsspannung wird jedoch konstant gehalten, wenn gilt: \(U_E > U_A + U_{\text{Drop}}\), ansonsten fällt die Ausgangsspannung auf \(U_A = U_E-U_{\text{Drop}}\)
  • Am Beispiel des LM7805:
    \(U_\text{Drop} = 2\,\text{V}\), \(U_\text{Reg} = 5\,\text{V}\)

alt: "Idealisierte Kennlinie des LM7805", w:50

  • Stromfluss:

    \[ I_E = I_A + I_{\text{quiescent}} \]

    Für den LM7805 gilt: \(I_{\text{quiescent}} = 4.2 \,\text{mA}\)
    - Verlustleistung:

    \[ P_V \approx (U_E-U_A) \cdot I_A \]

    Je größer die Spannungsdifferenz, desto größer die Verlustleistung
    ggf. muss der Spannungsregler mit einen Kühlkörper versorgt werden
    - Deutlich besser für den Low-Power-Einsatz geeignet: Low Dropout Regulator (LDO)
    - z. B. MCP1700-3302
    \(I_{\text{quiescent}} = 1.6 \,\mu\text{A}\), \(U_{\text{Drop}} = 178\,\text{mV}\)
    Aber Achtung: \(U_{E, max} = 6\,\text V, I_{A, max} = 250\,\text{mA}\)

Buck-Converter

alt: "Aufbau eines Buck-Converter", src: "Wikipedia Commons", w:50

  • schaltender Gleichspannungswandler
  • Ziel: kleinere Ausgangsspannung \(U_A\) als Eingangsspannung \(U_E\) bei möglichst großem Wirkungsgrad
  • Steuerung des Schalters S durch Regelkreis, entsprechend der Ausgangsspannung
  • Erzeugen eines PWM-Signals durch den Schalter
  • Spule L und Kondesator C sorgen für einen konstanten Stromfluss / konstante Spannung am Ausgang, auch wenn der Schalter geöffnet ist
    → Deutlich erhöhter Schaltungsaufwand im Vergleich zu LDO
    → Low-Power-Anwendung meist sehr aufwendig erreichbar
    → Eher für große Spannungsdifferenzen und große Ströme gedacht!

Boost-Converter

alt: "Aufbau eines Boost-Converter", src: "Wikipedia Commons", w:50

  • schaltender Gleichstromwandler
  • Ziel: Erzeugen einer größeren Ausgangsspannung \(U_A\) als Eingangsspannung \(U_E\)
  • Nutzen der Selbstinduktionsspannung der Spule zum hochtransformieren der Spannung
  • Glätten der Ausgangsspannung durch einen Kondensator
    → Effektiver Weg eines Spannungsaufwärtswandlers auch für große Lasten
    → Anwendung: Betreiben eines Mikrocontrollers mit einer AA-Batterie
    → Geringe Ruheströme meist nur sehr aufwendig erreichbar

Ladungspumpen

alt: "Aufbau einer Ladungspumpe", src: "Wikipedia Commons", w: 50

  • Ziel: Vervielfachen der Eingangsspannung mit Hilfe einer Kondensatorschaltung

    \[U_A = 2 \cdot U_E - 2 \cdot U_D\]

→ Einfacher und günstiger Weg eine Spannungsaufwärtswandlung für kleine Lasten
→ z. B. Betreiben eines \(5\,\text V\)-LCD mit einem \(3.3\,\text V\)-Mikrocontroller

  • Verwenden eines Mikrocontroller-Pins zum Erzeugen der Rechtecksignals an C1
  • Verwenden des ACLK-Ausganges für die Erzeugung des Rechtecksignals

alt: "Pin Functions von P2.0, P2.1", src: "Datenblatt MSP430F2274 S. 53", w:75

Konfigurieren des P2.0 als ACLK-Ausgang

P2DIR |= BIT0;
P2SEL |= BIT0;

Fehlerquellen beim der Strommessung bei LPM-Anwendungen

  • Problem: Sehr große Dynamik des Stromverbrauchs: z.B. Messbereich \(100\,\text{nA}\) bis \(100\,\text{mA}\)
  • Grundprinzip der herkömmlichen Strommessung:
    • Verwenden eines Serienwiderstandes (Shunt) zur Wandelung des Stromes in einen kleine Spannungfall
    • Bürdenspannung (burden voltage) wird durch den ADC des Multimeters gemessen
    • Bürdenspannung bedeutet zusätzlichen Spannungsfall auf dem Messleitung
  • Beispiel für die Größe des Shunt-Widerstandes

alt: "Größe des Shunt-Widerstandes des Brymen BM235 Multimeter", src: "Dateblatt Brymen BM235", w:75

  • Was passiert, wenn der Mikrocontroller den LPM verlässt?
    • Vorher: \(I = 1\,\mu\text A\)\(R_S = 100\,\Omega\)\(\Delta U = 100\,\Omega \cdot 1\,\mu\text A = 100\,\mu\text V\)
    • Mikrocontroller verlässt den LPM und eine zusätzliche Last wird aktiviert, Multimeter kann Messbereich nicht schnell genug wechseln:
      \(I = 10\,\text{mA}\)\(\Delta U = 100\,\Omega \cdot 10\,\text{mA} = 1\,\text V\)
    • Es kommt für einen kurzes Zeitpunkt zu einen Spannungfall von \(1\,\text V\) über dem Messgerät, die Betriebspannung des MCU bricht zusammen → MCU resetet sich!
  • Mögliche Lösungen:
    • Verwenden eines größeren Messbereiches → niederohmiger Shunt
    • Automatisches Umschalten des Messbereiches vor dem Lastwechsel
    • Verwenden eines Vorverstärkers

alt: "EEVBlog µCurrent", src: "https://www.eevblog.com/", w: 50

Möglichkeiten der Datenausgabe

LEDs

Verwenden einzelner LEDs als Statusanzeige

  • Typischer Stromverbrauch einer LED: \(1 ... 20\,\text{mA}\)
  • Möglichkeiten zur Senkung des Stromverbrauchs:
    • LED-Statusanzeige muss durch Interaktion des Nutzers aktiviert werden
    • Heart-Beat-Anzeige:
      • LED wird immer nur für ein extrem kurzes Zeitintervall aktiviert
      • z. B. LED wird für \(1\,\text{ms}\) alle \(2\,\text s\) aktiviert
        → mittlerer Stromverbrauch: \(\overline I = 5\,\text{mA} \cdot \frac{1\,\text{ms}}{2\,\text s} = 2.5\,\mu\text A\)

Möglichkeiten des Multiplexing mehrere LEDs

  • LED-Matrix siehe Kapitel 6.3
    • Bei einer \(n\times m\)-Matrix werden \(n+m\) Pins benötigt
    • LEDs können entweder nur zeilen- oder spaltenweise angesteuert werden
    • Verwendung einer LED-Matrix erst ab \(3\times 3\) LEDs sinnvoll:
      9 LEDs können mit 6 Pins angesteuert werden
    • LED-Matrix nur für sehr große LED-Anzahlen sinnvoll
  • Verwenden der Charlieplexing-Methode
    • Mit \(N\) Pins eines Mikrocontrollers können \(N \cdot (N-1)\) LEDs angesteuert werden
    • Entwickler: Charlie Allen von Maxim Integrated
    • Beispiel mit \(3\) Pins → \(3 \cdot (3-1) = 6\) LEDs
      alt: "Aufbau einer Charlieplexing-Schaltung mit 3 LEDs", w: 50
    • Grundprinzip des Ansteuerns der LEDs:
      • Pin 1: H-Pegel, Ausgang
      • Pin 2: L-Pegel, Ausgang
      • Pin 3: Eingang (High-Z)
      • Vertauschen der Pins in allen Kombinationen → alle LEDs können angesteuert werden
    • Wichtig: Deaktivieren aller LEDs durch alle Pins auf Ausgang, Low
      Ansonsten: Floating Pins!

LCD

  • Liquid crystal display
  • Aufbau:
    alt: "Aufbau eines LCD", src: "https://www.leifiphysik.de", w:50
  • Ansteuern von nicht-gemultiplexten LCD (static drive)
    alt: "Schaltplan static LCD", src: "STMicroelectronic Application Note AN1447", w:50
    alt: "Ansteuern static LCD", src: "STMicroelectronic Application Note AN1447", w:50
  • Ansteuern von gemultiplexten LCD
    alt: "Schaltplan multiplexed LCD", src: "STMicroelectronic Application Note AN1447", w:50
    • Verwenden von Mikrocontrollern mit integrierten LCD-Treiber
    • Verwenden eines LCD-Driver-IC
      → Ansteuerung über I²C, SPI oder parallele Schnittstelle
    • Verwenden eines LCD mit integrierten Treiber
      z. B. LCD am des Education Systems
    • Stromverbrach meist \(< 1\,\text{mA}\), aber Hintergrundbeleuchtung \(> 10\,\text{mA}\)

alt: "Verschiedene Typen der LCD-Backplane", src: "https://newvisiondisplay.com", w: 33

OLED-Displays

  • Meist nur als Dot-Matrix-Display erhältlich
  • Ansteuerung über SPI, I²C
  • Selbstleuchtende Pixel → bessere Kontrast
    → Höherer Stromverbrauch \(>20\,\text{mA}\)
  • Aber nur angeschaltete Pixel benötigen Strom.
  • Organische LEDs → Einbrenneffekte durch organische Reaktionen!

E-Ink-Displays

  • Meist sehr hohe Pixeldichte
  • Großer Vorteil: kein Stromverbrauch zum Erhalten der Anzeige
  • Pixel besitzen einen bistabilen Zustand!
  • Sehr langsame Aktualisierungrate (bis 10 sec)
  • Meist keine Abstufungen der Intensität möglich (entweder schwarz oder weiß)

alt: "Beispiel eines Bicolor-E-Ink", w: 33

USB-UART-Wandler

  • Anwendungsbeispiel:
    • MSP430 speichert Daten im Flash
    • Einmal pro Monat wird das Messsystem über UART an einen Auswerte-PC angeschlossen
    • Alle aufgenommenen Daten werden übertragen
  • Typische USB-UART-Wandler:

    • FT232R

      • Der USB-UART-Wandler von FTDI (USB-UART-Wandler werden manchmal auch als FTDI-Chips bezeichnet)

      alt: "FT232R mit Leiterplatte", src: "Az-Delivery Productbild", w:33

    • ACHTUNG! Nicht alle FT232R sind Originale! Probleme mit Treiber oder Timing möglich!
    • MCP2221A

      • UART, I²C und GPIO-Wandler

      alt: "Pinout des MCP2221A", src: "Datenblatt MCP2221A", w: 25
      - weitere: CH430, CP2104, ...
      - Python-Programm

      import serial
      ser = serial.Serial('/dev/ttyUSB0')  # oder 'COM1'
      ser.write('hello')
      line = ser.readline()
      

      weitere Informationen: https://pyserial.readthedocs.io/
      - C# (Visual Studio mit GUI-Designer)
      SerialPort port = new SerialPort("COM1", 9600);
      port.Open();
      port.Write("Hallo!");
      char c = this.port.ReadChar();
      

Bluetooth-Module

  • Verwenden einer Bluetooth-Verbindung zum Übertragen von Daten vom MSP430 zu einen Smartphone (Android App)
  • Grundprinzip:
    • Daten werden von MSP430 über UART an Bluetooth-Modul übertragen.
    • Bluetooth-Modul sendet Daten mit Bluetooth Serial Port Protocol (SPP)
  • Bluetooth-Module
    • HC-05 / HC-06
      alt: "Bluetooth-Modul HC-05", src: "https://www.jsumo.com", w:50
Anschluss HC-05 an MSP430
grün -> GND
blau -> 3,3 V
lila -> P3.4
grau -> P3.5
  • Achtung! Sehr hoher Stromverbrauch bis \(60\,\text{mA}\)
  • Bluetooth 4.0 BLE
    • Deutlich geringere Stromverbrauch mit Bluetooth Low Energy (ca. \(1\,\text{mA}\))
    • Ähnliche Ansteuerung über UART
    • Android Programme müssen angepasst werden, da SSP nicht im BLE-Standard existiert
    • Typische Controller: Texas Instruments CC2540, CC2640R2F (MSP432 mit Bluetooth-Funktionalität)

Möglichkeiten der Dateneingabe

Taster

  • Verschaltung eines Tasters:

    alt: "Verschaltung eines Tasters mit vielen passiven Bauelementen", w:33

    • R1: Pullup-Widerstand
    • R2: Schutzwiderstand (wenn P1.0 auf Ausgang, High, Taster wird gedrückt)
    • C1: Kondensator zum Entprellen
    • Vereinfachter Schaltplan:

    alt: "Vereinfachte Verschaltung eines Tasters", w:33

    • Pullup-Widerstand: Verwenden des internen Pullup-Widerstandes des MSP430
    • Schutzwiderstand: P1.0 wird durch die Software nie als Ausgang, High konfiguriert
    • Entprell-Kondensator: Software-Entprellen
    • Programmierung des internen Pullup/Pulldown-Widerstände:
      Programmierung des internen Pullup/Pulldown-Widerstände
      // Interner Pullup-Widerstand
      P1DIR &= ~BIT0;
      P1REN |= BIT0;
      P1OUT |= BIT0;
      
      // Interner Pulldown-Widerstand
      P1DIR &= ~BIT0;
      P1REN |= BIT0;
      P1OUT &= ~BIT0;
      
    • PxREN: Aktivieren des Pullup/Pulldown-Widerstandes
    • PxOUT: Im Input-Modus: 0: Pulldown, 1: Pullup
    • Stromverbrauch eines Tasters:
    • Geöffneter Taster: \(I = 0\)
    • Geschlossener Taster: Stromfluss über den Pullup-Widerstand
      Datenblatt des MSP430F2274: typische \(R_\text{Pull} = 35\,\text k\Omega\)
      \(I = \frac{3.3\,\text V}{35\,\text k\Omega} = 94.3\,\mu\text A\)
    • Taster sollten immer nur einen Bruchteil der Betriebslaufzeit geschlossen sein.

DIP-Schalter

alt: "Beispiel eines DIP-Schalter", src: "Reichelt Produktbild NT-04", w:25

  • Funktionsweise:
    • mehrere kleine Schalter
    • werden an die parallele Schnittstelle angeschlossen
    • Kodieren von Einstellungen, meist Adressen
  • Ansteuerung ähnlich der Taster
  • Problem: konstanter Stromverbrauch von \(\approx 100\,\mu\text A\) durch Pullupwiderstand pro geschlossenen Taster
  • Lösung:

    • Verwenden der internen Pullupwiderstände des MSP430

      alt: "Schaltplan DIP-Schalter", w:25

    • Idee: Pullupwiderstände werden nur eingeschaltet, wenn der Schalterzustand ausgelesen werden muss
      → Interrupts können nicht verwendet werden, Polling ist notwendig!
    • Programmierung
      P1DIR &= ~(BIT0 + BIT1 + BIT2 + BIT3);
      P1REN |= BIT0 + BIT1 + BIT2 + BIT3;
      
      while (1) {
        P1OUT |= BIT0 + BIT1 + BIT2 + BIT3;   // Pullups
        uint8_t dip = P1IN & (BIT0 + BIT1 + BIT2 + BIT3);
        P1OUT &= ~(BIT0 + BIT1 + BIT2 + BIT3); // Pulldowns
      
        // Andere Rechenaufgaben
      }
      

      → Kein Stromfluss, wenn Pulldown-Widerstände verwendet werden.

Taster-Matrix

  • Varianten zum Multiplexen von Tastern
  • Verwendung z. B. in Tastaturen oder Keypads
    alt: "Aufbau einer Taster-Matrix", src: "https://www.gammon.com.au/", w:50
  • Hier:
    • Immer nur ein Row-Pin wird auf Masse gezogen, die anderen auf High-Z
    • Gedrückte Taster der ausgewählte Reihe erscheinen mit LOW-Pegel an den Col-Pins
    • Dioden können wegelassen (überbückt) werden, jedoch dann kann das Drücken mehrerer Tasten zu Fehlern kommen
      (Taster die nicht gedrückt sind, werden als gedrückt erkannt)

Messen der Batteriespannung

  • Verwenden der internen Batteriespannungsmessung des ADC10
    alt: "Übersicht ADC10", src: "Familiy Guide S. 535", w:75
    • INCH = 0b1011 = 11
    • \(V_\text{ref} = 1.5\text{ oder }2.5\,\text V\)
    • Es wird die Eingangsspannung des MSP430 gemessen (\(V_{CC}/AV_{CC}\)) !
      → Einsatz mit Spannungswandler nicht möglich, da \(U_\text{Bat} \neq V_{CC}\)
    • Messbereich:
      Bei \(V_\text{ref} = 1.5\,\text V\)\(1.5\,\text V < V_{CC} < 3.0\,\text V\)
      Bei \(V_\text{ref} = 2.5\,\text V\)\(2.5\,\text V < V_{CC} < 5.0\,\text V\)
  • Verwenden eines externen Spannungsteilers zum Anpassen des Messbereichs auf 1,5 V oder 2,5 V
    • Durch eine Spannungsteiler fließt ein konstanter Strom von \(I = \frac{U_{Bat}}{R_1+R_2}\)
    • Spannungsteiler muss durch einen MOSFET deaktiviert werden.
    • MOSFETs besitzen im angeschalteten Zustand ein sehr kleine \(R_{ON} < 1\,\Omega\)
    • Für \(R_{ON} << R_1, R_2\) kann der Einfluss des MOSFETs vernachlässigt werden
      alt: "Verschaltung einer Batteriespannungmessung", w:25
    • MOSFET wird immer nur während der Messung der Batteriespannung aktiviert (VBAT_EN = H)

Besonderheiten der Eingänge des MSP430

Störeinkopplung

  • Die Eingänge der parallelen Schnittstelle des MSP430 sind extrem hochohmig.
  • Werden keine Pullup- oder Pulldownwiderstände verwendet, so können kleinste Störströme zum Aussteuern des Eingäng folgen
  • z. B. Störspannungen durch kapazitive Einkopplung von Quellen mit großen Quellspannungen
    (230 V Netzleitung)
  • Probleme treten auf:
    • Bei gestörten Messleitungen am hochohmigen Eingang des MSP430
    • Wenn der Störer und der MSP430 die gleiche Masseverbindung aufweisen
  • Lösungen:
    • Trennen der Masseverbindung (galvanische isolierter Transformator, Batteriebetrieb)
    • "Niederohmigerer" Eingang ist zu verwenden:
      • Verwenden eines Parallelwiderstandes zum Eingang des MSP430
      • Bei starken Störern hilft die Verwendung von Optokopplern für die galvanische Trennung
        alt: "Beispiel einer Optokoppler-Schaltung", w:50

Floating-Pins

  • Eingangspins, die offengelassen werden, nennt man Floating-Pins
  • Floating-Pins sorgen für einen erhöhten Stromverbrauch
    • durch Pegelwechseln bei Störeinkopplung
    • CMOS-Schaltungen benötigten erhöhten Stromverbrauch \(V_{CC}/2\)
      alt: "Stromverbrauch CMOS Inverter in Abhängigkeit der Eingangsspannung", src: "https://courseware.ee.calpoly.edu/", w:50

Hardwareimplementierung eines MSP430

  • Wie kann ein MSP430 auf eine Platine oder Steckbrett gebracht werden?
  • Welche Bauteile werden im Minimalfall benötigt?

Programmierung eines MSP430

JTAG

  • Joint Test Action Group
  • IEEE-Standard, der die Methodik für das Testen und Debuggen intergrierter Schaltungen auf Leiterplatten beschreibt
  • Viele Mikrocontroller unterstützen JTAG und werden über JTAG programmiert. (ATmega328P, manche MSP430)
  • Signalleitung der JTAG-Schnittstelle:
    • TDI: Test Data Imput
    • TDO: Test Data Output
    • TCK: Test Clock
    • TMS: Test Mode Select
    • TRST: Reset der Testlogik
  • Signalverlauf vergleichbar mit SPI
  • Für die Programmierung über JTAG wird ein MSP430-FET benötigt:

alt:"MSP430 Flash Emulation Tool", src:"Texas Instruments", w:33

alt:"Programmierung mit dem MSP430-FET über JTAG", src: "Texas Intruments: SLAU278AF, S. 21", w:66

Spy-Bi-Wire

  • Von TI entwickeltes Protokoll zur Übertragung des JTAG-Protokolls über zwei Datenleitungen.
  • Vor allem MSP430 mit geringer Pinanzahl können meist nur über SBW programmiert werden.
  • Datenleitungen:
    • SBWTDIO: Spy-Bi-Wire Test Data In/Out, meist mit RST-Pin verbunden.
    • SBWTCK: Spy-Bi-Wire Test Clock, meist mit TEST-Pin verbunden

alt:"Programmierung mit dem MSP430-FET über Spy-Bi-Wire", src: "Texas Intruments: SLAU278AF, S. 23", w:66

  • Der MSP430G2553 kann nur über SBW programmiert werden. Das Launchpad MSP-EXP430G2ET kann als SBW-Programmer für eine Vielzahl von weiteren MSP430 verwendet werden.

alt: "Launchpad MSP-EXP430G2ET", src: "Texas Instruments: SLAU772, S. 1", w: 33

Minimaler Aufbau MSP430G2553

alt:"Minimaler Aufbau eines MSP430G2553", w:50

  • R1: Pullup-Widerstand für den Reset-Pin wichtig!!!
  • C1: Großer Entkoppelkondensator
  • C2: Kleiner Entkoppelkondensator, möglichst nah an DVCC-Pin
  • JP1: Programmieranschluss für Spy-Bi-Wire
  • Q1: optionaler Uhrenquarz für ACLK, möglichst nahe an XIN und XOUT Pin, symmetrisch

alt:"Beispielhaftes Leiterplattenlayout für MSP430G2553", w:25

Minimaler Aufbau MSP430F2274

  • Im Unterschied zum G2553 besitzt der F2274 getrennte Pins für digitale und analoge Betriebsspannung.
  • Zur Rauschunterdrückung sollte AVCC zusätzlich gefiltert werden.
  • Der Massesternpunkte sollte nahe des AVSS-Pins aufgebaut werden

alt:"Minimaler Aufbau eines MSP430F2774", w:75