[임베디드 기본 및 상식] MCU

1. 알아야 할 상식

1. ARM(코어)

  • ARM: ARM 회사를 나타낼 수 있는 모호한 단어, ARM 코어 = ARM 프로세서.
  • 코어 및 프레임: 프레임은 회로도와 같고 코어는 PCB와 같으며 프레임은 여러 버전의 PCB를 그릴 수 있습니다.
  • ARM 프로세서: 영국의 ARM 회사에서 ARM 프로세서를 설계했습니다.우리가 일반적으로 말하는 ARM은 ARM 프로세서를 말합니다. ARM 프로세서는 많은 중앙 처리 장치(CPU) 중 하나일 뿐입니다.
  • Cortex 프로세서: Cortex는 ARM의 일련의 프로세서 이름입니다. 예: 피질 M0 M3 M4 M7

2. 단일칩 마이크로컴퓨터 = MCU = 마이크로컨트롤러(칩)

  • 단일 칩 마이크로컴퓨터: 집적 회로 칩입니다. 중앙 처리 장치 CPU(예: ARM 프로세서가 포함된 32개의 단일 칩 마이크로 컴퓨터), RAM, ROM...
  • STM32 마이크로컨트롤러: STMicroelectronics에서 설계한 임베디드 마이크로컨트롤러입니다. (MCU 모델: STM32 F0 F1 F2 F3 F4 F7 H7). CPU가 채택한 것은 ARM 프로세서입니다. (STM32F1은 Cortex-M3 코어 채택, F4는 Cortex-M4 코어 채택, F7은 Cortex-M7 코어 채택, H7은 듀얼 코어 M7+M4 채택)

3. 회로 기판(기판 카드)

4. 임베디드 시스템(어플리케이션)

  • 임베디드 시스템의 가장 큰 특징은 너무 많은 기능을 사용하지 않고 제품의 필요에 따라 기능을 설계하고 비용을 최소화하는 것입니다. 저비용 + 고성능이므로 비용이 저렴하지만 제품 요구 사항을 충족할 수 있는 저가형 단일 칩 마이크로컴퓨터가 많이 있습니다.
  • 임베디드 시스템 = 마이크로컨트롤러 보드 + 임베디드 운영 체제. (운영체제가 아니어도 다 저비용으로 개발됨)

5. CPU 성능

  • DMIPS, MIPS: CPU를 테스트하는 데 사용되는 여러 가지 방법과 프로그램이 있습니다. 참고용일 뿐이며 신뢰할 수 없습니다.

8. 주파수 곱셈 및 주파수 분할

  • 주파수 체배: 외부 수정 발진기의 주파수를 CPU에 필요한 고주파수로 높입니다.
  • 주파수 분할: 고주파를 줄이고 단일 제품 기계의 다른 부분에 다른 주파수를 제공합니다.
  • PLL: 주파수 체배기. PLL.
  • 프리스케일러: 프리스케일러.

9.TTL 및 CMOS 레벨

  • 레벨은 인위적으로 규정된 규칙이며 01 논리 신호는 고전압 및 저전압 신호를 나타내는 데 사용됩니다.
  • 공통 레벨 유형: TTL, CMOS, LVTTL, LVCOMS, RS232, RS485 등
  • TTL:VCC=5V。
  • LVTTL(저전압):VCC=3.3V。VIH>=2V,VIL<=0.8V。
  • TTL 입력 핀이 플로팅일 때 기본 하이 레벨입니다.
  • CMOS: VCC=+5~+15
  • 단일 칩 마이크로컴퓨터, DSP, FPGA 등과 같은 다양한 시스템이 연결되어 있으므로 레벨 정의를 보려면 설명서를 확인해야 합니다.

10. 일반적인 컴파일 오류?

11. 에뮬레이터

  • 프로그램은 Flash가 아닌 에뮬레이터로 다운로드됩니다. 사용하지 않음

12. 인스트럭션 세트 감소

  • Instruction Set: 소프트웨어와 하드웨어 사이의 전환점.
  • 축소된 명령어 세트와 복잡한 명령어 세트, 컴퓨터는 복잡한 명령어 세트이고 하드웨어는 상대적으로 크고 복잡하며 많은 전력을 소비합니다.
  • ARM 프로세서는 32비트(16비트와 호환) RISC입니다.

13. ST, ARM 공식 홈페이지

  • ST 공식 홈페이지: 링크
  • 회사의 공식 웹 사이트를 보면 그가 하는 일과 고객이 누구인지 알 수 있습니다.
  • ST는 개발자를 위한 것이며, 공식 웹사이트에는 더 많은 정보가 있으며 페이지는 더 친근합니다. ARM은 칩 공장을 겨냥하고 있으며 공식 웹 사이트는 그다지 친숙하지 않습니다.

14. STM32 명명 규칙

  • ST는 회사 이름을 나타냅니다. M은 마이크로 프로세서를 나타냅니다. 32는 ARM32비트 프로세서를 나타냅니다. F는 성능을 의미합니다. 103 시리즈. 다음 몇 자리는 핀 수, 메모리 크기, 패키지 유형 및 작동 온도를 나타냅니다.
  • 요약: STM32F103의 몇 비트가 칩을 결정합니다. C8T6의 여러 비트가 핀 수와 메모리 크기 등을 결정합니다.

15. 칩 설명서 읽기

  • 디렉토리 제목을 먼저 탐색하여 거기에 무엇이 있는지 확인하십시오.
  • 주로 차트
    • 페이지 11: MCU 내부 모듈의 블록 다이어그램
    • 페이지 12: 시계 트리
    • 13페이지 및 다음: 핀 다이어그램
  • 그림을 읽으십시오. 사다리꼴은 선택기, 굵은 선은 버스, 가는 선은 단일 핀, 선 안쪽은 마이크로 컨트롤러 내부입니다.
    여기에 이미지 설명 삽입

16. 소프트웨어와 하드웨어의 관계

  • 소프트웨어는 사용자 프로그램을 의미하며 현재 세 가지 유형의 레지스터, 라이브러리 기능 및 HAL 라이브러리가 있습니다. 어느 것이든 주소와 상태가 최종적으로 작동되고 마이크로컨트롤러가 최종적으로 작동됩니다.
  • SRAM에는 단일 칩 마이크로 컴퓨터에 내장된 기능 구성 레지스터가 있으며 최종적으로 하드웨어를 작동합니다.
  • 자세한 내용은 데이터 시트의 메모리 맵 및 레지스터 주소 표를 참조하십시오.

17. 프로그램을 SRAM 또는 FLASH로 다운로드

  • 처음에는 코드, 상수 및 전역 변수가 모두 플래시에 다운로드됩니다.
    그런 다음 프로그램 실행이 시작된 후 전역 변수는 sram으로 이동하고 코드와 상수는 여전히 플래시에 있습니다.
  • 거물 기사 참조: https://blog.csdn.net/yangkuiwu/article/details/78219995

둘째, 마이크로 컨트롤러의 내부 기능

(그림은 제일 마지막 부분에 넣어주세요. 글 중간에 두 번째 부분도 넣어보세요. 예전에는 그림 삽입이 번거로울 것 같았는데 지금은 너무 추상적인 그림은 없는 것 같아요)

0. 마이크로 컨트롤러의 내부 기능을 세 부분으로 나눕니다.

  • 핵심 기능: 코어, 메모리, 시계. (컴퓨터 CPU, 메모리스틱, 하드디스크와 유사)
  • 중요한 기능: 주변 장치.
  • 추가 기능: CRC, 칩 번호.

1. 핵심 기능: 커널

  • ARM32비트 프로세서인 cortex-M3를 사용합니다. 최고 작동 주파수는 72MHz입니다.

2. 핵심 기능: 메모리

  • 스램과 플래시. STM32F103 중용량 시리즈, 64K 또는 128K 플래시, 20K SRAM.
  • 이 둘의 주요 차이점은 정전 후 저장할 수 있는지 여부와 속도입니다.

3. 핵심 기능: 시계

  • HSE 외부 고속 수정 발진기: 4~16MHz, 시스템 클록으로 사용.
  • LSE 외부 저속 수정 발진기: 32khz, RTC에 사용.
  • HSI 내부 고속 RC 발진기: 8MHz, 시스템 클록으로 사용.
  • LSI 내부 저속 RC 발진기: 40KHz, RTC에 사용.
  • 요약: 외부 연결은 정확하지만 비용이 많이 듭니다.
  • 클록 분류: 코어 및 주변 클록, 독립 클록

4. 중요한 기능: 낮은 전력 소비

5. 중요한 기능: ADC

  • 16개의 외부 채널을 공유하는 2개의 12비트 ADC.
  • DMA 사용 가능

6. 중요 기능: DMA

  • 타이머, ADC, USART, I2C 및 SPI가 있는 주변 장치를 지원하는 7채널 DMA.

7. 중요 기능: GPIO

  • I/O: 입력 및 출력. 핀은 IO와 같지 않습니다.IO는 입력과 출력이 가능한 핀을 말하며 핀에는 전원 핀 등도 포함됩니다. C8T6에는 48개의 핀이 있으며 그 중 37개가 IO 포트입니다.
  • GPIO: 32의 정의. 일반 IO 포트입니다.
  • 최대 출력 전류: 8ma, 최대 입력 전류: 20ma. 따라서 LED 구동을 위한 푸시 풀 구동과 전류 싱크 구동이 있으며 전류 구동이 더 밝을 것입니다.
  • 32개의 입력 및 출력 방법은 다음과 같습니다.
    • 4개의 입력: 아날로그, 플로팅, 풀업.
    • 네 종류의 출력: 푸시-풀, 오픈-드레인, 멀티플렉싱 푸시-풀, 오픈-드레인. (푸시풀은 구동 기능이 있는 고전류 출력인 반면 오픈 드레인은 구동 기능이 없습니다.)

8. 중요한 기능: 디버깅

  • ARM 코어에 내장된 SWD 및 JTAG가 있습니다.

9. 중요한 기능: 타이머

  • 타이머 7개, 일반 16비트 3개, 고급 16비트 1개, 개방형 개 2개 12비트, 7비트, 틱 타이머 1개.

10. 중요 기능: 통신 인터페이스

  • 통신 인터페이스 9개, USART 3개, I2C 2개, SPI 2개, CAN 1개, USB2.0 1개.
  • USART1의 통신 속도는 초당 4.5M이고 나머지 두 개는 2.25M입니다.
  • I2C 통신 속도:
  • SPI 통신 속도는 초당 18M입니다.
  • CAN 통신 속도 초당 1M.
  • USB 통신 속도 초당 12M.

11.RTC

12.엔빅

13. 아웃

14. 부트스트랩 모드

  • 일반적으로 FLASH에서 시작합니다. ISP가 다운로드할 때 시스템에서 부팅합니다. 디버깅할 때 SRAM에서 시작하고 프로그램을 빠르게 다운로드하지만 전원이 꺼지면 손실됩니다.

11. 추가 기능: CRC

  • CRC는 데이터의 정확성을 확인하는 데 사용됩니다.

12. 추가 기능: 칩 번호

  • 각 칩에는 고유한 96비트 일련 번호가 있습니다.

3. 실제 프로그래밍

0. 소프트웨어 준비

  • keil5, Jlink 드라이버

1. C 지식이 필요합니다.

  • #if #endif
    enum
    char8 int16 long float32
    typedef
    구조체
  • 32비트 MCU에서 워드 = 4바이트

2. 엔지니어링 문서

삼.

추천

출처blog.csdn.net/weixin_44029896/article/details/126760894