Benutzer-Werkzeuge

Webseiten-Werkzeuge


projects:4e4th:4e4th:start:msp430g2553_experimente

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projects:4e4th:4e4th:start:msp430g2553_experimente [2024-11-21 00:00] – [Einzelnen Pin schalten] berndprojects:4e4th:4e4th:start:msp430g2553_experimente [2025-08-16 16:20] (aktuell) – [Schrittmotor] Bildquelle angegeben, wiki, CC. mka
Zeile 8: Zeile 8:
 {{ :projects:4e4th:4e4th:start:msp430g2553_experimente:img_0539_13von100.jpg?200|Bei mir sah das dabei so aus.}} Die hier angegebenen Experimente wurden mit der MCU //MSP430G2553 von Texas Instruments// auf deren LaunchPad gemacht. Die Experimente können aber ebenso gut mit anderen MCUs angestellt werden. Es wird aber für nichts gehaftet. [[:projects:4e4th:4e4th:start:msp430g2553_experimente#einfache_forth_programme_fuer_die_experimente|Kleine Forth-Programme]] für die Experimente mit der MCU sind weiter unten angegeben.  {{ :projects:4e4th:4e4th:start:msp430g2553_experimente:img_0539_13von100.jpg?200|Bei mir sah das dabei so aus.}} Die hier angegebenen Experimente wurden mit der MCU //MSP430G2553 von Texas Instruments// auf deren LaunchPad gemacht. Die Experimente können aber ebenso gut mit anderen MCUs angestellt werden. Es wird aber für nichts gehaftet. [[:projects:4e4th:4e4th:start:msp430g2553_experimente#einfache_forth_programme_fuer_die_experimente|Kleine Forth-Programme]] für die Experimente mit der MCU sind weiter unten angegeben. 
  
-Für diese Experimente brauchte ich ein [[http://www.ti.com/tool/msp-exp430g2?DCMP=hpa_bestbets_estore&HQS=estore-tool-bb-launchpad|LaunchPad]], ein [[http://de.wikipedia.org/wiki/Multimeter|Multimeter]], ein [[http://de.wikipedia.org/wiki/Oszilloskop|Oszilloskop]] und einige Kleinteile wie [[http://de.wikipedia.org/wiki/Widerstand_(Bauelement)|Widerstände]] und [[http://de.wikipedia.org/wiki/Kondensator_(Elektrotechnik)|Kondensatoren]], und einen kleinen [[http://de.wikipedia.org/wiki/Lautsprecher|Lautsprecher]]. Ein [[http://de.wikipedia.org/wiki/Steckbrett|Steckbrett]]((Es muss ja nicht gleich soo groß sein ... {{:projects:4e4th:4e4th:start:steckbretter.pdf|Deliano-Steckbrett-USA}})) kann nicht schaden, ebenso ein Bündel {{:projects:4e4th:4e4th:start:pruefklipp_kabelset.jpg?linkonly|Prüfklipp-Kabel}}, die einfach an das LaunchPad angeklemmt werden können. +Für diese Experimente brauchte ich ein [[http://www.ti.com/tool/msp-exp430g2?DCMP=hpa_bestbets_estore&HQS=estore-tool-bb-launchpad|LaunchPad]], ein [[http://de.wikipedia.org/wiki/Multimeter|Multimeter]], ein [[http://de.wikipedia.org/wiki/Oszilloskop|Oszilloskop]] und einige Kleinteile wie [[http://de.wikipedia.org/wiki/Widerstand_(Bauelement)|Widerstände]] und [[http://de.wikipedia.org/wiki/Kondensator_(Elektrotechnik)|Kondensatoren]], und einen kleinen [[http://de.wikipedia.org/wiki/Lautsprecher|Lautsprecher]]. Ein [[http://de.wikipedia.org/wiki/Steckbrett|Steckbrett]] ((Es muss ja nicht gleich soo groß sein ... {{:projects:4e4th:4e4th:start:steckbretter.pdf|Deliano-Steckbrett-USA}} )) kann nicht schaden, ebenso ein Bündel {{:projects:4e4th:4e4th:start:pruefklipp_kabelset.jpg?linkonly|Prüfklipp-Kabel}}, die einfach an das LaunchPad angeklemmt werden können. 
  
 Bei mir sah das dabei so aus: {{:projects:4e4th:4e4th:start:msp430g2553_experimente:img_0539.jpg?linkonly|Bild in höherer Auflösung.}}((Sommer 2013)) Bei mir sah das dabei so aus: {{:projects:4e4th:4e4th:start:msp430g2553_experimente:img_0539.jpg?linkonly|Bild in höherer Auflösung.}}((Sommer 2013))
Zeile 14: Zeile 14:
 Die verwendete MCU erwies sich als erstaunlich robust. Wie man so eine MCU dann doch kaputt kriegt, ist [[/projects:4e4th:4e4th:start:msp430g2553_experimente?&#mcu_schrotten|ganz unten beschrieben]]. Die verwendete MCU erwies sich als erstaunlich robust. Wie man so eine MCU dann doch kaputt kriegt, ist [[/projects:4e4th:4e4th:start:msp430g2553_experimente?&#mcu_schrotten|ganz unten beschrieben]].
  
-Wie man an das 4e4th kommt, steht auf der [[http://www.forth-ev.de/wiki/doku.php/projects:4e4th:start|4e4th-Start-Seite.]]+Wie man an das 4e4th kommt, steht auf der [[http://www.forth-ev.de/wiki/doku.php/projects:4e4th:start|4e4th-Start-Seite.]] (Amerkung 6/2025: Da das 4e4th nicht mehr gepflegt wird, empfehle ich [[https://home.hccnet.nl/anij/nof/noforth.html|noForth]] zu verwenden.
  
 Auf dieser Seite werden **OUTPUT-Experimente** gezeigt. Die grundlegenden [[http://www.forth-ev.de/wiki/doku.php/projects:4e4th:4e4th:start:msp430g2553_experimente:input|INPUT-Experimente]] sind auf einer Extra-Seite zusammengefasst. Auf dieser Seite werden **OUTPUT-Experimente** gezeigt. Die grundlegenden [[http://www.forth-ev.de/wiki/doku.php/projects:4e4th:4e4th:start:msp430g2553_experimente:input|INPUT-Experimente]] sind auf einer Extra-Seite zusammengefasst.
Zeile 89: Zeile 89:
 ==== Rampen-Generator ==== ==== Rampen-Generator ====
  
-{{ :projects:4e4th:4e4th:start:msp430g2553_experimente:300px-r2r-netzwerk.png?|Das klassische R2R-Netzwerk}} Ein klassisches Beispiel für Widerstandsnetze ist das [[http://de.wikipedia.org/wiki/R2R-Netzwerk|R2R-Netzwerk]], um Spannungsrampen zu erzeugen. Das ist einfach zu verstehen. Es ergibt sich aus der [[http://de.wikipedia.org/wiki/Spannungsteiler|Spannungsteiler-Schaltung]]. Weil es so einfach ist, kann es auch schnell mal aufgebaut werden. Für Demonstrationszwecke kann das an unserer MCU sogar aus nur 3x R und 1x 2R gemacht werden. Die Widerstände 2R vor den Schaltern entsprechen praktisch dem Innenwiderstand eines FET am Portpin, der FET selbst ist zugleich auch der Schalter. Das Ganze reduziert sich damit auf folgendes:+{{ :projects:4e4th:4e4th:start:msp430g2553_experimente:r2r.jpg?400|}} 
 +Ein klassisches Beispiel für Widerstandsnetze ist das [[http://de.wikipedia.org/wiki/R2R-Netzwerk|R2R-Netzwerk]], um Spannungsrampen zu erzeugen. Das ist einfach zu verstehen. Es ergibt sich aus der [[http://de.wikipedia.org/wiki/Spannungsteiler|Spannungsteiler-Schaltung]]. Weil es so einfach ist, kann es auch schnell mal aufgebaut werden. Für Demonstrationszwecke kann das an unserer MCU sogar aus nur 3x R und 1x 2R gemacht werden. Die Widerstände 2R vor den Schaltern entsprechen praktisch dem Innenwiderstand eines FET am Portpin, der FET selbst ist zugleich auch der Schalter. Das Ganze reduziert sich damit auf folgendes:
  
   GND---2R---P1.4---R---P1.5---R---P1.6---R---P1.7---> Vx   GND---2R---P1.4---R---P1.5---R---P1.6---R---P1.7---> Vx
Zeile 194: Zeile 195:
 ===== PWM-Signal am RC-Glied ===== ===== PWM-Signal am RC-Glied =====
  
-Nach den Experimenten mit Widerständen und Kondensatoren folgt eine Kombination davon.{{ :projects:4e4th:4e4th:start:msp430g2553_experimente:220px-tiefpass.svg.png?|RC-Glied (aus Wikipedia)}}+Nach den Experimenten mit Widerständen und Kondensatoren folgt eine Kombination davon. 
 +{{ :projects:4e4th:4e4th:start:msp430g2553_experimente:port-an-rc-glied.jpg?400|}}
  
   P2.5 -- R --x-- C -- GND   P2.5 -- R --x-- C -- GND
  
-An Portpin P2.5 kommt das PWM-Signal an, und geht über einen Widerstand R an den Kondensator C, dessen anderer Anschluss an Masse liegt. Bei x wird das resultierende Signal ((Die Stelle x enspricht der Ausgangsspannung Ua im Tiefpass)) im [[http://de.wikipedia.org/wiki/RC-Glied|RC-Glied]] abgenommen. Ich habe R=10K und einen kleinen blauen Stützkondensator genommen von ca. C=100nF, aufgebaut wieder auf dem Steckbrett. +An Portpin P2.5 kommt das PWM-Signal an, und geht über einen Widerstand R an den Kondensator C, dessen anderer Anschluss an Masse liegt. Bei x wird das resultierende Signal im [[http://de.wikipedia.org/wiki/RC-Glied|RC-Glied]] abgenommen. Ich habe R=10K und einen kleinen blauen Stützkondensator genommen von ca. C=100nF, aufgebaut wieder auf dem Steckbrett. 
  
 Wenn die PWM-Frequenz hoch genug ist, wird die Ausgangsspannung des PWM gemittelt. Das sorgt dafür, dass bei gleichbleibender Pulsweite eine Gleichspannung entsteht. Wenn das Verhältnis Puls/Pause 50% ist, dann entspricht diese Gleichspannung der halben Speisespannung. Wird der Puls länger, erhöht sich die Spannung, und wird der Puls kürzer, wird die Spannung geringer.  Wenn die PWM-Frequenz hoch genug ist, wird die Ausgangsspannung des PWM gemittelt. Das sorgt dafür, dass bei gleichbleibender Pulsweite eine Gleichspannung entsteht. Wenn das Verhältnis Puls/Pause 50% ist, dann entspricht diese Gleichspannung der halben Speisespannung. Wird der Puls länger, erhöht sich die Spannung, und wird der Puls kürzer, wird die Spannung geringer. 
Zeile 342: Zeile 344:
 So ein PWM (Puls Width Modulation) ist eine feine Sache. Man braucht dazu einen Zähler (timer), Register, um Zählerstände zu vergleichen, und einen Portpin, den man an- und ausschalten kann. In unserer MCU ist das bereits eingebaut. So ein PWM (Puls Width Modulation) ist eine feine Sache. Man braucht dazu einen Zähler (timer), Register, um Zählerstände zu vergleichen, und einen Portpin, den man an- und ausschalten kann. In unserer MCU ist das bereits eingebaut.
  
-{{ :projects:4e4th:4e4th:start:msp430g2553_experimente:updowm_pwm.jpg?300|PWM mit timer A erzeugen}}Der Timer TA1 kann im //up/down-modus// betrieben werden. Dabei zählt der timer von NULL bis zu dem Wert ''T'' im Register TA1CCR0 hoch, und ab da wieder runter. Unterwegs trifft der Zähler dabei den Vergleichswert ''V'' im Register TA1CCR2. Dabei wird dann jedesmal ein Flag getoggelt. Macht man ''V'' halb so groß wie ''T'', bekommt man ein Tastverhältnis von 50%. Nun braucht man nur noch dieses Flag an den Portpin zu übertragen, schon hat man sein PWM-Signal. Da der Timer unabhängig vom Programm im Hintergrund läuft und auch die Übertragung des Flags an den Port von der Hardware gemacht wird, braucht man sich nicht mehr darum zu kümmern. Sobald der Timer gestartet wurde, läuft das automatisch endlos ab, bis man den Timer wieder anhält. +{{ :projects:4e4th:4e4th:start:msp430g2553_experimente:updowm_pwm.jpg?300|PWM mit timer A erzeugen}}Der Timer TA1 kann im //up/down-modus// betrieben werden. Dabei zählt der timer von NULL bis zu dem Wert ''T'' im Register TA1CCR0 hoch, und ab da wieder runter. Unterwegs trifft der Zähler dabei den Vergleichswert ''V'' im Register TA1CCR2. Dabei wird dann jedesmal ein Flag getoggelt. Macht man ''V'' halb so groß wie ''T'', bekommt man ein Tastverhältnis von 50%. Nun braucht man nur noch dieses Flag an den Portpin zu übertragen, schon hat man sein PWM-Signal.((Abb.: Zitat aus dem Hndbuch.)) Da der Timer unabhängig vom Programm im Hintergrund läuft und auch die Übertragung des Flags an den Port von der Hardware gemacht wird, braucht man sich nicht mehr darum zu kümmern. Sobald der Timer gestartet wurde, läuft das automatisch endlos ab, bis man den Timer wieder anhält. 
  
 Das wurde im SWEEP benutzt. Da werden einfach nur der Timer und der Portpin konfiguriert, die Zählerwerte gesetzt, das PWM gestartet und dann gewartet, derweil PWM läuft und die Rechteckwelle am P2.2 macht. Dann wird T und V  verkleinert und das Ganze beginnt von vorn. So 'sweept' man durch die PWM-Frequenzen. Dabei ist es schön, dass die beteiligten Register des Timers wie Variablen gelesen und geschrieben werden können.  Das wurde im SWEEP benutzt. Da werden einfach nur der Timer und der Portpin konfiguriert, die Zählerwerte gesetzt, das PWM gestartet und dann gewartet, derweil PWM läuft und die Rechteckwelle am P2.2 macht. Dann wird T und V  verkleinert und das Ganze beginnt von vorn. So 'sweept' man durch die PWM-Frequenzen. Dabei ist es schön, dass die beteiligten Register des Timers wie Variablen gelesen und geschrieben werden können. 
Zeile 350: Zeile 352:
 Wer sowas noch nicht so kennt, mag hier mal schauen, da hab ich das mal vorexerziert:\\ Wer sowas noch nicht so kennt, mag hier mal schauen, da hab ich das mal vorexerziert:\\
 [[projects:4e4th:4e4th:start:msp430g2553_experimente:TimerA_und_Port_P2_Block_Schema]] [[projects:4e4th:4e4th:start:msp430g2553_experimente:TimerA_und_Port_P2_Block_Schema]]
 +
 +[[https://www.ti.com/lit/pdf/slau144|Handbuch]] zur MCU
  
  
Zeile 401: Zeile 405:
 Und hier ist mein [[projects:4e4th:4e4th:start:msp430g2553_experimente:Schrittmotor|Forthprogramm für den Schrittmotor]]. Damit werden in experimenteller Weise die Antriebe des [[http://en.wikipedia.org/wiki/Stepper_motor|Steppers]] realisiert, die im englischsprachigen Wikipedia erklärt sind. (Im deutschen Wiki war es leider nicht so verständlich dargelegt.)   Und hier ist mein [[projects:4e4th:4e4th:start:msp430g2553_experimente:Schrittmotor|Forthprogramm für den Schrittmotor]]. Damit werden in experimenteller Weise die Antriebe des [[http://en.wikipedia.org/wiki/Stepper_motor|Steppers]] realisiert, die im englischsprachigen Wikipedia erklärt sind. (Im deutschen Wiki war es leider nicht so verständlich dargelegt.)  
  
 +(Abb.: Misan2010 - Own work; CC BY 3.0; [[https://en.wikipedia.org/wiki/Stepper_motor#/media/File:Drive.png]])
  
  
projects/4e4th/4e4th/start/msp430g2553_experimente.1732143627.txt.gz · Zuletzt geändert: 2024-11-21 00:00 von bernd