내장형 마이크로컨트롤러에 필요한 PCB 회로 설계는 방대한 프로젝트이다.고급 마이크로컨트롤러의 경우 데이터 시트 및 기술 문서만 수백 페이지에 이를 수 있습니다.
회로 설계를 시작하기 전에 마이크로컨트롤러와 인터페이스가 있는 모든 주변 장치를 포함하여 주제의 모든 주요 구성 요소에 대한 작업 흐름도를 그리는 것이 좋습니다.
ARM Cortex-M 마이크로컨트롤러
이 문서에서는 ARM Cortex-M 마이크로컨트롤러를 수입하는 데 필요한 PCB 회로기판 설계 고려 사항을 중점적으로 다룹니다.ARM Cortex-M 마이크로컨트롤러에는 여러 칩 제조업체의 다양한 버전이 있습니다.
32비트 아키텍처의 ARM Cortex-M은 일반적인 8비트 마이크로컨트롤러에 비해 집약적이고 컴퓨팅 집약적인 작업에 특히 적합합니다.32비트 마이크로컨트롤러는 메모리 용량이 더 필요한 애플리케이션이 있거나 향후 확장을 위해 시스템 플랫폼 마이그레이션을 단순화할 수 있는 이점도 있습니다.
우리가 논의한 ARM Cortex-M 마이크로컨트롤러는 ST마이크로일렉트로닉스가 생산한 STM32 시리즈입니다.보다 정확하게는 STM32F4 시리즈에 초점을 맞출 것입니다.
그러나 STM32 시리즈에는 실제로 초저전력 STM32L 시리즈와 STM32F4 버전보다 성능이 높고 낮은 시리즈와 같은 많은 모델이 포함되어 있습니다.가장 효율적인 버전은 STM32F7로 초당 10억 개의 명령을 실행할 수 있다.효율이 가장 낮은 모델은 STM32L0으로 초당 2600만 개의 명령어만 실행한다.
전원 설계
회로의 전원은 하드웨어 설계에서 가장 중요한 부분 중 하나입니다.설계가 끝난 후에야 전원과 접지 구성을 결정하지 마십시오.
마이크로컨트롤러가 사용하는 전류는 작업 전압, 클럭 주파수 및 입력 / 출력 핀의 부하와 같은 여러 요인에 의해 결정됩니다.
1uF 및 100nF 세라믹 콘덴서 (그림 1의 C7 및 C8) 를 가능한 한 MCU의 각 전원 공급 장치 VDD 핀에 가깝게 하여 전원 디커플링을 제공해야 합니다.또한 4.7uF 세라믹 콘덴서 (그림 1의 C1) 는 VDD를 제공하는 주 회로 배선의 IC 위치 근처에 설치되어야합니다.
아날로그 변환기(ADC)가 있는 마이크로컨트롤러에는 일반적으로 아날로그 신호를 위한 독립형 전원(VDDA) 및 접지 핀(VSSA)도 있습니다.이 핀들은 특히 소음을 피해야 한다.
만약 당신의 전원 전압이 마이크로컨트롤러 입력 전압의 상한선보다 높다면, 당신은 보통 강압 선형 조절기가 필요합니다.예를 들어, 텍사스 인스트루먼트가 생산하는 TPS795xx는 특히 낮은 노이즈 특성을 가지고 있으며 최대 500mA의 전류를 공급할 수 있습니다.
전원 공급 장치의 전압이 마이크로컨트롤러에 필요한 전압보다 훨씬 높으면 전압 강하 스위치 전압기가 더 좋은 선택이 될 수 있습니다.입력 전압이 출력 전압보다 현저히 높을 때, 선형 조절기는 너무 많은 출력을 낭비할 것이다.
그러나 일반적으로 선형 조절기로 스위치 조절기의 출력 전압을 보조적으로 조절하는 것이 가장 좋다. 선형 조절기가 제공하는 전압 소음이 훨씬 낮기 때문이다.
시계
STM32F4는 내부 또는 외부 시스템 시계를 사용하여 실행할 수 있습니다.부팅할 때 사용하는 시스템 시계는 내부 시계(16MHz)입니다.시스템이 초기화되면 소프트웨어를 통해 외부 클럭 소스를 선택할 수 있습니다.
STM32F4의 클럭 핀은 4~26MHz의 외부 쿼츠 결정 (그림 1의 X1 참조) 을 구동하거나 최대 50MHz의 외부 클럭 소스를 사용할 수 있습니다.
결정의 구성은 데이터 테이블의 지침을 따라야 합니다.일반적으로 접선은 짧아야 하고 결정체의 부하용량은 결정체 제조업체가 추천한 값과 같아야 한다.
GPIO
마이크로컨트롤러의 일반 입력 및 출력(GPIO) 핀은 소프트웨어를 통해 입력 또는 출력으로 설정할 수 있도록 프로그래밍할 수 있습니다.
예를 들어, 그림 1의 S1은 GPIO 핀에 연결된 버튼으로 입력으로 프로그래밍됩니다.STM32는 내장형 업링크 저항을 제공하므로 외부 업링크 저항을 설치할 필요가 없습니다.이 예제의 GPIO 출력은 LED를 구동하는 데 사용됩니다.
대부분의 GPIO 핀에는 칩의 다양한 주변 구성 요소가 이러한 다기능 핀을 통해 외부와 통신하는 다른 기능도 있습니다.
각 GPIO 핀을 통해 모든 내부 기능을 사용할 수 있는 것은 아니며 엄격한 핀 매핑을 준수해야 하므로 사용할 핀을 선택할 때는 데이터 테이블을 참조하십시오.
GPIO 핀은 대부분의 핀이 최대 25mA의 전류를 공급하거나 견딜 수 있는 다양한 부하를 구동하는 데 사용될 수 있습니다.그러나 일반적으로 외부 구동 회로를 사용하여 마이크로컨트롤러 GPIO 드라이브의 부하를 줄이는 것이 더 나은 설계입니다.N1 제어 LED의 예는 그림 1을 참조하십시오.
STM32의 각 핀에는 정격 전류 상한과 모든 GPIO 핀의 총 전류 상한이 있습니다.
주변 장치 구성 요소 연결
STM32는 UART, I2C, SPI 및 USB 인터페이스를 통해 직렬 신호 연결을 제공합니다.
예를 들어, 그림 1에서 온도 센서(U2-LM75BDP)가 I2C 버스를 통해 마이크로컨트롤러에 연결되어 있습니다.I2C 버스에는 누극 오프로드 드라이브에 연결하기 위해 두 개의 업로드 저항기(R2, R3)가 필요합니다.
저속 센서와 같은 대부분의 응용 프로그램의 경우 통신을 위해 두 개의 선만 사용하기 때문에 I2C를 직렬 프로토콜로 사용하는 것을 선호합니다.또한 SPI와 달리 SPI는 각 주변 구성 요소를 처리하기 위해 작업 포트를 선택할 추가 칩이 필요하며 I2C는 단일 주소를 사용합니다.
SPI 버스는 Invenense에서 생산한 MPU-9250 9축 모션 센서에 연결됩니다.PU-9250에는 3축 가속도계, 3축 라인 자이로스코프, 3좌표 자력계가 포함되어 있습니다.
프로그래밍 커넥터
STM32F4는 직렬 라인 디버깅(SWD)과 JTAG라는 두 개의 시스템 내 프로그램 편집(ISP) 인터페이스를 제공합니다.저렴한 STM32 버전은 SWD 인터페이스만 제공합니다.SWD와 JTAG는 마이크로컨트롤러에서 가장 많이 사용되는 두 개의 프로그래밍 인터페이스입니다.
결론
이 문서에서는 마이크로컨트롤러의 PCB 회로 설계에 대해 논의하고 입력 버튼을 읽고 LED를 구동하며 I2C 온도 센서 및 SPI 모션 센서와 통신하는 STM32F4에 대해 설명합니다.