1. 우리가 사용하는 칩, ARM(Advanced Risc Machine)
- 32bits mcu(cpu + 메모리 + I/O,ex.arduino)로 가격이 싸고 소비전력이 적고 내장된 주변장치가 많아 동작속도 빠름
=> 임베디드 시스템에서 많이 사용 (이때 32bits = cpu가 한 번에 가져올 수 있는 data의 양) - STM ARM Core : ARM사에서 만든 CPU 설계도를 STM사가 사와 그 설계도대로 Core 설계하고 Flash Memory(ssd), GPIO등의 주변 장치들을 하나의 칩으로 만든 것 (ARM은 MCU의 설계도 그리는 회사)
1-1. ARM Core 종류
- 2009년 초 저가형 : Cortex-M0
- 2010년 : Cortex-M4(부동소수점 연산장치 내장)
- 2012년 초 저전력: Cortex-M0+ 시리즈
- 핸드폰 등 실시간 처리, 성능 좋음 : Cortex-M7
=> M0는 초저가형, M0+는 초저전력형, M4는 M0보다 성능이 좋다
=> 우리는 M3(가장 먼저 발표된 Cortex-M 모델) 사용 : STM32F103C8T6
1-2. ARM이 대세인 이유
1. 제조회사가 아니다
- 라이센스를 받아서 동일하게 사용, 개발비용이 적게 들어서 가격이 싸짐
- CPU를 설계하는데 굉장히 많은 시간과 노력이 듦. ARM사에서는 다 개발해놓고 설계도만
비용을 받고 팜 -> 그걸 반도체 회사들이 가져다가 씀 -> 직접 CPU를 개발하는 것 보다 가격이 쌈
2. 가격이 싸다 (ARM이 AVR에 비해 가격이 쌈)
- 구조가 간단 (다 Module 형식으로 구성) + 위의 이유
3. 소비 전력이 적다
- 배터리로 돌아가야 하는 기계에서 많이 사용
4. 칩 면적이 작다
- 적은 트렌지스터 사용. 소형화에 유리, 발열 문제도 적음
5. 고성능 32bit Risc processor : Cache Memory 내장, Pipeline 처리방식
- Cache Memory : 메인 메모리와 CPU간의 데이터 속도 향상을 위한 중간 버퍼 역할을 하는 CPU 내 또는 외에 존재하는 메모리. 실제 메모리와 CPU 사이에서 빠르게 전달을 위해서 자주 쓰이는 데이터들을 미리 저장해두는 좀더 빠른 메모리이다. 캐시는 잠시 저장해둔다는 의미
- Pipeline : 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조. 한 여러 단계가 서로 동시에, 또는 병렬적으로 수행될 수 있어 효율성을 향상시킬 수 있다
1-3. STM사 제품 보는 방법
: STM32F103C8T6
- STM32 (Device Family) : ARM - based 32bit MCU. 그냥 네이밍
- F (Product Type) : General Purpose.
- 저전력은 L1, 범용은 F1, 고성능은 F2
- 103 (Device Subfamily) : Performance Line
- C (Pin count) : 48/49 pins.
- R : 64 pins, V : 100 pins, Z : 144 pins. pin의 수가 많으면 GPIO등의 기능이 더 많아짐
- 8 (Flash Memory Size) : 65KB
- C : 256KB, D : 384KB, E : 512KB
- T (Package. 칩의 모양) : LQfP Package라는 뜻
- H : BGA, Y = WLCSP64
- 6 (Temperature Range) : -40 ~ +85°C
- 7 : -40 ~ +105°C
2. 제품 제작과정에서 우리가 시작하는 단계
- 기획 : 개발할 제품 선정
- 부품 조사, 선정 : 부품 수급 원활 여부 확인 및 가격 선정
- PCB제작 ( 위에서 선정한 목적에 맞는 PCB 제작, 임베디드 HW개발자 영역으로 사용할 Main chip(ex)ARM Core), 주변 sensor, 레지스터 등 선정)
- 회로도 작성 (부품들 간의 관계 표현)
- Artwork 작업 ( 실제 PCB 상의 부품들 배치 & 연결 작성 + 거리까지 )
- Gerber FILE 생성 (PCB 판 만드는 기계가 이해하는 파일로, PCB 실제 찍어내기 위한 설계도)
- 기계가 Gerber FILE 읽어 초록색 기판 위에 Artwork 내용대로 인쇄
- PCB 제작
- 부품 구입 진행
- 부품 실장 (부품을 판 위에 납땜하여 올리는 것으로, 부품을 PCB에 붙이는 작업)
- PCB 수령 ( 우리가 사용하는 보드는 위의 작업을 HW개발자가 다 한 제품으로 가운데 있는 게 Main Chip)
=> 우리는 이 보드 위에 프로그래밍함
- 기본 test (동작 여부등 chk)
- sw 올려 test
- 특정 부붐 호환 test
- 완전한 프로그램 구현 ( 위의 과정들은 돈이 많이 들기에 실무 통해 배울 수 있음)
=> 우리는 test까지 마친 개발 Board에 programming 진행
3. 우리의 최종 목표
- 디지털 숫자 표현
- ATD(Analog To Digital) : 아날로그 신호를 디지털로 받아들여서 온도센서 만들기
- DC의 5V정도의 전압을 신호 받아서 220V 전류 흘리는 정도 조절하는데, 이때 드라이기 연결하여 온도계에 넣고 일정 온도가 되면 껐다켰다 하는 기능
4. 앞으로 배울 것
- 기본 전기 상식
- 데이터 시트 보는 방법
- 회로도 보는 방법
- 오실로 스코프 사용 방법
- 테스터기 사용 방법
'임베디드' 카테고리의 다른 글
[오제이 튜브의 임베디드 강의] 8강. GPIO제어 고아먹기 (0) | 2025.01.07 |
---|---|
[오제이 튜브의 임베디드 강의] 7강. GPIO제어 부셔먹기 (0) | 2025.01.06 |
[오제이 튜브의 임베디드 강의] 6강. 혼자서 임베디드 고수 되는 방법 (0) | 2025.01.06 |
[오제이 튜브의 임베디드 강의] 5강. 환경 구축해보기 (1) | 2025.01.02 |
[오제이 튜브 임베디드 강의] 4강. 전기 기본 상식 (1) | 2025.01.01 |