MSP430 USCI Initialisierung

Ein Beispiel-Programm bzw. Beispiel-Initialsierung für USCI (Universial Serial Communication Interface) mit dem MSP430G2553 (im SPI-Mode). Das Programm an sich ist fast identisch mit dem Programm aus “MSP430 USI Initialisierung“. Es werden also wieder Bytes (0-255) an das Schieberegister gesendet.

Schaltplan

USCI_shift

C-Programm

/*************************************************
 *	 ___       _             _
 *	|   |_ _ _| |___ ___   _| |___
 *	| | |_'_| . | -_|  _|_| . | -_|
 *	|___|_,_|___|___|___|_|___|___|
 *
 * FILE: 	main.c
 * Author: 	declis (xdec.de)
 ************************************************/

#include <msp430g2553.h>

#define strobe 	BIT0					// strobe @ P1.0
#define data	BIT7					// data out @ P1.7
#define clock	BIT5					// CLK out @ P1.5
#define ms		100

void main(void)
{
	unsigned char m_sec=ms;
	WDTCTL=WDTPW+WDTHOLD;				// stop WDT
	BCSCTL1=CALBC1_1MHZ;                // SMCLK=~1MHz
  	DCOCTL=CALDCO_1MHZ;

  	P1DIR|=strobe;
  	P1OUT&=~strobe;
  	// USCI_B0 clock output, USCI_B0 SPI Mode: master out
  	P1SEL|=clock+data;
  	P1SEL2|=clock+data;

  	// USCI in reset state
  	UCB0CTL1|=UCSWRST;
  	// SPI Master, 8bit data length, LSB first, synchronous mode
  	// data captured on first UCLK edge, changed on the following edge
  	UCB0CTL0|=UCMST+UCSYNC+UCCKPH;
  	// USCI CLK-SRC=SMCLK=~1MHz
  	UCB0CTL1|=UCSSEL_2;
  	// USCI released for operation
  	UCB0CTL1&=~UCSWRST;
  	// enable TX interrupt
  	IE2|=UCB0TXIE;
  	// clear TXIFG
  	IFG2&=~UCB0TXIFG;

  	_EINT();							// enable interrupts

  	while(1)
  	{
  		while(IFG2&UCB0TXIFG);			// TX buffer ready?
  		UCB0TXBUF++;					// increment TX buffer (0-255)
  		while(m_sec--)					// wait some time (100ms)
  		  __delay_cycles(1000);
  		m_sec=ms;
  	}
}

#pragma INTERRUPT (USCI)
#pragma vector=USCIAB0TX_VECTOR
void USCI(void)
{
	// transmission done
	P1OUT|=strobe;		// enable strobe register
	P1OUT&=~strobe;
	IFG2&=~UCB0TXIFG;	// clear TXIFG
}

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

This site uses Akismet to reduce spam. Learn how your comment data is processed.