29. Launchpad Boosterpack

Alunperin julkaistu: 12.2.2017

Viimeksi muokattu: torstai 11.6.2020

Launchpad MSP430Launchpadin päälle on saatavilla erilaisia lisälevyjä, joilla toiminnallisuutta ja käytettävyyttä saadaan laajennettua. Näitä lisälevyjä kutsutaan nimellä boosterpack ja niistä käytetään lyhennettä BP.

Lisälevyjä voi suunnitella itsekin ja sitä varten on tehty jopa omat ohjeetkin, mikäli haluaa lisälevyjä suunnitella ihan myytäväksi asti. Boosterpackien suunnittelusta löytyy lisäinfoa osoitteesta: http://processors.wiki.ti.com/index.php/BoosterPack_Design_Guide.

Valmiita lisälevyjä voi ostaa TI:n verkkokaupasta josta ne tulevat muutamassa arkipäivässä, mikäli tuotetta on varastossa. Toisaalta osat voi hankkia muualtakin ja väsäillä boosterpackin kasaan vaikkapa koekytkentäalustalla.

Boosterpackeja löytyy nykyisin hyvin monenlaisiin sovelluksiin. On olemassa esimerkiksi muistikortin lukijaa, langatonta tiedonsiirtoa, MIDI äänilähtöä ja LED-matriisinäyttöjä, näin muutaman mainitakseni. Lisää tietoa ja lisää boosterpackeja löytyy osoitteesta http://www.ti.com.

Kirjoituksessa HC-05 Bluetooth sarjaporttimoduulin testausta esitellään myös toinen hankkimani BoosterPack, mitä käytetään yhdessä älypuhelimen ja Launchpadin kanssa.

Tässä osassa tustustutaan LCD Button Boosterpackiin, mistä on kuva alla:

LARS LCD

LCD Button Boosterpack on lisälevy, jossa on kiinni graafinen 96 x 64 pikseliä oleva mustavalkoinen näyttö. Näyttöön voidaan tulostaa yksittäisiä pikseleitä, toisin kuin esimerkiksi HD44780-tyyppisiin merkkipohjaisiin näyttöihin.

Näytönohjaimena toimii Sitronixin ST7579 -piiri ja kommunikointi hoidetaan 3-johtoisen SPI-väylän avulla. Näytölle voidaan kirjoittaa 8,3 MHz:n kellolla ja näyttö päivittyy perus asetuksilla noin 73 hertsin taajuudella.

Näytössä on myös taustavalo, joka tässä tapauksessa on päällä aina kun sähköt on kytketty laitteeseen. LCD:n ja näytönohjaimen datalehti löytyy alla olevista osoitteista:

http://lars.roland.bz/test/ST7579.pdf (ST7579 näytönohjain)
http://lars.roland.bz/test/PE9665WRF-002-I02Q.pdf (LCD-näyttö)

Launchpadin MCU:n vaihto

Aiemmissa esimerkeissä on käytetty lähes poikkeuksetta MSP430G2231 -mikrokontrolleria. Tässä esimerkissä otetaan käyttöön kuitenkin MSP430G2452. Kyseinen MCU eroaa aiemmasta mm. ominaisuuksien suhteen ja tarjoaa käyttäjälle enemmän muistia ohjelmaa varten. Sirussa on 8 kilotavua ohjelmamuistia ja 256 tavua SRAM-välimuistia, 16 Cap-Touch IO:ta ja yksi 16-bittinen ajastin.

Tarvittavat osat

Esimerkin toteuttamiseen tarvitaan Launchpadin lisäksi vain LCD-näyttö:

  • LCD Boosterpack
  • Launchpad + MSP430G2452 MCU

LCD lähdekoodi ja kytkentä

Aiemmin luotu SPI-kommunikaation lähdekoodi toimii myös pohjana LCD-näytön käyttämiselle, mutta suosittelen lataamaan tältä sivulta löytyvästä linkistä uusimman lähdekoodin USI-kirjaston osalta, sillä siihen on tehty muutoksia ja tehtyjä muutoksia ei ole aiempiin versioihin tuotu.

Lähdekoodi löytyy alla olevasta linkistä ja mukaan on liitetty myös LCD-näytön kytkentä kyseiselle mikrokontrollerille.

Lataa CCSv5 esimerkkiprojekti tästä. (koodi päivitetty 3.11.2013)

MSP430G2452 USI SPI-modessa

USI on MSP430G2xxx -mikrokontrollereista (ja muistakin) löytyvä lisälaite/moduuli, minkä avulla sarjamuotoinen kommunikointi tapahtuu. USI tulee englannin kielen termistä Universal Serial Interface ja tämä moduuli soveltuu käytettäväksi SPI-, I2C ja UART -väylien kanssa.

USI muodostuu 8- tai 16 -bittisestä siirtorekisteristä, mutta väylälle voi kirjoittaa esimerkiksi 7 tai 13 bittiä jos niin haluaa tehdä. USI-moduuli helpottaa koodin kirjoittamista SPI- ja I2C-väylän käyttämiseksi ja se tarjoaa myös keskeytyksiä ohjelmoijan käyttöön.

Käytettäessä MSP430G2452 mikro-ohjainta, tulee MOSI-nasta kytkeä pinniin P1.6. Esimerkiksi MSP430G2553:lla MOSI-nasta on kytketty P1.7 pinniin jolloin kytkentä toimii eri tavalla. LCD-näyttö toimiikin MSP430G2452 -mikro-ohjaimen kanssa silloin, kun nastat 1.6 ja 1.7 kytketään keskenään ristiin (toki ne on alustettava asianmukaisesti myös). Tämä voidaan helposti toteuttaa asentamalla launchpadille jumpperi, joka oikosulkee pinnit.

LCD-näyttö

USI-rekisterin asetukset

MSP430G2452:n USI rekisterit asetetaan toimimaan SPI master moodissa. Kellosignaalin polariteetti asetetaan "1":een ja vaihe 0:aan, jolloin data luetaan kellon nousevalla reunalla. SPI-siirron taajuudeksi asetetaan mikrokontrollerin 8 MHz:n taajuus, joka on hieman alle LCD-näytön maksimivauhdista, joka on määritetty sen datalehdessä.

Tarkemmin USI-rekistereistä ja niiden tarkoituksista voit lukea oppaan osista 28 ja 27.

Ohjelman toiminta

Ohjelma tulostaa virtuaalisarjaporttiin tekstin "Master Ready!" sekunnin välein ja vilkuttaa punaista lediä. Samalla tulostetaan näytölle "Hello World!" teksti. Joka kierroksella nukutaan ajastimen avulla 1 sekunti, jonka jälkeen näyttö tyhjennetään ja Hello World -teksti tulostetaan eri riville, uuteen paikkaan.

Ohjelman pääsilmukan koodi näkyy alla:

while(1)
{
        // Write Hello World to LCD
        writeString(x,y++,"Hello World!");
        // Set next starting point
        x += 8;
        // Toggle led
        LED_RED_TOGGLE;
        // small delay
        TimerA_Delay(1);
        // Print status to UART
        TimerA_UART_print( (char *)MasterReadyText);
        // Clear screen
        ClearLCD();
}

Ohjelman toimintaa voi seurata LCD-näytön lisäksi myös sarjaportista, kun avaa terminaaliohjelmaan oikean COM-yhteyden auki.

Virtuaalisarjaportin tulosteet

Tarkemmin ohjelman toiminta selviää koodista. Tässä on lyhyesti näytettynä, kuinka tätä kyseistä boosterpackia käytetään.