프로그래머와 하드웨어 다루는 사람의 관점이 다름을 인지
cpu 코어의 성능 : TR 을 얼마나 밀도 있게 넣었냐에 따라 다름
하드/Flash > memory (ram) > reg > cpu
>> reg,reg > ALU (연산) > reg
mem 1번지 > reg //32bit 만큼 읽어옴
if. 32bit) 메모리, 레지, cpu, 메모리>레지로가는 라인, all 32 bit
: 메모리 주소 최대값 : 2^32 ~= 4gb
ARM® 32-bit Cortex®-M3 CPU Core
a)
72 MHz maximum frequency : 클럭 ( 명령의 기준점 )
1 HZ : 파형의 한주기
72,000,000번 / 1초
b)
1.25 DMIPS/MHz (Dhrystone 2.1)
클럭-> 명령어->특정행동
72Mhz MIPS DMIPS
1MIPS : 1 sec 에 M 개의 Instruction 수행
-> 오류가 좀 있음
1.25 DMIPS
D : dhrystone (벤치마킹 프로그램)
> 특정 행동을 기준으로 측정
ex) 드라이스톤사 프로그램 동작의 cpu1, cpu2 비교
1MHZ 동안 1.25 번의 포로그램을 돌림
a)+b) : 1초에 72MHZ 인데 1MHZ가 지나면 1.25번의 프로그램을 돌릴 수 있다
c)
performance at 0 wait state memory access
프로세서가 메모리 엑세스 하는데 기다릴 필요 x
d)
Single-cycle multiplication and hardware division
: cpu 1cycle ( 파이프라인) 에서 곱하기를 할 수 있고, 나누기를 hw적으로 한다( 빠르다)
Memories
a) 64 or 128 Kbytes of Flash memory : ~= hdd
b) 20 Kbytes of SRAM ~= ram
> 64 kb flash 로부터 20k 만큼의 SRAM을 올림 (스택,힙,변수)
Clock, reset and supply management
a) 2.0 to 3.6 V application supply and I/Os
b) POR, PDR, and programmable voltage detector (PVD)
c) 4-to-16 MHz crystal oscillator
d) Internal 8 MHz factory-trimmed RC
e) Internal 40 kHz RC
f) PLL for CPU clock
g) 32 kHz oscillator for RTC with calibration
a)
2~3.6v 전원 공급 가능
b)
POR: power on reset : Vpor 이상이면 리셋 해제
PDR :power down reset: Vpdr 이하이면 리셋 // 칩보호
BOR : brownout reset : threshold voltage 감시 //참고
PVD : programmable voltage detector :
전원,전압이 지정값 이하 > 인터럽트 발생
c)
crystal (소자) : 전류 + 주변회로 > 진동발생
Oscillator(IC) : 발진기 // 파형 발생, 클럭과 관련
IC 가 내장된 크리스털 OSC-XTAL
>> 크리스털로 기본진동을 만들고 발진기가 증폭,안정화 >클럭신호 제공
// 지금 쓰는 회로는 8MHZ
d,e) 내부에 RC 발진기 (공장에서 다듬어진)
f) PLL : phase-locked loop (위상 동기 회로)
현재 72MHZ 클럭에 8MHZ crystal oscillator 사용
> 오실레이터에서 제공하는 클럭을 높은 고 주파수로 만듬.
> 효율 up
g) RTC : real time clock : 시간을 측정하는 기준점
RTC를 위한 오실레이터
Low-power
a) Sleep, Stop and Standby modes
b) Vbat supply for RTC and backup registers
a)
mode 별로 각각 on,off 해서 전원효율 // 레지스터
b)
RTC 를위한 Vbat 공급
2 x 12-bit, 1 µs A/D converters (up to 16 channels)
// ADC 가 2개(12bit)
//아날로그 (전압: 0~3.6v) > 디지털화 (3.6v 를 2^12 로 나눔)
// 입력채널 16개
>> 16개의 채널 > 전압3.6v씩(anal) 순차적으로 > ADC > dig
a) Conversion range: 0 to 3.6 V
b) Dual-sample and hold capability
c) Temperature senso
b)
샘플 앤 홀드 회로
ADC 에서 신호를 양자화 > untill need for sampling(표본화) time > 신호 연장(홀드) 해야함
c)
센서로 온 온도 정보도 디지털로 보내줌
DMA : directory memory access
// 장치가 바로 메모리에 접근
// direct로 memory 전송, cpu에서도 바로 > fast
a) 7-channel DMA controller
b) Peripherals supported: timers, ADC, SPIs, I2Cs and USARTs
b)
장치들 : 타이머 , ADC ,SPIs,, 들
Up to 80 fast I/O ports
a) 26/37/51/80 I/Os, all mappable on 16 external interrupt vectors and almost all 5 V-tolerant
16개의 외부 interrupt 를 받아들이는 vectors 에 맵핑
// 특정 interrupt 발생시 그에 따른 행동을 함
5V 입력이 들어와도 핀or 디바이스의 다른 블럭에 문제 발생x
Debug mode
a) Serial wire debug (SWD) & JTAG
interfaces
stlink > SWD + JTAG 둘다 지원
SWD : 간단, 선 2가닥 ( DATA I/O pin, Clock pin)
// stlink 에서 회색 넓은 선에 꼽히는 핀
JTAG : 5개 , 복잡
7 timers
a) Three 16-bit timers, each with up to 4 IC/OC/PWM or pulse counter and
quadrature (incremental) encoder input
b) 16-bit, motor control PWM timer with dead time generation and emergency stop
c) 2 watchdog timers (Independent and Window)
d) SysTick timer 24-bit downcounter
Timer 7개 : 파형이 튈때마다 count 해서 몇번 할시 동작 하게 할 수 있음
> 쓰레드, 시간측정,
a)
counter mode : 카운터가 다 줄면 interrupt 발생
External input counter mode : 외부 interrupt > 버튼눌림> count 증가
PWM output mode
( PWM ) 100v인데 50v 필요할때
> High: 100v Low: 0v High :100v Low :0v 100v 0v,,,
> 평균 50v 로 만들어버림
> 언제 100v, 50v 할지를 타이머 사용
// 100v 시간을 줄이고 0v 를 늘리면 10v 등으로 응용가능
>> 디밍 :서서히 증가, 서서히 감소 ( ex) 크리스마스트리 )
> 전압 가변
>> 모터 제어
input capture mode
output compare mode
b)
긴급멈춤
c)
watchdog : 일정시간마다 내 cpu가 잘 돌아가는지 확인
//일정시간마다 먹이를 안 주면 짖는 개
> cpu 와 별개됨 // cpu 죽어도 계속
d)
systick : 기준이 되는 타이머
Up to 9 communication interfaces
a) Up to 2 x I2C interfaces (SMBus/PMBus) // 나중에
b) Up to 3 USARTs (ISO 7816 interface, LIN, IrDA capability, modem control)
c)Up to 2 SPIs (18 Mbit/s) // 나중에
d) CAN interface (2.0B Active)
e) USB 2.0 full-speed interface
b)
LIN( local interconnect network)
자동차업계에서 많이사용
저속 차량용 네트워크 , UART 사용
// UART 전이중 (비동기)
// USART 반이중 (동기/비동기) : synchronous
> 동기식 : 클락 필요, 빠름, 고정적
> 비동기식: 시작, 정지비트 필요 // 시작 0 , 종료 1
CRC calculation unit, 96-bit unique ID
시리얼통신(직렬통신) >노이즈가 영향 많이 받음 > 대책
// parallel통신 ( 병렬 )
1010 이라는 걸 보낼때
a 쪽에서 1010 에대한 CRC 까지 같이 보냄
b 쪽에서 1010 에대한 CRC 를 따로연산해서 a 의 CRC 와 맞는지 확인
Packages are ECOPACK®
패키지한 회사,,
Table 1. Device summary
디바이스 요약
'임베디드 > 고추건조기' 카테고리의 다른 글
UART로 printf() 구현 (0) | 2024.11.29 |
---|---|
오실로스코프 (1) | 2024.11.26 |
데이터 시트 보는법 (1) | 2024.11.23 |
GPIO 마무리, 회로도 보기 (0) | 2024.11.21 |
GPIO 탐구 (0) | 2024.11.21 |