Category Archives: MSP430

Revision 2015 (03.04 – 06.04.2015) – Pics

2015-04-29 01.28.04Ein paar Bilder von Revision 2015 – 03.04 bis 06.04.2015 in Saarbrücken – eine der größten Demopartys überhaupt (Teilnehmer >800). Ich konnte mit meiner MSP430 Demo “A Dead Pixel” den 3. Platz in der Wild Compo belegen. Damit habe ich natürlich absolut nicht gerechnet und war ordentlich pwned, da es meine erste Demoparty war. Es wurden insgesamt 14 Einträge in der Wild Compo gezeigt.

Die Platzierungen:

Continue reading

MSP430 Sound und Musik erzeugen (Tracker)

msp430_music_trackerAnfang letzten Monat habe ich mir mal ein paar Gedanken gemacht zu dem Thema: Sound, Musik und Töne auf dem MSP430 generieren. Da es in diesem Bereich ziemlich viele verschiedene Möglichkeiten gibt, Musik zu erzeugen, habe ich ungefähr eine ganze Woche für das folgende Sound-Modul gebraucht. Der Algorithmus sollte so klein wie möglich bleiben und natürlich sollte die Musik im Hintergrund automatisch abgespielt werden, ohne manuell eine Funktion aufrufen zu müssen. Das bedeutet also: Ein Interrupt muss dafür sorgen, dass die Noten automatisch abgespielt werden. Weiterhin sollte es so einfach wie möglich aufgebaut werden. Also habe ich mich dazu entschlossen, Töne per PWM (Pulsweitenmodulation) zu erzeugen. So wird es auch beim Game Boy Advance realisiert (als grobes Beispiel). Als Grundlage habe ich den typischen Tracker-Stil (auch Rastersequenzer), benutzt bzw. habe dies als Basis genommen. Die Code-Größe bleibt somit ziemlich klein. Zum Einsatz kommt ein MSP430G2553 (wie so oft in letzter Zeit) der zwei Timer besitzt.

Continue reading

ILI9341 TFT-Display mit MSP430

ILI9341_00Bis jetzt finden sich hier auf der Seite nur Beispielprogramme für monochrome Displays bzw. LCDs. Da ich schon länger mal mal mit einem “richtigen” Display arbeiten wollte, also etwas in Farbe programmieren, habe ich mir auf Ebay ein kleines 2.2″ TFT-Display, mit einem ILI9341 Controller, bestellt. Das Display hat zu dem Kaufzeitpunkt mal gerade nur 5,69€ gekostet. Der aktuelle Preis von 6,00€ ist narülich auch noch super billig. Die Ansteuerung des Displays hat sich als ziemlich einfach gestaltet. Es kann direkt per SPI angesteuert werden und es gibt ein vernünftiges Datenblatt mit allen Informationen zur Initialisierung etc. In den letzten Tagen habe ich eine kleine Demo für das ILI9341 Display geschrieben (in Verbindung mit einem MSP430G2553).

Continue reading

MSP430 Random Number Generator (RNG)

10000_RNG_sFür mein nächstes Projekt bzw. Programm, brauchte ich einen RNG (Random Number Generator) oder auch Zufallsgenerator genannt. Auf einen normalen Desktop-Rechner ist das kein Problem, da C und z.B. Java fertige Random-Funktionen besitzen. Diese Funktionen generieren die Zufallszahlen auf Basis der Uhrzeit (meistens). Bei einem Microcontroller bzw. speziell dem MSP430 musste ich mir also etwas anderes einfallen lassen. Vor ein paar Monaten bin ich auf diese Idee durch Zufall gestoßen. Ich habe einen falschen ADC-Port initialisiert und habe ein nettes Rauschen (offener ADC-Port) bekommen. Der umgewandelte Wert ist also dauerhaft in einem bestimmten Bereich hin und her gesprungen. Perfekt für einen RNG! Display: ILI9341 TFT-Display

Continue reading

MSP430 OLED-Display SSD1306 (128×64)

msp430_ssd1306_actionVor ein paar Monaten habe ich mir ein kleines OLED-Display aus China bestellt, mit einem SSD1306 Controller (Ebay). Die Größe des Displays beträgt 0,96″ und hat eine Auflösung von 128x64px. Das Display ist auf einem fertigen Modul gelötet, man braucht sich also nicht mehr um die restliche Beschaltung von dem Display zu kümmern. Der Display-Controller (SSD1306) bietet verschiedene Schnittstellen (Parallel, SPI, I2C). Leider ist die Schnittstelle bei diesem Modul per 0 ohm SMD-Widerstände auf die parallele Schnittstelle eingestellt. Da ich keine vernünftige Spitze für meinen Lötkolben hatte, und auch keine Motivation um die SMD-Widerstände umzulöten (auf SPI), habe ich das Display also parallel angesteuert. Ich habe hauptsächlich die gleiche Bibliothek benutzt wie beim Nokia-Display (PCD8544), allerdings mit ein paar neuen Funktionen und Verbesserungen. Angesteuert wird das Display wieder per MSP430G2553.

Continue reading

MSP430 DCF77 (Empfang und Auswertung)

dcf1_modul_pollin_backEin kleines Beispiel-Programm (geschrieben in C), mit dem ein DCF77 Signal ausgewertet werden kann. Über ein Display (Nokia-Display) werden Uhrzeit und Datum angezeigt. Weiterhin werden die empfangenen Bits während des Empfangs auf dem Display angezeigt (und aktuelle Bit-Nummer bzw. Sekunde). Für den DCF77-Empfang kommt ein fertiges Modul von Pollin zum Einsatz: “DCF-Empfangsmodul DCF1“. Für die Auswertung kommt ein MSP430G2452 zum Einsatz.

Continue reading

MSP430 Nokia 3310 LCD (PCD8544)

msp430_nokia3310_LCDHier entsteht eine kleine Bibliothek für Grafik-LCDs. Angefangen habe ich mit einem Nokia 3310 LCD (PCD8544 Controller). Eine kleine Demonstration kann man in dem Video sehen. Die Bibliothek wird in nächster Zeit noch ein paar Funktionen dazu bekommen (es fehlen noch viele Funktionen, wie z.B. Linien zeichnen, Rechtecke, Kreise etc.). Bei dem verwendeten Nokia 3310 LCD handelt sich um ein Ersatz-Display (kann auf Ebay bestellt werden). Der sichtbare Bereich des Displays beträgt 96×64 Pixel (der Display-Speicher ist aber etwas größer). WICHTIG: Das originale Nokia 3310 LCD hat eine Auflösung von 84×48 Pixel! Die Ansteuerung (besonders die Initialsierung) ist bei diesem Display ziemlich einfach, da es nicht viele Einstellmöglichkeiten gibt, beschränkt sich also auf ein paar Befehle. Angesteuert wird das LCD über einen MSP430G2553 (per SPI).

Continue reading

MSP430 PWM (Pulsweitenmodulation)

msp430_pwm00In diesem kleinen Beispiel-Programm wird eine LCD-Hintergrundbeleuchtung per PWM (Pulsweitenmodulation) gesteuert. Das PWM Signal wird in Abhängigkeit von einem angeschlossenen Potentiometer am MSP430 erzeugt. Zum Einsatz kommt ein DOGM162-Display + das zugehörige Beleuchtungsmodul. Das LCD zeigt die aktuelle LED-Helligkeit in Prozent an (entspricht der Pulsbreite bzw. Duty-Cycle).

Continue reading

MSP430 Numitron Clock, Teil 5: Abschluss

numitron_tubes_iv16Das Projekt ist abgeschlossen und die Uhr (MSP430 Numitron Clock) ist zu 99,99% fertig! Wie genau die Uhr läuft, wird ein Dauertest zeigen. Es wurden noch ein paar Optimierungen in der Schaltung für den MSP430 vorgenommen, weiterhin noch ein paar Kleinigkeiten am Gehäuse und im Source-Code. Eine komplette Übersicht der verwendeten Bauteile und Bilder gibt es in diesem Teil.

Continue reading