[MSP430]/MSP430F2013 (28) 썸네일형 리스트형 MSP430 I2C 전송 속도 테스트 MSP430 I2C 전송 속도 테스트 MSP430F2013 보드는 UART가 없어 I2C로 데이터를 수집테스트 정리 구성도 MSP430F2013 (I2C Slave) ->AVR (I2C Master) -> USB2Serial -> PC Host AVR - > 8Mhz 구동 MSP430F2013 -> 16Mhz구동 2Byte 데이터 수집 속도 측정 H/W 구동시 100Khz 구동시 450us 소요된다. 150Khz 까지 구동 가능하고 이때는 300us 소요된다. (200Khz 이상부터 깨지기 시작한다.) ->메인클럭을 16Mhz까지 올리니 400khz도 문제 없이 잘 동작한다. S/W I2C 구현시 AVR 8Mhz클럭에서 600us 소요된다. H/W I2C 구현 예제 unsigned char ReadByt.. MSP430F2013 을이용한 16Bit ADC 데이터 수집 테스트 MSP430F2013 을이용한 16Bit ADC 데이터 수집 테스트 MSP430F2013은 UART가 Timer로 구현할 수 있고 2400Bps로 상당히 느려서 I2C를 이용하여 데이터를 수집하는 테스트를 진행 하였다. 구조는 아래와 같고 PC(USB) -> AVR ( I2C Master) -> MSP430F2013(I2C Slave) 16비트 데이터 수집하여 그래프로 표시한 결과 변환값은 옵셋이 있는것 같고 OSR1024로 설정한 데이터가 좀더 일정한것 같다. 입력전압 100mV Gain1, OSR256 (digital filter) SD16CCTL0 = SD16UNI + SD16IE + SD16OSR_256; 입력전압 100mV Gain1, OSR1024 (digital filter) SD16CCTL.. [MSP430F2013 EVM] 클럭 시스템 및 속도 측정 MSP430 GPIO 토글 해서 클럭 설정에 따른 CPU속도를 측정했다. 프로그램 코드 while(1) { P1OUT ^= LED1_BIT; } ASM코드 측정 결과 1Mhz DCO : 6us 8Mhz DCO: 740ns 665Khz 16Mhz DCO : 360ns 1.4Mhz (AVR속도 측정 참고) 클럭 설정부분 코드 수정 //Set range :1, 8, 12, 16Mhz #if (__SYS_CLK__ == SYS_CLK_1MHZ) #define CALBC1_FREQ CALBC1_1MHZ #define CALDC0_FREQ CALDCO_1MHZ #elif (__SYS_CLK__ == SYS_CLK_8MHZ) #define CALBC1_FREQ CALBC1_8MHZ #define CALDC0_FREQ.. [MSP430F2013-SS EVM] 초소형 MSP430F2013 보드 제작 [MSP430F2013-SS EVM] 초소형 MSP430F2013 보드 제작 초소형, 초 저전력 MSP430F2013 보드를 제작해 보았다. 테스트용도로 가끔 소형 모듈이 필요한데... 간단한 마이컴이 필요한 상황에서 유용하게 사용할 수 있다. 확장 테스트 보드 MSP430 I2C 테스트 - USCI(H/W SM) vs USI (MSP430F2013 S/W SM I2C) Universal Serial Interface MSP430F2013은 USI모듈로 SPI, I2C인터페이스를 제공한다. I2C는 USCI를 지원하는 상위 MSP430과 같은 풀 하드웨어로 동작하는것은 아니고 소프트웨어 State Machine를 구현해야 한다. 이때문에 약간 귀찮은 작업을 해 주어야 한다. 물론 속도도 느려지지만 그나마 소형 모듈에서 쉽게 구현할 수 있다는 장점이 있다. 소프트웨어 SM 구조 Slave 구현 1)Master에서 Start + (7bit+1bit)Address를 전송하고 NACK를 기다린다. 2)Slave에서 Address가 맞으면 NACK를 전송한다. 3)Slave에서 Data 전송한다. 4)Master에서 Data수신후 NACK를 송신 5)Slave에서 NACK수신 6.. MSP430F2x EVM ADC16 테스트 MSP430F2x EVM ADC16 테스트 ADC16 속도 #pragma vector = SD16_VECTOR __interrupt void SD16ISR(void) { if (SD16MEM0 0.3V?, clears IFG P1OUT &= ~0x01; else P1OUT |= 0x01; P1OUT ^= 0x80; } ADC값 읽어서 비교하는 루틴을 포함하고도 ADC측정 속도는 220us정도로 측정되었다. ADC16속도 측정 -> 220us 테스트 동영상 P1.2에 연결한 VR의 전압값이 0.3V이상이면 LED를 On하는 예제 테스트 예제 코드 void main(void) { SystemInit(); Led1Init(); SD16CTL = SD16REFON + .. MSP430F20x3 ADC16 관련자료 MSP430F20x3 ADC16 관련자료 참고 자료 아날로그 입력 범위 ADC16의 입력 범위는 아래와 같다. 기본적으로 1.2V 내부 ref를 사용할 경우 (1.2V/2)/1 = (+/-)0.6V까지 측정할 수 있다. 유니폴러의 경우 0.6V까지 측정 가능. 게인은 32까지 가능하고 SD16INCTL0 레지스터에서 설정할 수 있다. 아날로그 입력 특징 출력 형태 프로그램 초기화 코드 SD16CTL = SD16REFON + SD16SSEL_1; // 1.2V ref, SMCLK SD16INCTL0 = SD16INCH1 + SD16GAIN_1; // A1+/-, Gain = 1 SD16CCTL0 = SD16UNI + SD16IE; // 256OSR, unipolar, interrupt enable SD16.. [MSP430F2013] - LCD Module 테스트 MSPF2013은 UART가 없기 때문에 PC없이 내부 데이터 보기가 쉽지 않다. ADC나 SPI, I2C 테스트 할 때 불편한 점이 있다. 이번에 정리 하면서 예전에 제작했던 [LCD Module]에 이용하여 [MSP430F2013 - S EVM] 보드 를 연결해 보았다. 그리고 변수 값을 int스트링으로 변환하는 함수도 제작해 보았다. 다음에 재사용을 위해 MSP430의 핀맵을 기록해 두자. MSP430F2013을 연결하여 ADC값을 출력하도록 했다. 이전 1 2 3 4 다음