Latest Post
ARM Cortex-M3 시스템 프로그래밍 완전정복II (망고스토리 3.0)



Price : 24,500

help@crz-tech.com ( 031-701-5057)


Mango Story 3.0 Feature

l  ARM Cortex-M3 시스템 프로그램 개발 실전 가이드

l  입문에서 전문가 수준까지 친절한 안내서

l  Cortex-M3 MCU를 활용한 펌웨어 개발 실전 코드 제공

l  단순 제어에서 무선통신까지 광범위한 체험

l  조도 센서가속도 센서, CAN 트랜시버 보드 제어


 

목차


Unit 0 - 라이브러리 작업 및 Base Program 구축

1. STM32 Library Update 
작업
1.1. Library 
다운로드
1.2. Library 
수정 작업
1.2.1. 
전체 폴더 비교
1.2.2. stm32f10x.h 
파일 수정 사항
1.2.3. system_stm32f10x.c 
파일 수정 사항
1.2.4. usb_type.h 
파일 수정 사항
1.3. 
연습 문제
2. Base Program 
작업
2.1. 
디렉토리 구조
2.2. 
프로젝트 환경 구축
2.2.1. RIDE7 
프로젝트 환경
2.2.2. IAR 
프로젝트 환경 ? Evaluation version 다운로드
2.2.3. IAR 
프로젝트 환경 설치
2.2.4. IAR 
프로젝트 환경 비교
2.2.5. RIDE7 
프로젝트 환경 비교
2.3. Base Program 
분석
2.3.1. Main 
함수 내용 분석
2.3.2. M32, Z1 
내용 차이 분석
2.4. Flash Loader Demonstration 
버전에 따른 차이
2.5. Base Program 
확인
2.5.1. 
망고-M32 기본 동작 확인
2.5.2. 
망고-Z1 기본 동작 확인
2.5.3. USB HID 
동작 확인
2.5.4. 
망고-Z1 RF 통신 동작 확인
2.6. 
연습 문제

Unit 1 - Cortex-M3 
심화 학습

3. Library Debug
3.1. lib_dbg.c 
설명
3.2. 
빌드 환경 설정
3.3. USE_FULL_ASSERT define & assert_failed
3.4. Assert Test Code
3.5. 
실행 결과
3.6. 
결론
3.7. 
연습 문제
4. Bit Banding
4.1. Bit Banding 
복습
4.2. Bit Banding Test 
매크로 분석
4.3. Bit Banding Test Code 
분석 및 실행 결과
4.4. 
결론
4.5. 
연습 문제
5. Mode Privilege
5.1. Processor mode & Privilege level
5.2. Stacks
5.3. Stack Pointer - Full-Descending
5.4. Special Register - CONTROL register
5.5. 
빌드 환경 구성
5.6. Cortex microcontroller software interface standard (CMSIS)
5.7. 
소스 코드 분석 및 실행 결과
5.7.1. define 
값들 설명
5.7.2. SVC interrupt
5.7.3. __set_CONTROL
5.7.4. Get_Current_ThreadMode
5.7.5. Get_Current_Stack
5.7.6. Mode_Privilege_Test 
내용 분석
5.7.7. 
결론
5.8. 
연습 문제
6. USB Device Firmware Upgrade
6.1. UM0412. DfuSe USB device firmware upgrade
6.1.1. UM0412 DfuSe 
소스 다운로드 및 설치
6.1.2. UM0412 
작업 분석
6.2. DfuSe USB upgrade 
프로그램 변경
6.2.1. 
헤더 Include 경로 변경
6.2.2. 
전체 내용 비교
6.2.3. platform_config.h, spi_flash.h & stm32_eval.h 
수정 사항
6.2.4. platform_config.h & stm3210b_eval.h 
수정 사항
6.2.5. dfu_mal.c & main.c 
수정 사항
6.3. DfuSe USB upgrade 
프로그램 내용 분석
6.3.1. IAP (In-Application Programming) 
비교
6.3.2. 
메인 프로그램 내용 분석
6.4. 
프로그램 실행 및 드라이버 설치
6.5. DFU Download File 
만들기
6.5.1. 
프로그램 변경 사항
6.5.2. IAR 
환경 구성
6.5.3. DFU Download File 
만들기 - RIDE7
6.5.4. DFU format 
변경 작업
6.6. DFU 
파일 다운로드 작업
6.7. 
실행 결과
6.8. 
결론
6.9. 
연습 문제
7. USB 
회로 및 Disconnect 복습
7.1. USB 
회로도 분석
7.2. USB_DISCONNECT 
설정 코드 분석
7.3. USB 
부분 하드웨어 개요
7.4. USB Disconnect 
동작 원리
7.5. 
결론
7.6. 
연습 문제
8. Interrupt Priority Test
8.1. Cortex-M3 Priority group
8.2. Priority group vs. Sub priority
8.3. SCB_AIRCR 
레지스터 VECTKEYSTAT
8.4. Priority Test 1 - Priority Group
8.5. Priority Test 2 - Sub Priority
8.6. Priority Test 3 - 
동작 중 Priority 변경
8.7. 
결론
8.8. 
연습 문제
9. GPIO JTAG Remap
9.1. Remap 
개요
9.2. STM32 & Cortex-M3 Debug
9.3. 
회로도 분석
9.3.1. 
망고 M32 JTAG 회로
9.3.2. 
망고 Z1 JTAG 회로
9.4. 
예제 코드 시나리오
9.5. 
예제 코드 분석
9.5.1. 
하드웨어 Configuration 코드 분석
9.5.2. 
메인 코드 분석
9.5.3. Pin Remap Configuration 
코드 분석
9.6. 
실행 결과 및 결론
9.7. 
연습 문제
10. Power Control (PWR)
10.1. 
망고 M32, Z1 Power 공급
10.2. STM32F103xx Low-power modes
10.2.1. Sleep mode
10.2.2. Stop mode
10.2.3. Standby mode
10.2.4. Low-power modes 
요약
10.3. PWR 
예제 1 - STOP mode 설정
10.3.1. 
소스 코드 변경 사항
10.3.2. 
실행 결과
10.4. PWR 
예제 2 - RTC Alarm 설정
10.4.1. 
소스 코드 변경 사항
10.4.2. 
빌드 환경
10.4.3. 
실행 결과
10.5. PWR 
예제 3 - STANDBY mode
10.5.1. 
소스 코드 변경 사항
10.5.2. 
실행 결과
10.6. 
연습 문제
11. RTC Calendar
11.1. RTC (Real-time clock) 
개요
11.2. 
예제 코드 시나리오 및 분석
11.3. 
빌드 및 실행 결과
11.3.1. 
빌드 환경
11.3.2. 
실행 결과
11.4. 
연습 문제
12. Independent watchdog (IWDG)
12.1. IWDG 
개요
12.2. 
예제 코드 시나리오
12.3. 
예제 코드 분석
12.3.1. 
빌드 환경
12.3.2. 
수정 코드 분석 ? Interrupt Handler
12.3.3. RIDE7 
환경에서의 One Character 출력 관련 주의사항
12.3.4. 
수정 코드 분석 ? IWDG_Test
12.4. 
실행 결과
12.5. 
결론
12.6. 
연습 문제
13. Window Watchdog (WWDG)
13.1. WWDG 
개요
13.2. 
예제 코드 시나리오
13.3. 
예제 코드 분석
13.3.1. 
빌드 환경
13.3.2. 
수정 코드 분석 ? hw_config & Interrupt Handler
13.3.3. 
수정 코드 분석 ? WWDG_Test
13.4. 
실행 결과
13.5. 
결론
13.6. 
연습 문제
14. FLASH Program
14.1. Flash programming 
개요
14.2. Flash Read operation
14.3. Flash program & erase controller (FPEC)
14.3.1. FPEC 
블럭 개요
14.3.2. Programming 
과정
14.3.3. Erase 
과정
14.4. 
예제 프로그램 시나리오
14.5. 
예제 프로그램 분석
14.6. 
실행 결과
14.7. 
결론
14.8. 
연습 문제
15. FLASH Write Protection
15.1. Option byte
15.2. Option byte programming
15.2.1. FLASH_EraseOptionBytes
15.2.2. FLASH_EnableWriteProtection
15.2.3. NVIC_SystemReset
15.3. 
예제 프로그램 시나리오
15.4. 
예제 프로그램 분석
15.5. 
실행 결과
15.5.1. 1.13_FLASH_Write_Protection_Disable 
실행 결과
15.5.2. 1.13_FLASH_Write_Protection_Enable 
실행 결과
15.6. 
연습 문제

Unit 2 - 
다양한 통신 프로토콜 연구

16. USART 
통신 ? Polling UART2 & 3
16.1. UART2, UART3 Pin 
배정
16.2. UART2, UART3 Pin Remapping
16.3. Polling 
방식 사용
16.4. 
예제 코드 1 분석
16.5. 
망고 M32를 이용한 시험
16.6. 
망고 Z1을 이용한 시험
16.7. 
망고 M32 Z1 간의 연결을 통한 시험 - 예제 코드 2
16.8. 
결론
16.9. 
연습 문제
17. USART 
통신 - Interrupt
17.1. 
망고 Z1과 망고 M32의 연결
17.2. USART3 Interrupt Enable
17.3. UART3 
수신 버퍼 구현 - Circular Queue
17.3.1. Receive Buffer Circular Queue 
아이디어
17.3.2. Circular Queue 
소스 코드 분석
17.4. Word Length & Parity
17.5. 
데이타 송수신 처리 부분
17.6. 
실행 결과
17.7. 
연습 문제
18. USART 
통신 - Synchronous with SPI
18.1. USART synchronous mode
18.2. 
망고 M32 보드 연결 - USART3, SPI1
18.3. 
망고 Z1 보드 연결 - USART2, SPI2
18.4. 
초기화 설정 작업
18.5. USART & SPI 
통신 방식 설정 작업
18.6. USART 
송신 -> SPI 수신 통신 작업
18.7. SPI 
송신 -> USART 수신 통신 작업
18.8. 
실행 결과
18.9. 
오실로스코프 파형 검사
18.10. 
연습 문제
19. SPI 
통신 ? Full Duplex (망고 M32)
19.1. Serial peripheral interface (SPI)
19.2. SPI1 <-> SPI2 
연결
19.3. SPI1, SPI2 
클럭 & GPIO 설정
19.4. SPI 
초기화 및 enable 설정
19.5. 1
차 전송 시험 - SPI1 master, SPI2 slave
19.6. 2
차 전송 시험 - SPI2 master, SPI1 slave
19.7. 
실행 결과
19.8. 
연습 문제
20. SPI 
통신 - Software SPI (망고 Z1)
20.1. Motorola SPI & CC2520
20.2. spi_sw.c 
구현 내용
20.3. 
기타 구현 내용
20.4. 
실행 결과
20.5. 
연습 문제
21. TIM IRQ Channels
21.1. STM32 TIM Timer
21.2. TIM2, 1
 update interrupt 예제
21.3. TIM2, TIM3, TIM4, update interrupt 
예제
21.4. 
연습 문제
22. TIM Time Base
22.1. CCx Interrupt Output mode
22.2. 
예제 코드 시나리오
22.3. 
망고 보드 연결
22.4. 
예제 소스 코드 분석과 실행 결과
22.5. 
오실로스코프 파형
22.6. 
연습 문제
23. TIM PWM Output
23.1. PWM (Pulse Width Modulation)
23.2. 
예제 코드 시나리오
23.3. 
예제 소스 코드 분석
23.4. 
오실로스코프 파형
23.5. 
연습 문제
24. TIM Input Capture & PWM Input
24.1. Input capture mode
24.2. PWM input mode
24.3. Input Capture 
예제 코드 시나리오
24.4. Input Capture 
망고 보드 연결
24.5. Input Capture 
예제 소스 코드 분석
24.6. 
빌드 시의 유의 사항
24.7. Input Capture 
실행 결과
24.8. PWM Input 
예제 코드 시나리오
24.9. PWM Input 
망고 보드 연결
24.10. PWM Input 
예제 소스 코드 분석
24.11. PWM Input 
실행 결과
24.12. 
연습 문제
25. TIM DMA
25.1. Direct memory access (DMA)
25.2. 
예제 코드 시나리오 및 망고 보드 연결
25.3. 
예제 소스 코드 분석
25.4. 
오실로스코프 파형
25.5. 
연습 문제
26. ADC DMA
26.1. ADC (analog-to-digital converter)
26.2. Injected Channel & Regular Channel
26.3. Data alignment
26.4. Scan mode
26.5. Calibration
26.6. 
예제 코드 시나리오 및 망고 보드 시험 환경
26.7. 
라이브러리 변경 사항
26.8. 
예제 소스 코드 분석
26.9. 
실행 결과
26.10. 
연습 문제
27. ADC Temperature Sensor
27.1. STM32 Temperature Range
27.2. Temperature Sensor
27.3. 
온도 측정 과정
27.4. 
예제 소스 코드 분석
27.5. 
수행 결과
27.6. 
연습 문제
28. ADC Analog Watchdog
28.1. Analog watchdog
28.2. 
예제 코드 시나리오 및 망고 보드 시험 환경
28.3. 
예제 소스 코드 분석
28.4. 
실행 결과
28.5. 
연습 문제
29. ADC Dual Mode
29.1. Dual ADC mode
29.2. Regular Simultaneous Mode
29.3. VREFINT internal channel
29.4. 
예제 코드 시나리오 및 망고 보드 시험 환경
29.5. 
예제 소스 코드 분석
29.6. 
시험 결과
29.7. 
연습 문제
30. I2C 
개념 및 Software I2C
30.1. I2C 
통신 개념
30.1.1. I2C 
개념도
30.1.2. Start & Stop condition
30.1.3. 
다중 디바이스 연결 및 Ack
30.1.4. I2C Address
 Read Write 동작
30.2. Pull-up 
저항 & Open-Drain
30.3. 
망고 보드 연결 작업
30.4. 
예제 소스 코드 분석
30.5. 
시험 결과
30.6. Software I2C 
소스 코드 분석
30.7. 
연습 문제
31. I2C (in board) I2C1 & I2C2 - (M) Polling (S) IT
31.1. STM32 Hardware I2C
31.2. Master Slave 
모드 선택
31.2.1. Master Slave 
모드 선택 개요
31.2.2. I2C Master Mode
31.2.3. I2C Slave Mode
31.3. 
예제 코드 시나리오
31.4. Pull-up 
저항 연결 작업
31.5. 
망고 보드 연결 작업
31.6. 
예제 코드 분석
31.6.1. 
주소값 부분과 RXNE, BUSY define
31.6.2. I2C2_EV_IRQHandler
31.6.3. Configuration 
설정 코드 분석
31.6.4. IRQ Handler 
코드 분석
31.6.5. I2C_Check_Busy_Flag
31.6.6. I2C_Master_BufferWrite
31.6.7. 
하드웨어 I2C 설정 코드 분석
31.6.8. I2C 
시험 코드 분석
31.7. 
시험 결과
31.8. 
연습 문제
32. CAN Loop Back
32.1. CAN 
통신 개요
32.2. CAN Frame Structure
32.3. STM32 CAN
32.4. Silent & Loopback mode
32.4.1. Silent mode
32.4.2. Loop back mode
32.4.3. Loop back combined with silent mode
32.5. 
예제 코드 분석
32.6. 
실행 결과
32.7. 
연습 문제

Unit 3 - 
각종 센서 보드 활용

33. BH1600 Light Sensor - 
분석
33.1. 
조도 센서 모듈 개요
33.2. BH1600 
조도 센서
33.2.1. BH1600 
조도 센서 개요
33.2.2. BH1600 
출력 전류 이득 설정
33.2.3. 
출력 저항 (R1) 값 설정
33.2.4. 
출력 Capacitor (C1) 값 설정
33.3. BH1600 
조도 센서 모듈 커넥터
33.4. BH1600 
조도 센서 모듈 회로도
33.5. 
조도 센서(BH1600FVC) 1 PIN 위치
33.6. 
연습 문제
34. BH1600 Light Sensor - ADC
34.1. 
망고 보드 연결
34.2. 
소스 코드 분석
34.3. 
시험 결과
34.3.1. Test Case 1 - BH1600_Set_Mode_H_Gain
34.3.2. Test Case 2 - BH1600_Set_Mode_L_Gain
34.3.3. Test Case 3 - BH1600_Set_Mode_H_Gain() & 
오실로스코프 파형
34.4. 
조도 값 계산
34.5. 
연습 문제
35. BMA150 3-Axis Accelerometer Sensor - 
분석
35.1. BMA150 3
축 가속도 센서 모듈
35.2. BMA150 
가속도 센서 모듈의 구조
35.3. BMA150 
가속도 센서 모듈 회로도
35.4. SMB380 & BMA150
35.5. 
연습 문제
36. BMA150 3-Axis Accelerometer Sensor - SW SPI
36.1. 4-Wire SPI 
사용을 위한 연결 방식
36.2. 
망고 보드 연결
36.3. 
소스 코드 분석
36.4. 
실행 결과
36.5. 
연습 문제
37. BMA150 3-Axis Accelerometer Sensor - HW SPI
37.1. NSS (NCS) 
제어
37.2. 
소스 코드 분석
37.3. 
실행 결과
37.4. 
연습 문제
38. BMA150 3-Axis Accelerometer Sensor - SW I2C
38.1. I2C 
사용을 위한 연결 방식
38.2. 
망고 보드 연결
38.3. BMA150 I²C protocol:
38.4. 
예제 코드 분석
38.5. 
실행 결과
38.6. 
연습 문제
39. BMA150 3-Axis Accelerometer Sensor - HW I2C
39.1. STM32 I2C Master Receiver
39.2. 
소스 코드 분석
39.3. 
실행 결과
39.4. 
연습 문제
40. BMA150 3-Axis Accelerometer Sensor - SPI & I2C 
통합
40.1. 
망고 보드 연결
40.2. 
예제 코드 분석
40.3. 
실행 결과
40.3.1. I2C Mode Test
40.3.2. SPI Mode Test
40.4. 
연습 문제
41. SN65HVD231 CAN Transceiver 
모듈 분석
41.1. 
보드 개요 및 구조
41.2. Connector 
핀 배치 및 기능
41.3. 
회로도
42. SN65HVD231 CAN Transceiver - CAN Normal
42.1. CAN Remap
42.2. CAN Interrupt
42.3. Identifier filtering
42.4. 
망고 보드 연결
42.5. 
예제 코드 분석
42.6. 
실행 결과
42.7. 
연습 문제

맺음말
색 인

Comments 0
:    :    :
이름 / 2014-11-20 / ★★★☆☆ [수정 / 삭제]

내용

New Products +more
Mango-E-Toi Start Kit
SMART GPS Module Board