반도체 발달
-> 집적회로의 칩 집적도 상승
- 복잡도를 가진 내장 기술 발달
- 칩의 소형화 -> 칩 핀 크기도 작고 많아지는 경향
- 반도체 칩 핀형태 = 패키지 -> 패키지 모양만으로 그 칩의 집적도를 알 수 있음
패키지 발달
1. DIP Dual In line Package 타입
2. TSOP Thin Small Outline Package 타입
3. PQFP Pastic Quad Flat Pack 타입
4. BGA 타입
회로도
- 전자, 전기 회로를 설계하고 분석하기 쉽게 그림으로 표현한것
- schematic, 전기 도면, 전자도면
- 보드 : 반도체 부품이나 저항, 콘덴서, 인덕터와 같은 수동 소자 부품,, 커넥터와 같은 부품들이 서로 연결된것
- 회로도 : 단순하게 표시한 표준 기호
-> 회로의 부품을 나타내고 부품들간 연결 표시. 신호 연결을 표시
회로도 이용
- OrCAD 같은 툴로 작성
- 회로 설계, 인쇄 회로 기판 PCB 배치, 보드 유지 보수 등에 사용
- 실제 PCB의 실제 위치는 회로도에서 부품 연결 위치와 일치하지 않음
회로도 특징
- 핀과 핀의 연결 정보만 보유
- 보드상의 실제 위치나 연결 구조까지 나타내지는 않음
<-> 회로도를 바탕으로 실제 PCB 구현 가능
-> 이 작업을 "레이아웃", "아트웍"이라 부름
회로도 구성
1) 부품과 결선
전자 부품 내부
- 여러 전자부품과 PCB 인쇄 회로기판과 결합
회로도
- 여러 전자부품이 PCB 기판의 전류가 통하는 결선에 의해 어떻게 연결되는지 알려주는 지도
-> 기호를 이용하여 부품 단순화, 어떤 부품인지 한 눈에 알아보게 해줌
2) 부품 종류
전자 부품
- 전원부 : 전원 공급 및 접지 연결하는 부분
- 수동 소자 : 전력을 소비하거나 축적하거나 감쇠
- 능동 소자 : 작은 신호(전력,전압,전류 중 하나)를 입력하여 큰 신호를 출력
- 진동 소자 : 압전 효과를 이용한 수동 소자로 고주파 생성 혹은 필터로 사용
- 디지털 논리 게이트 : AND, NOR, NAND 등 조합하여 디지털 논리 회로 설계
- 집적 회로 칩 : AVR이나 ARM 과 같은 CPU를 포함한 여러 종류 소자들
커넥터
- 전원 커넥터
- 보드 커넥더
- 헤더핀
스위치
3) 회로도 기호
1. 전원 부
- DC 전원 : 회로 상에 VCC, VDD 이름으로 나타냄.
- 접지 : 다음 기호 중 하나 사용
2.. 수동 소자
- 이름 시작 문자에 따라 구분 가능. 저항 R, 인덕터 L, 캐패시터 C로 시작
- 어래이 저항 : 여러 저항이 같은 값으로 여러개 붙은 소자
- 가변 저항 : 저항을 바꿀수있음
-인덕터
- 캐패시터
3) 진동 소자
- 크리스탈
- 오실레이터 : 크리스탈과 진동에 필요한 소자를 내장하여 전원과 접지를 추가한 부품
4) 능동 소자
- 다이오드
- 트랜지스터 : BJT와 MOSFET으로 나뉨. BJT는 화살표 방향에 따라 구분
- 연산 증폭기 : 4개 핀을 가짐. 하나나 여러 연산증폭기가 들어가 하나의 온전한 칩을 형성
5) 디지털 논리 게이트
6) 집적 회로 칩 : CPU, MCU
- 집적회로 칩 : CPU 처럼 독립된 칩
- 내부는 능동소자와 수동소자의 조합으로 구성
- 핀수나 배열들이 다양함
- U1-A, U1-B 처럼 하나의 칩을 나눠서 표현하기도 함
7) 헤더와 커넥터
- J나 CON으로 시작
8) 스위치
- SW 이름으로 시작
4. 부품 연결
1) 와이어로 연결
- 부품 연결 -> 하나의 모듈 완성
* 연결선 : 와이어
- 수동 소자들은 서로 자유롭게 연결 가능
- 직접회로 칩들의 핀들은 특정 기능을 수행하기 위해 설계됨 -> 핀 기능은 데이터 시트에 설명됨
- VCC 핀 : 전원 공급해야하는 핀. 전원부와 연결해야함
- GND 핀 : 접지와 연결해야함.
AVR CPU 해석
(1) 전체 회로 구성 분석
1. 주요 부품확인
- 대개 U라는 이름으로 시작하여 배치
-> U1, U2 부터 찾아서 확인
- AVR CPU 회로도의 예시로 분석
-> 주요 부품으로 AVR의 배치위치를 확인
2. 전원부 구성 파악
- 전원 볼트값
- 전원부 소자들의 부품 종류
- 최대 전류 값 파악
- 전원 커넥터 종류 파악
3. 진동 소자부 구성
- CPU가 장착된 회루에는 32.768kHz의 RTC용 크리스탈, CPU를 동작시키는 메인 진동소자가 장착
4. 메모리부
- CPU에 따라 내부에 ROM과 RAM을 모두 가지는 경우 외부에 메모리가 장착되지 않을 수 있음
- 대부분 경우 RAM이나 ROM이 CPU 외부에 존재
5. 기타 주변장치 파악
- 몇개 핀이 GPIO로 할당되어있는지
- LED나 LCD 같은 출력 장치의 연결방법 파악
- 버튼이나 스위치 연결 방법 파악
(2) 각 모듈 분석
1) 주요 부품
1. U1, ATmega128, 주요 MCU
2. U2, 74HC573
- 기본적인 MCU 구성에 많이 사용. MCU 외부에 RAM 장착시 사용
- 외부 어드레스와 데이터를 분리시켜주는 역활. ALE 신호를 통해 데이터 신호와 어드레스 신호 구분
* ALE가 low이면 어드레스 신호 출력, high 이면 데이터 신호로 간주
3. U3, K6X0808CID-GF70
- 32K바이트 용량의 SRAM
4. U4, MAX232
- UART 트랜시버, 시스템간 통신 위한 +12V ~ -12V의 UART 신호(거리를 멀리가기 위해 전압래밸이 높음)
- 이 신호를 MCU가 인식할수 있도록 5V레벨 신호로 바꿔주는 역활
2) 전원부 구성 파악
- 전원이 어디서 공급되는지 파악
- 전원은 커낵터로부터 들어오므로 J로 시작하는 부품들 탐색
- USB로 전원 받는 경우가 많으므로 USB 회로 부분 조사
- 접지 : 회로 전체에 분포
* 수동 소자를 제외한 거의 모든 부품 -> 접지와 연결 필요
- AVCC : 아날로그 전원
3) 진동 소자부
- 진동 소자 : Y로 시작하는 부품
- 16MHz(메인 클럭) -> ATmega128의 최대 동작 주파수, MCU 동작의 주요 클럭
- 32.768kHz(RTC 클럭) : 초단위 속도에 맞는 주파수 크리스탈
=> 메인 클럭과 RTC 클럭이 일반적인 구성
- 23, 24핀이 제대로 크리스탈과 연결되었는지 확인 -> MCU 레지스터 셋팅 등 미치는영향파악
- 외부 RTC 클럭이 잘 사용되려면 MCU 레지스터를 알맞게 세팅해야함 -> 데이터 시트에 존재
* 외부 클럭 대신 내부 클럭 사용하는 경우도 있음
4) 메모리부
- 32K 바이트 크기의 외부 SRAM을 가지고 있음
- CPU들은 핀수가 많으므로 메모리를 읽고 쓰기 위한 데이터 버스와 어드레스 버스를 별도로 갖고 있음
- MCU는 핀수가 부족하므로 데이터 버스와 어드레스 버스를 공유하여 설계되어있음
-> 한 핀이 어쩔때는 데이터버스/어드레스 버스역활을 함.
74HC573 래치칩
- 메모리는 데이터와 어드레스가 다른 핀으로 할당되어 있음 -> MCU는 핀이 부족하여 버스를 공유해야함
- 래치칩(74HC573) : MCU 외부 램을 추가할때 어드레스와 데이터 핀을 공유해서 쓰기 위해 사용하는 부품
- D1~D8 입력핀과 Q1 ~ Q8 출력 핀으로 구성
- OC -> Low : 출력을 입력핀값 출력. High : 출력핀의 출력 끊음
- C -> High : 입력값이 그대로 통과, Low : 입력 핀들의 연결을 끊음
- ALE
-> 어드레스 사용시 : ALE 신호를 Low로 하여 D0 ~ D7의 데이터 버스를 끊어버림
-> 데이터라인 사용시 : High 신호를 주어 D0 ~ D7 신혹 ㅏ들어갈수있도록 함
(2) STM32F103 CPU 회로도 분석
1) 전체 회로 구성 분석
1. 주요 부품 확인
- U라는 이름으로 시작. U1, U2 부터 시작
- STM32F103 CPU 배치 위치를 실제 배치에서 확인 후 회도로에서 확인
2. 전원부 구성 파악
- 사용 전원 볼트 파악
- 전원부 소자들의 사용 부품 종류 파악
- 최대 전류값 파악
- 연력하는 전원 커넥터 종류 파악
- USB 회로도 파악
3. 진동 소자부 구성
- CPU가 장착된 회로에는 CPU 동작용 메인 크리스탈과 RTC용 32.768KHz RTC용 크리스탈이 장착
4. 메모리 부
- CPU에 따라 내부에 ROM과 RAM을 가지고 있는경우 외부에 메모리가 없을수있으나
- 많은 경우 RAM or ROM 이 외부에 장착
5. 기타 주변장치 파악
- 몇개의 핀이 GPIO로 할당되어있는지
- LED나 LCD같은 출력장치의 연결방법파악
- 버튼이나 스위치의 연결방법 파악
- JTAG 인터페이스 등 연결여부 파악
(2) 각 모듈 분석
1) 주요 부품
1. U1, STM32F103 - 주요 MCU
2. U2, YDSR-1031AM - 7segment LED
3. U3, AME8805AEETZ-3.3
- 5V를 3.3V로 변환하는 레귤레이터
- STM32F103은 저전력으로 구동하므로 USB 전원을 사용해도 문제 없음
-> USB 볼트 전원을 레귤레이터를 통해 5V를 3.3V로 전환하여 사용
4. U4, SP3232C - UART 트랜시버. +12V ~ -12V의 UART신호를 3.3V 레벨 신호로 변환
2) 전원 구성부 파악
- USB_5V에서 전원을 가져와 AME8805AEETZ 레귤레이터 구동 -> 5V를 3.3V로 전환하여 메인 전원으로 사용
-> R28 연결 : USB 전원 이용
-> 미연결 : 커넥터 등에서 바로 3.3V를 연결해 사용
- LD4 :3.3V가 인가되면 켜지는 파워 인디케이터 LED
-> VDD_3v3 이란 전원은 주요 부품에 모두 인가되어 보드를 동작시킴
-> 회로의 어디에 사용되는지 확인
- STM32F103의 전원 핀과 접지핀 연결 여부 확인
-> 전원핀 32, 48, 64, 19 등 모두 VDD_3v3에 연결됨. 접지 핀도 연결됨
- VDDA 핀 : 아날로그 전원핀
-> VDD_3v3전원이 연결됨. 디지털 노이즈가 아날로그 쪽으로 전파되지 않도록 BEAD 칩을 연결/
-> VSSA : 아날로그 그라운드
3) 진동 소자부
- 진동 소자 : X로 시작
- X1 : 12MHz 크리스탈 -> STM32F103 CPU 메인 클럭
- X2 : 32.768KHZ 크리스탈 ->초단위에 맞는 주파수. RTC 클럭
- STM32F103은 외부 진동 소자 없이 구동 가능하나 몇가지 단점으로 외부 진동소자 사용
'컴퓨터과학 > 임베디드' 카테고리의 다른 글
펌웨어구현 환경구축 10 - 마이크로 프로세서 내부 구조 (0) | 2020.05.07 |
---|---|
펌웨어구현 환경구축 9 - 데이터시트 분석 (0) | 2020.05.06 |
펌웨어구현 환경구축 7 - 펌웨어 다운로드 및 인터페이스 (0) | 2020.05.06 |
펌웨어구현 환경구축 6 - JTAG 활용 (0) | 2020.05.06 |
펌웨어구현 환경구축 5 - 교차 개발 환경 (0) | 2020.05.06 |