[MSP430]/MSP430F22xx2010. 3. 7. 23:00

[MSP430F2274 EVM] SPI테스트 - 가속도 센서 테스트

[MSP430F2274 EVM] SPI테스트 - 가속도 센서 테스트




MSP430F2274 SPI 블록도



[MSP430F2274 EVM] 보드에서 SPI는 P3.0~P3.3에 할당되어 있는 UCB0-SPI를 사용하고 있다.



spi.c 드라이이버 함수의 초기화 및 송수신 함수만 수정하면 기존 코드 그대로 사용할 수 있다.
#define SPI0_WRITE_BYTE(x)                 UCB0TXBUF = (x);
#define SPI0_READ_BYTE()     UCB0RXBUF
#define SPI0_WAIT_FOR_EN()     while (!(IFG2&UCB0TXIFG));
#define SPI0_WAIT_FOR_SEND()              while (UCB0STAT & UCBUSY);
#define SPI0_WAIT_FOR_RX()     while (!(IFG2&UCB0RXIFG))

//USCIB0 for 2271
#define TI_CC_SPI_USCIB0_PxSEL   P3SEL
#define TI_CC_SPI_USCIB0_PxDIR   P3DIR
#define TI_CC_SPI_USCIB0_PxIN    P3IN
#define TI_CC_SPI_USCIB0_SIMO    BIT1
#define TI_CC_SPI_USCIB0_SOMI    BIT2
#define TI_CC_SPI_USCIB0_UCLK    BIT3

void SPI0_Init(void)
{
 //MSP430 SPI초기화
 UCB0CTL1 |= UCSWRST;                      // **Disable USCI state machine**
 UCB0CTL0 |= UCMST+UCCKPH+UCMSB+UCSYNC;    // 3-pin, 8-bit SPI master
 UCB0CTL1 |= UCSSEL_2;                     // SMCLK
 UCB0BR0 = 0x02;                           // UCLK/2
 UCB0BR1 = 0;

 //SPI Port Init 
 TI_CC_SPI_USCIB0_PxSEL |= TI_CC_SPI_USCIB0_SIMO
         | TI_CC_SPI_USCIB0_SOMI
         | TI_CC_SPI_USCIB0_UCLK;
 // SPI option select
 TI_CC_SPI_USCIB0_PxDIR |= TI_CC_SPI_USCIB0_SIMO | TI_CC_SPI_USCIB0_UCLK;

  // Initialize USART state machine
 UCB0CTL1 &= ~UCSWRST;
}

unsigned char SPI0_WriteReadByte(unsigned char Data)
{
 SPI0_WAIT_FOR_EN();
 SPI0_WRITE_BYTE(Data);
 SPI0_WAIT_FOR_SEND();

 return SPI0_READ_BYTE();
}


SPI MODE설정시 주의 사항




SPI 가속도 센서를 테스트 하기위해 [NET-EVM] 보드를 이용하였는데 SPI CS는 CN7의 P8번에 연결되어 있고 이는 MSP430보드의 P3.7에 할당되어 있다. 드라이버 파일(config.h)에 아래와 같이 설정할 수 있다.
//AccelCS A8-P3.7
#define ACCEL_CS_BIT     BIT7
#define ACCEL_CS_PORT     P3OUT

#define ACCEL_CS_INIT()     Sbi(P3DIR, ACCEL_CS_BIT);


[MSP430F2274 EVM]보드를 이용한 SPI테스트 예제 - 가속도 센서 테스트
//-----------------------------------------------------------------------------
int main(void)
{
 int flag = 0;
 short data = 0;
 
    //System Init
 SystemInit();
 
    //LED Init
 Led1Init();
 Led1On();
 
 //Serial Init
 DebugInit(BAUD_115200);
 DebugPrint("MSP430F2274 SPI Test Program.\r\n");
 
//SPI및 가속도 센서초기화
 myAccel3lvInit();
 
 while (1)
 {
  if(u0_IsReceiveData())
  {
   switch(U0_GetByte())
   {
    case 'i':
     myAccel3lvWrite(CTRL_REG1, 0xC7);  //1000.0111 Power on, enable all axis, self test off
     DebugPrint("Accel Init\r\n");
     break;   
  
    case 'r':
     data = myAccel3lvRead(WHO_AM_I);
  
     DebugPrint("Who am I? 0x%x\r\n", data);  
     break; 
     
    case 'x':
     GetAccelValue(AXIS_X, &data);
  
     DebugPrint("%d\r\n", data);  
     break;    
   }
  }  
 }
}



Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430F20132007. 6. 4. 12:49

[MSP430F2013 EVM] - LCD제어

[MSP430F2013 EVM] -  LCD제어

MSP430 확장테스트 보드를 이용하여 MSP430F2013 EVM 보드 LCD테스트



베이스 보드는 MSP430 EXP보드를 이용하였고 LCD 테스트 모듈을 이용하여 3핀의 SPI방식으로 제어 하였다.




LCD테스트 모듈



MSP430F2013과 LCD모듈 연결 커넥터





Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430F20132006. 11. 7. 21:20

[MSP430F2xEVM] 관련자료

[MSP430F2xEVM] 관련자료

사용자 삽입 이미지



상당히 소형에 가장 필수 기능은 다 포함하고 있는 QFN타입의 MSP430F2013 을 모듈로 테스트 할 수 있는 보드를 제작 했다.



핀맵(MSP430F2013)




회로도:


MSP430 JTAG
Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430F20132006. 11. 4. 09:21

[MSP430F2x EVM]신버전 V1.1 PCB 입고되어 조립

[MSP430F2x EVM]신버전 V1.1 PCB 입고되어 조립 완료 하였다.
가장 큰 차이점은 메인 전원이 3.3V입력에서 5V입력으로 바뀐것이다. 기존의 보드들과 호환성을 위해 5V로 변경하였다. MSP430F2013를 조립하였는데 정말 작은 싸이즈다.





그 다음으로 PCB굵기 인데 기존 1.6T에서 0.8T로 줄여 좀더 심플해 보인다.





뒷면에  I2C방식의 12Bit DAC(U5)를 추가 하여 정밀 DA출력도 가능하도록 하였다.



MSP430F2103을 테스트 할 수 있는 Application Board를 제작하여 여러가지 테스트를 할수 있도록 하였다.
Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430F20132006. 5. 15. 19:42

[MSP430F2x EVM] JTAG 프로그래머 커넥터 확장 DYI

[MSP430F2x EVM] JTAG 프로그래머 커넥터 확장
ez430의 JTAG커넥터는 1.27mm피치라 커넥터 구하기도 쉽지 않고, 견고함도 많이 떨어져 일반적인 2.54mm피치의 커넥터로 변경해서 사용하면 상당히 편리한점이 많다.
 
 
- 회로를 확인하고 보드 뒷면에서 VCC, SBWTCK, SBWTDIO, GND신호를 연장한다.
적 : VCC
청 : SBWTCK
황 : SBWTDIO
흑 : GND


-케이블 연결후 덮게를 쉬운다.



-[MSP430F2x EVM]의 JTAG커넥터에 순서데로 연결 한다.



-MSP430F2013 JTAG 커넥터 확장 완료

 

 
Posted by nexp

댓글을 달아 주세요