데이터 시트 쪼개보기

김지성·2022년 7월 11일
1

Embedded

목록 보기
6/19
post-thumbnail

1.1 32bit의 의미

메모리에서 레지스터로 읽어 올때 32bit만큼 병렬로 읽어들일 수 있다.
**usb는 시리얼(직렬) 통신으로 1bit씩 움직이지만 엄청 빠르다.

32bit 컴퓨터라고 하면 레지스터 크기가 32bit이고, 메모리에 한 번 저장되는 크기도 32bit이고, 메모리에서 레지스터로 읽어오는 것도 32bit(=32개의 선)이다. 그리고 32bit 컴퓨터일 경우 메모리(시금치)가 4GB(2^32)까지만 인식되고, 64bit일 경우 8GB(2^64)까지 인식된다는걸 들어본적이 있다.

즉 bit가 큰 컴퓨터는 "빠르다"라고 말할 수 있다.

1.2 클럭의 의미

클럭은 심장의 심박수와 같은 필수적인 존재이다. 클럭은 시간개념하고는 조금 다르다. 인간에게는 "초(sec)"라는 개념이 있지만 CPU에겐 시간보다는 "클럭"이라는 개념뿐이다. 인간은 1초에 눈 한 번 껌뻑거릴 수 있지만 CPU는 클럭의 수에 따라 한 번 혹은 수 천번 껌뻑거릴 수 있게 되는것이다. 즉 CPU는 클럭이 클 수록 더욱 더 많은 일을 처리할 수 있다.

내가 사용하는 MCU는 72Mhz까지 지원해준다. 즉 1초 동안 1/72Mhz 정도의 펄스가 생기기 때문에 엄청 많은 일을 하는것이다. 하지만 더 빠른 처리를 위해 CPU가 가지고 있는 한계보다 더 많은 펄스를 넣어줘봤자 큰 의미를 갖진 않는다.

sin파가 한 번 그려질 때(1주기=1초)가 1Hz이다.
ex) 100Hz는 1초에 100번 sin파를 그린다.

1.3 DMIPS와 mHZ의 의미

1.3.1 MIPS(Million Instructions Per Second)

컴퓨터의 프로세서 속도 측정 단위이면서 IPS(Instructions per second, 초당 명령 수)는 단위 시간당 처리할 수 있는 명령어이다.


예를 들어 ADD라는 명령어가 있다면 1초에 100만번 수행할 수 있다는 뜻이 된다.

1.3.2 DIMPS(Dhrystone Million Instructions Per Second)

특정 작업을 수행시켜 이에 걸리는 시간을 측정한 후 정수화 하여 시스템 성능을 비교함

즉 "Cortex-M3는 1초에 72Mhz로 클럭이 작동하고, 1Mhz의 클럭이 흐를때 어떠한 명령어를 1.25번 수행할 수 있다."라고 말할 수 있을거 같다.

<참고>
https://blog.daum.net/trts1004/12109453 - 예시를 들어줌
https://blog.daum.net/trts1004/12109217

1.4 Performance at 0 wait state memory access

프로세서가 메모리 액세스를 수행하기 위해서는 기다릴 필요가 있지만 여기서는 기다릴 필요가 없다고 명시해줬다.

1.5 Single-cycle multiplication and hardware divison

싱글 사이클에 곱하기를 할 수 있고 하드웨어는 나누기를 할 수 있다. -> 그냥 빠르다
(파이프 라인 이해해보기)

1.6 Memories

Flash와 SRAM의 차이점을 찾아보자

1.7 clock, reset and supply management

1.7.1 2.0 to 3.6V application supply and I/O

  • 2V ~ 3.6V의 전원을 공급(OUTPUT)해줄 수 있다.

1.7.2 POR, PDR, and programmable voltage detector (PVD)

  • POR = Power on Reset : Vpor 이상이면 리셋 해제
  • PDR = Power Down Reset : Vpdr 이하이면 리셋
  • PVD = Programmable Voltage Detector : 전원 전압이 지정값 이하로 떨어지면 인터럽트가 발생(응용 많이 함)

1.7.3 Internal 8 MHz factory-trimmed RC(발진기)

내부에 8MHz를 만들어내는 발진기가 존재한다.

1.7.4 PLL for CPU clock

**PLL(위상 동기 회로) = Phase-Locked Loop

현재 우리는 8Mhz짜리 발진기를 달아줌으로써 8Mhz 클럭을 만들어 주고 있다. 하지만 우리 MCU는 72Mhz까지 클럭을 만들어 사용할 수 있다. 즉 PPL이라는 회로를 이용하여 8Mhz를 72Mhz까지 끌어올릴 수 있도록 해준다.

크리스탈 발진기에서 만들어주는 클럭을 증폭시키도록 도와준다.

1.7.6 32 kHz oscillator for RTC with calibration

**RTC = Real Time Clock
32kHz까지 작동할 수 있도록 도와주는 RTC 발진기가 있다.

1.8 Low-power

1.8.1 Sleep, Stop and Standby modes

전력을 적게 사용하고 싶을 때 사용되는 모드이다. (필요 순간 진입할 수도 있고, 매 순간 사용할 수도 있다)

1.9 A/D converters, 2x12-bit, 1 µs (up to 16 channels)

** ADC = 전압을 디지털화 시키는 것

12bit ADC가 2개 있고, 한 번 수행하는데 10^-6sec가 필요하고, 16개의 입력할 수 있는 채널을 지원해준다.

12bit가 가지는 의미는 3.6V를 2^12로 나누었다는 뜻이다. 8bit와 32bit의 값 정확도를 비교했을때 32bit가 훨씬 정교하다.

1.9.1 Dual-sample and hold capability

ADC에서 신호를 양자화 할려고 할 때, 표본화 값을 받을 만한 시간이 어느정도 필요하다.
** 표본화와 양자화 정리 블로그 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=yong_hee0214&logNo=140156731945

1.10 DMA(Direct Memory Access)

CPU의 도움을 받지 않고 I/O와 Memory가 정보를 주고 받을 수 있도록 도와줌

1.11 Debug mode

STM32cubeIDE에서 핀을 설정해 준다 >> PCB와 STlink를 연결 해준다 >> 노트북에 연결하여 디버그 모드에 진입한다.

1.12 7 timers

  • Counter Mode

    카운터가 완료 되면 인터럽트가 발생

  • External Input Counter Mode

    버튼이 눌릴 때마다 외부 인터럽트가 발생하고, 발생 동시에 카운터 값이 증가한다.

  • PWM Output Mode
  • Input Capture Mode
  • Output Compare Mode
  • watchdog timers

    밥을 주면 개가 짖지 않고 밥을 주지 않으면 개가 짖는다(짖을 때 인터럽트가 발생)

profile
JUST DO IT

0개의 댓글