본문 바로가기

MSP430_STUDY

(26)
[MSP430] Falsh Write - EEPOM 처럼 사용하기 [MSP430] Falsh Write - EEPOM 처럼 사용하기 MSP430은 EEPROM이 없고 대신 Flash 영역에 데이터를 저장할 수 있다. 실행 중에 Flash 영역에 저장할 수 있기 때문에 변경 될수 있는 설정 파라미터를 저장하기에 좋을것 같다. #define _SEG_C_ADDR 0x1040 void falsh_wrte(unsigned char *pBuf, int Size) { char *Flash_ptr; // Flash pointer unsigned int i; Flash_ptr = (char *)_SEG_C_ADDR; // Initialize Flash pointer FCTL2 = FWKEY + FSSEL0 + FN1; // MCLK/3 for Flash Timing Generator..
[MSP430AFE EVM] 24bit ADC테스트 - LCD에 ADC24 데이터 그래프 표시하기 [MSP430AFE EVM] 24bit ADC테스트 - LCD에 ADC24 데이터 그래프 표시하기 MSP430AFE2xx 의 가장 큰 특징은 24bit ADC를 내장하고 저전력, 저가격의 MCU이다. ADC특징을 보면 아래와 같다. Features of the SD24_A include -Up to three 24-bit second-order ΣΔ ADC - Differential inputs o Simultaneous sampling - Oversampling of up to 1024 - Integrated Programmable Gain amplifier of gains up to 32 - Integrated temperature and voltage sensor - Integrated accura..
[MSP430AFE EVM] UART테스트 [MSP430AFE EVM] UART테스트 24bit ADC디버깅 하기 위해 UART를 이용하면 편리하다. 기존 MSP430 UART 코드로 동작을 하지 않아 수정하면서 정리해 보았다. MSP430시리즈마다 UART특성이 조금씩 다른데 MSP430AFE는 MSP430F2xx 를 기준으로 하고 있다. MSP430AFE UART블록도 U0TCTL (USART Transmit Control Register) 기존 22xx 시리즈와 레지스트 명이 달라서 조금 수정이 필요하다. 1Byte 전송함수 void U0_PutByte(unsigned char Data) { // USART0 TX buffer ready? while (!(U0TCTL & TXEPT)); TXBUF0 = Data; } 1Byte 수신함수 un..
[MSP430F5510 EVM] ADC 테스트 [MSP430F5510 EVM] ADC 테스트 MSP430F55x 으로 오면서 몇가지 페리들이 변경되었는데.. ADC도 약간의 레지스터 및 기능상 변화가 있었다. MSP430F55xx ADC구조 MSP430F5510 ADC 초기화 코드 //ADC Initialize void AdcInit(void) { // Configure ADC10 - Pulse sample mode; ADC10SC trigger ADC10CTL0 = ADC10SHT_2 + ADC10ON; // 16 ADC10CLKs; ADC ON ADC10CTL1 = ADC10SHP + ADC10CONSEQ_0; // s/w trig, single ch/conv ADC10CTL2 = ADC10RES; // 10-bit conversion resul..
[MSP430F5529 EVM] SPI테스트 - 3축 가속도 센서 출력 [MSP430F5529 EVM] SPI테스트 - 3축 가속도 센서 출력 [MSP430F5510 EVM] 및 [MSP430F5529 EVM] 의 SPI는 PORT4의 USB1에 할당 되어 있다. 핀맵을 보면 아래와 같다. P4.3/PM_UCB1CLK/PM_UCA1STE P4.2/PM_UCB1SOMI/PM_UCB1SCL P4.1/PM_UCB1SIMO/PM_UCB1SDA P4.0/PM_UCB1STE/PM_UCA1CLK MSP430F5x의 SPI특징 SPI mode features include: • 7-bit or 8-bit data length • LSB-first or MSB-first data transmit and receive • 3-pin and 4-pin SPI operation • Master ..
[MSP430] WATCHDOG 사용하기 [MSP430] WATCHDOG 사용하기 MSP430에서 Watchdog 사용하기위해 WDTCTL레지스터를 설정하면된다. 디폴트로 와치독은 동작하도록 되어 있고 내 코드에서는 SystemInit() 함수에서 와치독 사용하지 않도록 설정하고 있다. void SystemInit(void) { int result,i; WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer WDTCTL레지스터를 제어하기 위해서는 Passwoard를 상위 레지스터가 기입해야 하는데 0x69를 입력하면 된다. 아래는 WDTCTL레지스터 이다. 와치독 사용하기 위해서는 WDTHOLD, WDTTMSEL 비트를 0으로 설정하면된다. 와치독 타이머 초기화는 WDTCNTL비트를 셋하면 초기화되어 와치독 리셋을..
[MSP430] 외부 인터럽트 [MSP430] 외부 인터럽트 외부 인터럽트 초기화 //외부 인터럽트 설정 Sbi(P1IE, SCLK_BIT); //interrupt enabled Cbi(P1IES, SCLK_BIT); //edge 선택 0:라이징, 1:폴링 Cbi(P1IFG, SCLK_BIT); //IFG cleare 인터럽트 처리 핸들러 #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { if(P1IFG&SCLK_BIT) { Led1Toggle(); Cbi(P1IFG, SCLK_BIT); } }
[MSP430 PWM] MSP430F2013 PWM [MSP430 PWM] MSP430F2013 PWM MSP430의 PWM 출력은 TA0, TA1에서 가능한데 P1.1, P1.2 (P1.5, P1.6)에서 출력 가능하다. PWM 초기화 void PwmInit2(void) { Sbi(P1DIR, BIT2); // P1.2 output Bit(P1SEL, BIT2); // P1.2 TA1 options CCR0 = PWM_PERIOD; // PWM Period/2 CCTL1 = OUTMOD_6; // CCR1 toggle/set CCR1 = PWM_PERIOD/2; // CCR1 PWM duty cycle TACTL = TASSEL_2 + MC_3; // SMCLK, up-down mode } PWM출력 #define SetPWMp2(Percent) CCR..