Embedded System 58

[MSP430] 튜토리얼 3 - GPIO 제어(1)

목차 1. [MSP430] 튜토리얼 1 - Code Composer Studio(CCS) 설치 2. [MSP430] 튜토리얼 2 - 프로젝트 생성 3. [MSP430] 튜토리얼 3 - GPIO 제어(1) (현재글) GPIO란 General Purpose Input Output의 약자로 MCU의 가장 흔한...? 기본이 되는 기능이다. MSP430에서는 어떻게 I/O를 제어하는지 알아보자. 먼저 MSP430FR5969 런치패드에 연결되어 있는 LED부터 살펴보자. 회로도를 보면 초록색 LED는 P1.0에 연결되어 있고, 빨간색 LED는 P4.6에 연결되어 있음을 알 수 있다. I/O 기능과 관련된 레지스터는 여러가지가 있는데 일단 LED를 켜고 끄는데 필요한 레지스터 먼저 살펴보자. 참고로 FRAM으로 만..

[MSP430] 튜토리얼 2 - 프로젝트 생성

목차 1. [MSP430] 튜토리얼 1 - Code Composer Studio(CCS) 설치 2. [MSP430] 튜토리얼 2 - 프로젝트 생성 (현재글) 3. [MSP430] 튜토리얼 3 - GPIO 제어(1) 이전 글에 이어 이번 글에서는 프로젝트를 생성하고 빌드 및 디버깅하는 법에 대해 설명한다. 먼저 CCS를 실행한 후 좌측 상단 File → New → CCS Project 를 클릭한다. 혹은 Getting Started 화면에 있는 New Project를 클릭해도 된다. New Project를 클릭하면 새 창이 하나 뜨는데, MCU 선택 및 프로젝트 이름 등을 설정한다. 난 MSP430FR5969 LaunchPad를 사용중이므로 Tartget에 MSP430FR5969를 선택해주었다. 나머지는 ..

[MSP430] 튜토리얼 1 - Code Composer Studio(CCS) 설치

목차 1. [MSP430] 튜토리얼 1 - Code Composer Studio(CCS) 설치 (현재글) 2. [MSP430] 튜토리얼 2 - 프로젝트 생성 (현재글) 3. [MSP430] 튜토리얼 3 - GPIO 제어(1) 오랜만의 게시글... 어쩌다 보니 MSP430 MCU를 사용할 일이 생겨서 개발환경 구축 및 사용방법에 대해 정리하고자 한다. 먼저 Texas Instuments 홈페이지로 이동하여 CCS를 검색한 후 다운로드부터 한다. www.ti.com/tool/CCSTUDIO ← 이 링크를 클릭하면 바로 다운로드 페이지로 이동가능. 스크롤을 조금 아래로 내리면 아래 사진과 같은 모습을 확인할 수 있다. Download options를 눌러 본인의 OS환경에 맞는걸 다운로드한다. 다운로드 후 설..

[Cortex-M4] SW4STM32 STM32CubeMX 프로젝트 생성

프로젝트를 설정해보자. 이전글(클릭)에서는 개발환경을 구축했었다. 이제 STM32CubeMX를 이용하여 프로젝트를 생성해보자. 일단 나는 STM32F4 discovery보드를 사용하였다. 칩은 STM32F407이다. 먼저 SW4STM32를 실행하고 STM32CubeMX를 켠다. 다음으로 New Project를 눌러 진행한다. New Project를 클릭하면 아래와 같이 MCU를 선택하는 창이 뜨는데 본인이 사용하는 MCU를 고르고 하단의 OK를 누른다. OK를 누르면 아래와 같은 화면이 나온다. 이제 클럭 설정을 해주어야 하기때문에 왼쪽 목록중에 RCC를 선택한다. 나는 16MHz짜리 외부 크리스탈이 부착되어있기 때문에 High Speed Clock(HSE)를 Crystal/Ceramic ...으로 바꿔..

[아두이노] 3x3x3 LED 큐브 만들기

이것도 교생실습 때 한건데 이제야 포스팅을 하는군... 원래는 5x5x5나 8x8x8 LED큐브를 해볼까 했지만 나에겐 시간이 얼마 없었으므로 간단히 3x3x3 LED 큐브를... 준비물은 27개의 LED 그리고 47옴 저항 9개 1k옴 3개, 아두이노가 필요하다. 먼저 아래 그림처럼 LED를 만들어준다.+는 +끼리, -는 -끼리 연결해주어야 한다. 여기서 중요한게 +랑 -랑 쇼트나면 안된다. 잘 구부려서 만들어주자. ↑ 요걸 3세트 만들어준다. 이제 저걸 연결해주어야 하는데 밑에 그림처럼 만들어준다. 옆으로 길게 뻗은 +다리를 90도로 구부려서 +끼리 연결해준다. 서로 연결한 최종 모습.... 이제 아두이노랑 어떻게 연결하는지 회로도를 보면... 각각의 LAYER에서 선을 뽑아서 트랜지스터로 연결해준다..

[Cortex-M4] SW4STM32 개발환경 구축

ST사의 STM32 시리즈 중에 Cortex-M4로 개발하기 위하여 개발환경을 구축하고자 한다. 이전에 M3를 개발할 때 uVision4를 사용했었는데 무료버전을 사용하다 보니 용량제한이 걸려서 개발환경을 바꾸었다. 완전 무료인 SW4STM32로... 그리고 이클립스 기반으로 만들어져서 나는 마음에 든다! SW4STM32는 OpenSTM32 Community라는 곳에서 만든 IDE이다. 먼저 이 프로그램을 다운받기 위해 다음 주소로 이동한다. http://www.openstm32.org/HomePage 참고로 이클립스 기반이니까 자바 홈페이지에서 제공하는 jdk는 깔아줘야함. 아마도?! 아래와 같이 홈페이지 화면이 나오는데 내용을 잘 보면 다운로드가 있다. 눌러준다. 그러면 로그인하라고 뜨는데 아이디가 ..

[안드로이드] 이전 버전 ADT 번들 설치하기

2014년부터 안드로이드 adt 최신버전을 설치하고(adt 22.6 이상) 프로젝트를 만들면 appcompat_v7 라는것도 같이 생겨서 너무 귀찮다... 그리고 책이랑 달라... 그래서 이전 버전을 설치하는 방법을 기록해두겠다... http://developer.android.com/ 여기에 접속해도 최신버전만 받을 수 있고 이전 버전을 찾을 수 없었다. 그래서 서칭결과 알아낸것은 https://dl.google.com/android/adt/원하는 파일명 해주면 되는것이었다. 뭔말인고 하니 예를 들어 android-sdk_r22.3-windows.zip 이라는 파일을 받고 싶으면 https://dl.google.com/android/adt/android-sdk_r22.3-windows.zip 이라고 해..

[Cortex-M3] 타이머(TIMER) 사용하기

STM32F100RB 칩 안에는 AVR처럼 여러개의 타이머가 있다. 각 타이머는 16bit로 동작하는것 같다. 먼저 타이머의 기능을 살펴보면 여러가지 모드가 있는데 가장 기본적인 Counter Mode(Upcounting & Downcounting)가 있고 아래의 기능도 제공한다. - Input Capture - Output Compare - PWM generation - One-pulse mode output 여기서는 가장 기본적인 Counter Mode와 PWM generation을 다루어 보겠다. 먼저 Counter Mode - Upcounting의 소스를 보면.. #include "stm32f10x.h" volatile unsigned int Timer2_Counter=0; void init_po..

[Cortex-M3] 겁나빠른 GPIO 사용하기

앞 글(http://embejied.tistory.com/82) 에서 GPIO 사용하는 방법에 대해 설명했었다. 하지만 GPIO의 속도가 매우 느리다. 왜냐하면 함수를 사용하기 때문에 느린것이다. 물론 이것도 빠르긴하지만 GPIO속도를 50MHz로 설정한 의미가 없다... while문에서 딜레이 없이 토글만 시켜도 1Mhz정도 밖에 안나온다. 이를 해결하려면 레지스터에 바로 접근하면 된다. 어떻게 하는 것일까... 처음 GPIO 초기화 소스는 똑같다. 하지만 main에서 사용할 때가 조금 다르다. GPIO_Write()등의 함수를 사용하지 않고 BSRR, BRR 레지스터를 사용하는 것이다. 아래 소스를 참고하자. #include "stm32f10x.h" void init_port() { GPIO_Init..