본문 바로가기

[TI]

(100)
MSPM0G3507 GUI Composer 라이브러리 사용하기 TI의 https://dev.ti.com/gallery/ 는 다양한 GUI를 제공하는 솔루션 소프트웨어로 JSON 형식 문자열을 사용하여 데이터를 전송하고 GUI 위젯과 연결하하여 간단히 입 출력 할수 있는 도구 이다. GUI를 이용하려면 TI에서 제공하는 gui_composer 라이브러리를 이용하면 쉽게 데이터를 송 수신 할 수 있다. [gc_simple_json 전체 예제 소소코드]https://dev.ti.com/tirex/explore/node?node=A__AE1F5mI8zvPZ1GlsPcvVkw__MSPM0-SDK__a3PaaoK__LATEST#include "ti_msp_dl_config.h"#include #include #include // GUI Composer 하드웨어 추상화 레..
[MSPM0G3507 SSM] SPI테스트 - W5500 을 이용한 TCP 전송률 테스트 기존의 MSPM0L1306(https://nexp.tistory.com/4071)의 SPI최대 클럭은 16Mhz 였는데 MSPM0G3507은 80Mhz 클럭으로 동작하고 최대 40Mhz SPI클럭을 출력 할 수있다. MSPM0G3507의 SPI 기능으로 W5500 이더넷 모듈을 이용하여 TCP 전송률 테스트를 해보자. CCS의 SysConfig 로 SPI 를 추가 하고 80Mhz에서 SPI클럭을 선택하면 최대 40Mhz SPI클럭을 출력 할 수 있다.하지만 SPI 최대 전송률은 32Mhz로 제한이 되어 있다. 클럭 자체는 40Mhz로 출력 되지만 데이터 를 보장하려면 클럭을 줄여야 한다. 이부분은 아쉽다. 일단 20Mhz 클럭으로 설정하고 테스트 해보자. MSPM0G3507의 SPI핀은 PA4~PA6에..
[MSPM0G3507 SSM] 12bit DAC 테스트 - 사인파 출력하기 MSPM0G3507의 특징으로 12Bit DAC가 있다. MSPM0L 시리즈는 8bit DAC가 있어 약간 아쉬움이 있었는데… 12bit DAC로 좀더 고성능 DAC를 테스트 해 볼 수 있을것 같다. MSPM0의 아날로그 기능은 다양한 옵션설정으로 고성능의 프로젝트에 적용할 수 있다. 우선 SysConfig로 DAC12를 추가 하고 레퍼런스 및 핀맵을 설정하자. DAC의 클럭 베이스는 MFPCLK인데 디폴트는 사용하지 않는 것으로 되어 있기 때문에 체크 해 주어야 한다. DAC12 출력은 다양한 아날로그 기능에 설정할 수 있는데 단순히 DAC출력을 확인하기 위해 Output Amp에 할당하자. SysConfig 설정후 빌드하면 자동 코드가 생성되는데 DL_DAC12_output12 함수로 DAC 출력을 ..
[MSPM0G3507 SSM] 저전력 슬립(STOP)모드 테스트 MSPM0Gxx 시리즈의 특징으로 고성능, 저전력 기능이다. 전통적으로 MSP430시리즈는 저전력 기능이 우수 하였지만 성능에서 아쉬운점이 있었는데 MSPM0 시리즈로 오면서 성능까지 향상된것 같다. MSPM0의 저전력 모드는 SLEEP, STOP, STANDBY, SHUTDOWN 모드로 구분된다. Sleep 모드 4Mhz에서 200uA를 소모하고 Stop 모드에서 32khz에서 50uA를 소고 한다고 한다. 모소 전력 면에서 역시 MSPM0 시리즈가 탁월한 것 같다.클럭이 살아 있는 STOP 모드에서 최소 46uA를 소모 한다고 하니.. 테스트 해볼 필요가 있을것 같다. MSPM0G3507을 이용해서 스위치를 누르면 Sleep 모드로 진입 했다가 다시 누르면 깨어나서 동작 하는 기본 예제를 테스트 해..
[MSPM0G3507 SSM] 타이머 인터럽트 테스트 마이크로 컨트롤러로 제어를 할때 가장 기본이되고 많이 사용하는 기능이 타이머 인데 MSPM0G 시리즈는 7개의 타이머로 다양한 기능을 제공한다. 그중 가장 기본이 되는 타이머 인터럽트 테스트를 해 보자.SYS Config를 이용하여 타이머를 추가 하고 클럭 소스와 주기를 설정하면 되는데 아주 직관적으로 설정이 가능하다. 테스트를 위해 1ms로 인터럽트가 수행될 수 있도록 설정한다. 인터럽트 이벤트도 다양한 옵션으로 선택가능한데 우선 타이머값이 Zero가 되었을때 발생할 수 있도록해서 1ms 마다 인터럽트가 수행되도록 하자 MSPM0G3507 타이머 인터럽트 테스트 코드DL_TimerG_startCounter 함수로 타이머를 구동하고 타이머 인터럽트 핸들러 TIMER_0_INST_IRQHandler ..
[MSPM0G3507 SSM] CPU 성능 테스트 (80Mhz PLL 사용) MSPM0 시리즈는 저전력 기반이라 클럭 속도에 대해 고려를 하지 않았는데 MSPM0G 시리즈는 고성능 (80Mhz)을 지원 한다고 하니 테스트 한번 해 보면 좋을것 같다. TI MSP 시리즈의 특징 답게 클럭 소스가 상당히 다양하다. 저전력 구동을 위해 다양한 클럭 소스로 성능을 최대한 사용하기에 좋을것 같다. MSPM0G3507의 80Mhz 클럭을 설정하려면 SYSCTL에서 Use Clock Tree를 체크해야 한다. Clock Tree에서 SYS PLL을 설정하면 최대 80Mhz까지 설정 가능하다. Clock Tree Summary 탭을 확인하면 각 클럭 소스의 값을 확인 할 수 있다. 이제 MSPM0G3507의 GPIO 토글 속도를 측정해 보자.우선 MSPM0 시리즈의 GPIO 제어 함수를..
[MSPM0G3507 SSM] MSPM0G3507 테스트 보드 제작 MSPM0 시리즈중 가장 성능이 좋은 MSPM0G3507을 테스트 할 수 있는 보드를 표준 핀맵 형태의 SSM TYPE으로 제작 했다.MSPM0G시리즈는 80MHz Arm® M0+ MCU, 128KB 플래시, 32KB SRAM, 2 × 12비트 4MSPS ADC, 연산 증폭기, CAN-FD등 다양한 아날로그 기능을 가지고도 1$정도의 저렴한 가격으로 판매되고 있다. MSPM0G3507 주요 회로 핀맵 MSPM0G 시리즈는 CAN-FD 를 지원하므로 CAN통신을 할 수 있는 드라이버도 추가 했다. MSPM0 시리즈는 USB 기능이 없기 때문에 USB UART(CH9101)를 추가 해서 디버깅을 편하게 할 수 있도록 했다.
[MSPM0G3107 SSM] PWM 테스트 - RC Servo Motor 제어 MSPM0G3107 PWM 테스트를 해 보자. 확장테스트 보드에는 RC Servo 모터를 연결 할수 있는 커넥터가 3채널이 있기 때문에 PWM을 이용해 서보 모터를 제어 할 수 있다.   서보 보터는 20ms 주기에 0.5ms ~ 2.5ms로 펄스폭을 제어 하면 된다.  TIMER-PWM을 추가 하고 PWM 출력 주기를 20ms(50hz) 로 설정하고 invert 설정으로 출력을 반전시켜 출력 할수 있도록 설정해 준다.  인터럽트 입력예제를 이용해 스위치 입력에 따라 서보 모터의 위치를 변경하는 예제를 작성할수 있다.#include "ti/driverlib/m0p/dl_interrupt.h"#include "ti_msp_dl_config.h"extern volatile uint32_t interruptV..