마이크로 프로세서 OT

Download Report

Transcript 마이크로 프로세서 OT

마이크로프로세서

오리엔테이션 IRL 김도형

마이크로 프로세서 1. 교과목 학습 목표 2. 주차별 실습 계획 3. 최종 회로도 및 부품 리스트 4. Cortex-M3 보드 사양

Intelligent Robots Laboratory 15. 9. 1

마이크로 프로세서 조교 소개 지능로봇연구실 석사과정 김도형 [email protected]

http://irl.cbnu.ac.kr

: 자료 게시 교육관 402호

Intelligent Robots Laboratory 15. 9. 1

Intelligent Robots Laboratory 15. 9. 1

마이크로 프로세서

● ● ● ●

마이크로 프로세서의 동작과 응용을 이해한다.

기본 회로도에 의한 하드웨어를 제작하고 시험한다.

모터 및 센서을 직접 제어한다.

예제 및 과제를 응용하여 나만의 작품을 완성한다.

실습 교재 및 참고 문헌

● ● ● 마이크로프로세서 – ARM Cortex-M3, 박찬식, 김곤우, 충북대학교 부교재 : ARM Cortex-M3 시스템 프로그래밍 완전정복 I, II 제공되는 ppt 파일 혹은 소스 프로그램

Intelligent Robots Laboratory 15. 9. 1

마이크로 프로세서

주별 강의요목

1주차 : 실습 제작할 하드웨어 부품/개발환경 소개, 부품 구입, 조편성 2주차 : GPIO 실습(LED, 7-segment) 3주차 : Interrupt를 이용한 LED 및 스위치 제어 4주차 : Timer 실습 LED 제어 / 7-segment 시계(중간 과제) 5주차 : PWM을 이용한 모터 제어 / PWM 신호발생 6주차 : PWM을 이용한 모터 정밀제어 PID

마이크로 프로세서

주별 강의요목

7주차 : SPI 8주차 : USART 9주차 : I2C 센서 10주차 : 프로젝트 주제 선정 및 발표 Intelligent Robots Laboratory 15. 9. 1

전체 회로도

Intelligent Robots Laboratory 15. 9. 1

마이크로 프로세서 전체 구성도

1. LED 및 스위치 2. 7-segment 표시 3. 3축 가속도 센서 4. 모터 제어 Intelligent Robots Laboratory 15. 9. 1

부품리스트

부품명

Stm32 cortex-m3 Serial Cable Mini USB 5P Cable USB 시리얼 젠더 엔코더 모터 RB-35GM+Encoder DC 모터 구동모듈 엔코더 확장 모듈 7-segment 3축 가속도 센서(

BMA150)

7805 Regulator 전해 Capacitor E/C 35V 100uF (85℃) 100uF 저항 1k, 330 LED(5파이 빨간색 불투명) 제공되지 않은 부품은 부가세 미포함가격

수량

1 1 1 1 1 1 1 1 1 1 4 10~15 6

가격

\25,000 \3,500 \1,300 \12,300 \26,500 \20,000 \8,000 \1,300 \15,000 \250 \40 \10,\10 \50 Intelligent Robots Laboratory 15. 9. 1

제공/구입

제공 ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ 학생구입 ‘’ ‘’ ‘’ ‘’

비고

1인당 1개 ‘’ 1조당 1개 1인당 1개 2조당 1개 ‘’ ‘’ 1인당 1개 ‘’ ‘’ ‘’ ‘’ ‘’

부품리스트

부품명

150 x 200 사각 만능 기판 - 단면 핀헤더 Single 1x40Pin Straight(2.54mm) 핀헤더소켓 Single 1x20 Straight(2.54mm) SIC-DIP-16핀 IC BCD-TO-7SEG DECODR/DVR 16-DIP LM1117IMPX-3.3

NT-IDC 10핀 케이블 KLT-1105AT 인두기 래핑와이어 납 니퍼 스트립퍼 제공되지 않은 부품은 부가세 미포함가격

수량

1 1 1 1 1 1 1 4 1 1 1 2 3~5

가격

\7,500 \140 \220 \36 \4,600 \1,600 \1,200 \70 Intelligent Robots Laboratory 15. 9. 1

제공/구입

학생구입 ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’

비고

1인당 1개 ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’ ‘’

드보드 사양

Intelligent Robots Laboratory 15. 9. 1  Mango-M32는 STM32F103xx MCU의 거의 모든 기능을 사용할 수 있도록 설계된 보드로 LED와 7-세그먼트 등을 배치하여 사용자가 시각적으로 쉽게 접근할 수 있도록 구성되어 있 다 

Mango-M32의 사양

- STM32F103xx MCU: Cortex-M3기반 ST Microelectronics사의 Micro-Controller 64Kbytes or 128Kbytes Flash Option - 2-Port RS-232C Interface - 1 Port USB 2.0 FS Device Interface - 3 Indicator LEDs - 1 7-Segment LED - 1 Power LED - 2 USER Keys : WKUP, USER - 1 Reset Key - 1 Boot Select Switch : System Memory and Main Flash Boot - 2x20Pin HEADER for Expansion - Option: 32.768kHz, 12MHz Crystal Oscillator

보드 사양

Intelligent Robots Laboratory 15. 9. 1

번 호 1 3 5 7 9 11 13 15 설명 STM32F103xx MCU SP3232 UART-RS232C Level Converter RS232C Port #2 (UART 2) Boot Select Switch (BOOT0) USER 버튼 12MHz 크리스탈 Power LED 20핀*2열 HEADER 커넥터 번 호 2 4 6 8 10 12 14 16 설명 USB mini-B 커넥터 RS232C Port #1 (UART 1) 7-세그먼트 LED WKUP 버튼 RESET 버튼 32.768KHz 크리스탈 Indicator LEDs JTAG 커넥터

Intelligent Robots Laboratory 15. 9. 17

USB 커넥터

Mango-M32의 USB 커넥터는 전원 공급 및 USB2.0 FS 모드로 Host와의 데이터 통신 2가지 목적으로 사용

 전원공급: Mango-M32의 USB 전원은 내부 LDO(Low Dropout)로 연결되어 3.3V 내부 전원을 만든다. USB 전원에 연결 되면 Power LED (Part #13)가 점등하여 전원이 정상적 으로 연결되었음을 알려 준다  USB 2.0 FS Device: Mango-M32 보드의 STM32F103xx MCU에는 USB 2.0 Full-Speed Device 포트가 장착되어 있다. 이 포트를 통해 Host와 USB를 사용하여 통신을 할 수 있 다.

Intelligent Robots Laboratory 15. 9. 17

RS232 커넥터

Mango-M32는 RS232C 연결을 위해 2개의 3핀 HEADER 커넥터를 제공한다. 두 개의 RS232C 포트는 각각 CON5와 CON6에 할당되어 있다.

CON5 RS232C Port #1 >> UART Port #1과 연결 CON6 RS232C Port #2 >> UART Port #2와 연결

Intelligent Robots Laboratory 15. 9. 17

7-segment

■ ■ ■

세그먼트를 구성하는 각 LED의 Anode가 전원에 연결된 Common Anode 유형으 로 해당 GPIO 포트가 “LOW”일 때 점등하게 된다. 7-세그먼트의 a, b, c, d, e, f, g 세그먼트가 각각, PC0, PC1, PC2, PC3, PC4, PC5, PC7에 연결되어 있다. 7- 세그먼트의 전원부는 PMOS FET를 거쳐서 +3.3V에 연결되어 있고PC8 포트에 의해 제어된다.

Intelligent Robots Laboratory 15. 9. 17

Boot mode

Mango-M32는 STM32F103xx의 3가지 Boot Mode중 Main Flash Memory와 System Memory Boot를 선택할 수 있게 해 준다

   BOOT1핀을 LOW로 고정시키고, BOOT0핀을 Boot Select Switch에 할당하여, Main Flash Memory와 System Memory 부트 중 하나를 선택 Main Flash Memory Boot : 사용자가 Program한 Flash Memory로 부트 System Memory Boot : 내장 ROM으로 부트. 주로 UART를 통한 Program 다운로드에 사용

Intelligent Robots Laboratory 15. 9. 17

스위치

사용자의 키 입력을 받을 수 있도록, WKUP, USER 버튼을 제공하고 보드 RESET 을 위해 RESET 버튼을 제공

Mango-M32 Button WKUP USER STM32F103xx GPIO PA0_WKUP_U2CTS_ADCIN0_T2CH1_ETR PA1_U2RTS_ADCIN1_T2CH2  WKUP 기능은 STM32F103xx가 최소의 전력을 소모하는 상태인 Standby 상태에서 깨어 나기 위해 사용

Intelligent Robots Laboratory 15. 9. 17

시스템클럭

Part #11과 #12는 각각 12MHz와 32.768KHz 크리스탈이며 시스템 클럭 및 RTC 클럭을 만들기 위해 사용

Part #13은 Mango-M32 보드의 전원 공급을 확인하기 위해 사용되는 LED로 전 원이 공급 될 때 점등하며, 이 때 수mA의 전류가 흐르게 된다

Part #14은 3개의 Indicator LED를 나타내며 각 Indicator LED는 STM32F103xx 의 PB5, PB8, PB9 GPIO에 연결되어 있다

Intelligent Robots Laboratory 15. 9. 17

핀 배치

Mango-M32에는 2개의 20핀 HEADER 커넥터 홀이 나와 있어 확장 커넥터의 역 할을 하도록 되어 있다

Intelligent Robots Laboratory 15. 9. 17

M3 의 개발

마이크로 컨트롤러의 효율적인 구동을 위해서는 펌웨어의 개발이 필수적이며, 이 를 위해서는 소스코드를 컴파일할 수 있는 컴파일러와 컴파일 된 바이너리 코드를 메모리에 퓨징하기 위한 퓨징 프로그램이 필요

STM32를 위한 컴파일러로는 Keil, IAR, Ride7 등의 컴파일러가 존재하며 본 교재 에서는 Ride7 컴파일러 사용

컴파일된 바이너리 코드를 STM32 보드 메모리에 퓨징하기 위한 툴인 STM Flash Loader 필요

컴파일러

Intelligent Robots Laboratory 15. 9. 17 ■

Ride7은 STRx와 STM32 보드의 개발을 위한 IDE(Integrated Development Environment) 개발환경을 지원하며 프로그램은 아래 링크에서 다운로드 받아 설 치한다

 http://support-raisonance.com/extranet/home/index.php

RIDE7

새로운 프로젝트 만들기

 Project ⇒ New Project 선택해서 새로운 프로젝트를 생성 Intelligent Robots Laboratory 15. 9. 17

Intelligent Robots Laboratory 15. 9. 17

RIDE7

프로젝트 생성하기

   새로운 프로젝트를 생성할 때 가장 먼저 타겟 디바이스를 설정해야 하며, 아래 그림과 같은 창에서 적절한 타겟 디바이스를 설정해 주어야 함.

본 교재에서 사용한 Mango-M32 보드를 사용하기 위해서는 STM32F103RB을 선택하여 야 함.

적절한 프로젝트의 이름을 작성한 수 저장될 폴더를 선택한 후 마침.

RIDE7

소스파일 생성

 아래 그림과 같이 Add->New Folder를 선택해서 새 폴더를 생성 Intelligent Robots Laboratory 15. 9. 17

Intelligent Robots Laboratory 15. 9. 17

RIDE7

   다음으로 소스폴더에 소스파일을 생성하기 위해 File->New->Source File을 선 택 소스파일을 적절히 저장하기 위해서는 적절한 파일명을 작성한 후 File->Save As...를 선택해서 원하는 디렉토리에 파일명.c 로 저장 다음으로 소스파일을 관리하기 위한 폴더에서 마우스 오른쪽 클릭을 한 후 Add->Item..을 선택해서 디렉토리 안에 파일을 추가

RIDE7

Intelligent Robots Laboratory 15. 9. 17

RIDE7

프로젝트 옵션

Intelligent Robots Laboratory 15. 9. 17

RIDE7

프로젝트 옵션

Intelligent Robots Laboratory 15. 9. 17

RIDE7

프로젝트 옵션

Intelligent Robots Laboratory 15. 9. 17

RIDE7

프로젝트 옵션

Intelligent Robots Laboratory 15. 9. 17

RIDE7

프로젝트 옵션

Intelligent Robots Laboratory 15. 9. 17

Intelligent Robots Laboratory 15. 9. 17

Flash Loader

■ ■

앞 절에서 생성한 소스파일을 컴파일러를 이용하여 컴파일을 하면 타겟 디바이스 에 맞는 바이너리 파일이 생성된다 생성된 바이너리 파일을 타겟 디바이스에 퓨징을 해 주어야 하드웨어에서 동작하 게 된다 >> STM Flash loader http://www.st.com/stwebui/active/en/catalog/tools/PF257525

Flash Loader

프로그램 다운로드를 위한 초기 설정 화면

Intelligent Robots Laboratory 15. 9. 17

Flash Loader

프로그램 다운로드를 위한 초기 설정 화면

Intelligent Robots Laboratory 15. 9. 17

Intelligent Robots Laboratory 15. 9. 17

Flash Loader

바이너리 파일이 성공적으로 보드에 다운로드 되면 다음으로 보드의 boot mode 스위치인 SW11을 실행방향으로 설정하고 Reset버튼을 눌러 입력된 프로그램을 실행

Token2Plus

Token2Plus

 http://www.coung.net/Token2Shell Intelligent Robots Laboratory 15. 9. 17

Token2Plus

Token2Plus

Intelligent Robots Laboratory 15. 9. 17

Token2Plus

Token2Plus

Intelligent Robots Laboratory 15. 9. 17