2019년 2월 26일 화요일

[STM32 Study] 용어 정리


PWR (Power Controller) - 전력관리 제어기
  • 전원감시기 (power supply supervisor)
    • POR - Power-On Reset : Vpor 이상이면 리셋 해제 (1.72V)
    • PDR - Power-Down Reset : Vpdr 이하이면 리셋 (1.68V)
    • BOR(Brownout Reset) : threshold voltage 감시
    • PVD(Programmable Voltage Detector) : 전원 전압이 지정값 이하로 떨어지면 인터럽트를 발생하는 기능
  • HSE 클록 (High Speed External clock)
    • 외부단자 OSC_IN, OSC_OUT에 4~26 MHz
  • HSI 클록 (High Speed Internal clock)
    • 내부의 RC 오실레이터에 의하여 발생되는 16 MHz의 클록 신호
  • PLL (Phase-Locked Loop) 회로 - 주파수 체배 회로
  • LSE 클록 (Low Speed External clock)
    • 외부단자 OSC32_IN, OSC32_OUT에 32.768 kHz의 낮은 주파수
    • 적은 소비전력으로 정확한 클록 주파수를 발생하여 RTC에 공급하기 위함
    • 외부 클록 신호는 1 MHz까지 사용할 수 있음
  • LSI 클록 (Low Speed Internal clock)
    • 내부의 RC 오실레이터에 의하여 발생되는 32 KHz의 저주파 클록 신호
    • 정지모드나 대기모드에서도 동작
    • IWDG와 RTC에 클록 공급
  • CSS (Clock Security System) - 클록 안전 시스템
    • HSE 오실레이터의 정상 동작 여부를 감시하기 위한 장치



SYSCFG (System Configuration Controller) - 시스템 설정 제어기
  • 몇가지 메모리 영역의 시작번지를 할당하는 메모리 리매핑을 ㅅ러정
  • 특정 핀에 대하여 I2C 통신의 FM+ 모드를 사용할 것인지 여부를 설정
  • GPIO의 단자를 인터럽트 신호선으로 할당하는 내용을 설정
  • 시스템의 안정성을 높이는 기능의 설정

SCB (System Control Block) - 시스템 제어 블록

SysTick (시스틱 타이머)
  • Cortex-M 시리즈 마이크로컨트롤러의 코어에 기본적으로 동일하게 내장된 24비트 타이머
  • 주로 운영체제나 시스템 프로그램이 사용하도록 만들어 놓은 것

NVIC (Nested Vectored Interrupt Controller) - 중첩 및 벡터형 인터럽트 제어기
  • Cortex-M 시리즈 제품의 CPU의 코어에 기본적으로 내장된 인터럽트 제어기
  • 이론적으로 240개의 이터럽트를 지원
  • STM32F767VGT6는 실제로 총 110개의 차단가능 인터럽트를 가짐

EXTI (Externded Interrupt and Event Controller) - 확장 인터럽트 및 이벤트 제어기
  • Cortex-M7의 CPU 코어가 아니라 STM32F767VGT6 마이크로컨트롤러의 주변장치에 해당하는 인터럽트 제어기
  • 내부 또는 외부에서 입력되는 비동기 인터럽트/이벤트 신호를 인식하여 CPU의 인터럽트 제어기 NVIC에게 전달하거나 이벤트를 발생하고 전력 제어기에 wake-up 신호를 전달하기도 함

DBG (디버그 지원 장치)
  • JTAG (Joint Test Action Group)
  • SWD (Serial Wire Debug)
  • SWJ-DP (Serial Wire/JTAG Debug Port)
  • AHP-AP (AHB Access Port)
  • DWT (Data Watchpoint Trigger)
  • FPB (Flash Patch Breakpoint)
  • ITM (Instrumentation Trace Macrocell)
  • ETM (Embedded Trace Macrocell)
  • TPIU (Trace Port Interface Unit)









2019년 2월 24일 일요일

STM32F765BI 와 STM32H743BI 비교


STM32F765BI
STM32H743BI

ARM Cortex-M7 216 MHz
ARM Cortex-M7 400 MHz

Chrom-ART Accelerator
Chrom-ART Accelerator

ART Accelerator
JPEG Codec Acceleration

Cache I/D 16+16 Kbytes
Cache I/D 16+16 Kbytes
Floating point unit
FPU
DP-FPU
Nested vector interrupt controller (NVIC)
O
O
JTAG/SW debug/ETM
O
O
Memory Protection Unit (MPU)
O
O
ROP, PC-ROP
anti-tamper
X
O
AXI and Multi-AHB bus matrix
O
O
DMA
1x 16-channel
4x
True random number generator (RNG)
O
O
Flash
2-Mbyte dual bank
2-Mbyte dual bank
RAM
512-Kbyte SRAM
+ 16-Kbyte ITCM RAM
1-Mbyte SRAM incl.
64-Kbyte ITCM RAM

FMC/SRAM/NOR/NAND/SDRAM
FMC/SRAM/NOR/NAND/SDRAM
Dual Quad-SPI
O
O
backup SRAM
91-byte + 4-Kbyte
1024-byte + 4-Kbyte
OTP
1024-byte
X
System
Power supply
1.2 V regulator
POR/PDR/PVD
Main
USB
back regulators
POR/PDR/PVD/BOR
Multi-power domains
X
O
Xtal oscillators
32 kHz + 4~16 MHz
32 kHz + 4~48 MHz
Internal RC oscillators
32 kHz + 16 MHz
32 kHz + 4, 48 & 64 MHz
PLL
1
3
Clock control
O
O
RTC/AWU
O
O
SysTick timer
1
1
watchdogs
(independent and window)
2
2
I/Os
82 / 114 / 140 / 168
82 / 114 / 140 / 168
Cyclic redundancy check (CRC)
O
O
Unique ID
X
O
Control
AC timer
16bit motor control PWM synchronized
2x
16bit motor control PWM synchronized
2x
timers
10x 16bit
2x 32bit
10x 16bit
2x 32bit
Low-Power timer
1
5
High res. timer
X
16bit
Connectivity
TFT-LCD controller
X
O
HDMI-CEC
O
O
SPI
6
6
I2S
3
3
I2C
4
4
Camera interface
O
O
Ethernet MAC
10/100 with IEEE 1588
10/100 with IEEE 1588
MDIO slave
O
O
CAN
3x 2.0B
2x FDCAN
(Flexible Data rate)
USB 2.0 OTG FS/HS
1
1
USB 2.0 OTG FS
1
1
SDMMC
2
2
USART
4
4
UART
4
4
LIN
O
O
smartcard
O
O
IrDA
O
O
modem control
O
O
Low-power UART
x
1
SAI
(Serial audio interface)
2
4
SPDIF input
4
4
DFSDM
O
8 inputs / 4 filters
SWP
(Single Wire Protocol)
X
O
Analog
DAC
2x 12-bit, 2-channel
2x 12-bit, 2-channel
ADC
3x 12-bit
24 channels / 2.4 MSPS
3x 14-bit
20 channels / up to 2 MSPS
Temperature sensor
O
O
COMP
x
2
OpAmp
x
2

2019년 2월 20일 수요일

STM32F767VGT6 외부 핀의 기능 요약


신호이름 핀번호 I/O 기능
전원
VDD 11,27,50,75,100 power Digital Circuit Power Supply : 디지털 회로의 전원 및 CPU에 내장된 전압 레귤레이터의 입력 단자. 여기에는 1.7~3.6V가 입력되어야 하며, 이 전원 단자들은 4.7uF와 0.1uF 커패시터로 필터링 및 디커플링해주는 것이 좋다
VBAT 6 power Backup Power Supply : LSE, RTC, 백업 SRAM 등과 같은 배터리 백업 회로 부분의 전원. 여기에는 1.65~3.6V의 백업용 전원이 입력되어야 한다.
VSS 10,26,49,74,99 ground Digital Circuit Ground : 이 소자에서 모든 디지털 회로의 접지 단자
VREF+ 20 I Positive Refrence Voltage : A/D 컨버터의 기준 전압. 1.65~VDDA 범위의 안정된 전압이 입력되어야 한다.
VDDA 21 power Analog Circuit Power Supply : A/D 컨버터, D/A 컨버터, RC 오실레이터, PLL 등과 같은 아날로그 회로 부분의 전원. 여기에는 1.8~3.6V가 입력되어야 하며, 1uF와 0.01uF 커패시터로 필터링 및 디커플링해주는 것이 좋다.
VSSA 19 ground Analog Circuit Ground : 이 소자에서 모든 아날로그 회로의 접지 단자.
VCAP1
VCAP2
48
73
O Regulator External Capacitor 1/2 : 소자 내부의 전압 레귤레이터를 안정시키기 위하여 외부에 커패시터를 연결하기 위한 단자. 이 단자와 접지 사이에 2.2uF의 커패시터를 연결해야 한다.
클록 오실레이터
OSC_IN
OSC_OUT
12
13
I
O
HSE Oscillator Input / HSE Oscillator Output : 외부에 수정발진자를 접속하여 내부에서 HSE 클록을 발생하는 회로의 입력 단자. 여기에는 4~26MHz의 수정발진자를 접속하여, 접지와의 사이에 5~25pF의 커패시터를 접속한다. 수정발진자를 사용하는 대신에 외부에서 클록신호를 인하하려면 OSC_IN 단자에 접속해야 하며, 이 때 OSC_OUT 단자는 사용하지 않는다.
* OSC_IN 신호는 GPIO의 PH0와 기능을 겸하고 있으며, OSC_OUT 신호는 GPIO의 PH1과 기능을 겸하고 있다.
OSC32_IN
OSC32_OUT
8
9
I
O
LSE Oscillator Input / LSE Oscillator Output : 외부에 수정발진자를 접속하여 내부에서 LSE 클록을 발생하는 회로의 입력단자. 여기에는 32.768kHz의 수정발진자를 접속하며, 접지와의 사이에 5~16pF의 커패시터를 접속한다. 수정발진자를 사용하는 대신에 외부에서 클록신호를 인가하려면 OSC32_IN 단자에 접속해야 하며, 이 때 OSC32_OUT 단자는 사용하지 않는다.
* OSC32_IN 신호는 GPIO의 PC14와 기능을 겸하고 있으며, OSC32_OUT 신호는 GPIO의 PC15와 기능을 겸하고 있다.
리셋 및 부팅
NRST 14 I/O External System Reset : CPU 외부 시스템 리셋 신호. 이 신호는 내부에서 약 40k옴의 저항으로 VDD에 풀업되어 있으며 300ns 이상의 low enable 신호에 의하여 동작한다. 이 신호는 내부에서 워치독 타이머나 소프트웨어 리셋 등에 의하여 20us 이상의 리셋 출력 신호로 동작하기도 한다.
BOOT0 94 I Boot 0 : 부팅 모드를 결정하는 입력 단자. 리셋 후에 SYSCLK의 4번째 상승에지에서 이 단자 신호가 입력되어 아래와 같이 부팅 모드를 결정한다.
BOOT0 = 0 : 옵션 바이트 BOOT_ADD0[15:0]에 지정된 번지에서 부팅한다. (디폴트로 ITCM 영역의 플래시 메모리 0x0020 0000 번지)
BOOT0 = 1 : 옵션 바이트 BOOT_ADD1[15:0]에 지정된 번지에서 부팅한다. (디폴트로 시스템 메모리 영역의 0x0010 0000 번지)
JTAG 및 SWD
JTMS/SWDIO 72 I/O Test Mode Select 또는 Serial Wire Data Input/Output : JTAG 인터페이스의 JTMS 신호 또는 SWD 인터페이스의 직렬 데이터 입출력 신호. 내부에서 약 40k옴 정도의 저항으로 풀업되어 있다.
* 이 신호는 GPIO의 PA13 단자와 기능을 겸하고 있다.
JTCK/SWCLK 76 I Test Clock 또는 Serial Wire Clock : JTAG 인터페이스의 JTCK 신호 또는 SWD 인터페이스의 직렬 클록 신호. 내부에서 약 40k옴 정도의 저항으로 풀업되어 있다.
* 이 신호는 GPIO의 PA14 단자와 기능을 겸하고 있다.
JTDI 77 I Test Data Input : JTAG 인터페이스의 JTDI 신호. 내부에서 약 40k옴 정도의 저항으로 풀업되어 있다.
* 이 신호는 GPIO의 PA15 단자와 기능을 겸하고 있다.
JTDO 89 O Test Data Output : JTAG 인터페이스의 JTDO 신호. 내부에서 풀업 또는 풀다운되지 않고 플로팅 되어 있다.
* 이 신호는 GPIO의 PB3 단자와 기능을 겸하고 있다.
NJTRST 90 I Test Reset : JTAG 인터페이스의 NJTRST 신호. 내부에서 약 40k옴 정도의 저항으로 풀업되어 있다.
* 이 신호는 GPIO의 PB4 단자와 기능을 겸하고 있다.
병렬 I/O 포트
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PA8
PA9
PA10
PA11
PA12
PA13
PA14
PA15
22
23
24
25
28
29
30
31
67
68
69
70
71
72
76
77
I/O *
I/O *
I/O *
I/O *
I/O
I/O
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
General-Purpose Input/Output Port A : 16비트의 병렬 I/O 포트. 16비트의 병렬 입출력은 물론이고, 비트 단위의 입출력이 가능하다.
 출력 모드로 설정할 때는 푸시풀(push-pull) 또는 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 오픈 드레인(open drain)으로 설정할 수 있다.
 입력 모드로 설정할 때는 플로팅(floating), 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 입력, 아날로그 입력 등으로 설정할 수 있다.
 각 핀은 16가지의 부수적인 기능을 수행할 수도 있다.
* 핀은 +5V 레벨의 로직 신호를 입력하는 것이 가능(5V-tolerant)하다.
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PB8
PB9
PB10
PB11
PB12
PB13
PB14
PB15
34
35
36
89
90
91
92
93
95
96
46
47
51
52
53
54
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
General-Purpose Input/Output Port B : 16비트의 병렬 I/O 포트. 16비트의 병렬 입출력은 물론이고, 비트 단위의 입출력이 가능하다.
 출력 모드로 설정할 때는 푸시풀(push-pull) 또는 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 오픈 드레인(open drain)으로 설정할 수 있다.
 입력 모드로 설정할 때는 플로팅(floating), 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 입력, 아날로그 입력 등으로 설정할 수 있다.
 각 핀은 16가지의 부수적인 기능을 수행할 수도 있다.
* 핀은 +5V 레벨의 로직 신호를 입력하는 것이 가능(5V-tolerant)하다.
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
PC8
PC9
PC10
PC11
PC12
PC13
PC14
PC15
15
16
17
18
32
33
63
64
65
66
78
79
80
7
8
9
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
General-Purpose Input/Output Port C : 16비트의 병렬 I/O 포트. 16비트의 병렬 입출력은 물론이고, 비트 단위의 입출력이 가능하다.
 출력 모드로 설정할 때는 푸시풀(push-pull) 또는 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 오픈 드레인(open drain)으로 설정할 수 있다.
 입력 모드로 설정할 때는 플로팅(floating), 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 입력, 아날로그 입력 등으로 설정할 수 있다.
 각 핀은 16가지의 부수적인 기능을 수행할 수도 있다.
* 핀은 +5V 레벨의 로직 신호를 입력하는 것이 가능(5V-tolerant)하다.
PD0
PD1
PD2
PD3
PD4
PD5
PD6
PD7
PD8
PD9
PD10
PD11
PD12
PD13
PD14
PD15
81
82
83
84
85
86
87
88
55
56
57
58
59
60
61
62
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
General-Purpose Input/Output Port D : 16비트의 병렬 I/O 포트. 16비트의 병렬 입출력은 물론이고, 비트 단위의 입출력이 가능하다.
 출력 모드로 설정할 때는 푸시풀(push-pull) 또는 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 오픈 드레인(open drain)으로 설정할 수 있다.
 입력 모드로 설정할 때는 플로팅(floating), 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 입력, 아날로그 입력 등으로 설정할 수 있다.
 각 핀은 16가지의 부수적인 기능을 수행할 수도 있다.
* 핀은 +5V 레벨의 로직 신호를 입력하는 것이 가능(5V-tolerant)하다.
PE0
PE1
PE2
PE3
PE4
PE5
PE6
PE7
PE8
PE9
PE10
PE11
PE12
PE13
PE14
PE15
97
98
1
2
3
4
5
37
38
39
40
41
42
43
44
45
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
I/O *
General-Purpose Input/Output Port E : 16비트의 병렬 I/O 포트. 16비트의 병렬 입출력은 물론이고, 비트 단위의 입출력이 가능하다.
 출력 모드로 설정할 때는 푸시풀(push-pull) 또는 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 오픈 드레인(open drain)으로 설정할 수 있다.
 입력 모드로 설정할 때는 플로팅(floating), 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 입력, 아날로그 입력 등으로 설정할 수 있다.
 각 핀은 8가지의 부수적인 기능을 수행할 수도 있다.
* 핀은 +5V 레벨의 로직 신호를 입력하는 것이 가능(5V-tolerant)하다.
PH0
PH1
12
13
I/O *
I/O *
General-Purpose Input/Output Port H : 8비트의 병렬 I/O 포트. 기본적인 병렬 입출력은 물론이고, 비트 단위의 입출력이 가능하다.
 출력 모드로 설정할 때는 푸시풀(push-pull) 또는 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 오픈 드레인(open drain)으로 설정할 수 있다.
 입력 모드로 설정할 때는 플로팅(floating), 약 40k옴(30k옴~50k옴) 정도의 풀업저항이나 풀다운 저항을 갖는 입력, 아날로그 입력 등으로 설정할 수 있다.
 각 핀은 16가지의 부수적인 기능을 수행할 수도 있다.
* 핀은 +5V 레벨의 로직 신호를 입력하는 것이 가능(5V-tolerant)하다.