MCU지식 10

USB2.0 기본개념

안녕하세요. 오늘은 USB 통신에 대해 알아보겠습니다. USB 란 Universal Serial Bus의 약자입니다. 범용 직렬 버스라고 부릅니다. 일반적인 USB는 통신할때 선이 4가닥(USB 2.0) 필요합니다. (VCC, GND, D+, D-) VCC랑 GND는 전원(5V) 이고 D+,D-는 통신라인입니다. 아래의 사진은 USB 2.0 허브입니다.선이 4가닥있는것을 볼 수 있습니다. 그래서 통신파형을 측정할때는 D+,D-,GND를 측정하면 됩니다. *용어 USB관련 자료를 볼때 자주 사용하는 용어들을 정리해보겠습니다. 호스트(Host) : USB의 마스터를 호스트라고 부릅니다. 일반적으로 PC가 됩니다. 디바이스(Device) : USB의 슬레이브를 디바이스라고 부릅니다. 일반적으로 PC에 연결하는..

MCU지식/USB통신 2024.03.30

MCU-Open drain 알아보기

안녕하세요. 오늘은 Open drain에 대해 알아보겠습니다. Open drain을 알아보기전에 먼저 push pull을 알고있어야 합니다. Push pull? Open drain은 push-pull에서 P-MOS를 사용하지않고 N-MOS만 사용합니다. GPIO OUTPIN BIT가 LOW면 GPIO OUTPUT PIN에 그라운드가 연결됩니다. GPIO OUTPUT BIT가 HIGH면 GPIO OUTPIN이 High impedance상태가 됩니다. (플러팅) GPIO OUTPUT PIN에는 주로 풀업저항을 연결해서 사용합니다. 위와같은 방법으로 사용하면 외부전원을 사용할수 있게됩니다. 이러한 방법을 사용하는곳중에 가장 대표적인게 I2C통신 입니다. I2C통신에서는 한개의 SDA랑 SCL라인을 가지고 다양..

MCU지식 2023.10.15

ARM 명령어 아키텍처

안녕하세요. 오늘은 ARM 명령어 아키텍처에 대해 알아보겠습니다 * Instruction Set Architecture(ISA) 소프트웨어와 하드웨어 사이에서 합의된 규칙입니다. 명령어 집합, 명령어 형식을 지정합니다. 컴파일러 개발자는 이러한 규칙을 가지고 C와같은 고급언어에서 기계어로 번역하는 컴파일러를 설계합니다. 하드웨어디자이너는 이러한 규칙을 따라 프로세서를 만듭니다. ISA에는 RISC(Reduced Instruction Set Computer)와 CISC(Complexe Instruction Set Computer) 두가지 범주로 구분할 수 있습니다. 모바일, 임베디드에서는 주로 RISC를 사용하고 데스크탑, 서버에서 사용되는 x86은 CISC를 사용합니다. RISC프로세서는 일반적으로 간단..

MCU지식 2023.04.23

엔디안이란?(빅엔디안, 리틀엔디안)

안녕하세요 오늘은 엔디안에 대해 알아보겠습니다. 엔디안이란 데이터에 여러 바이트가 있는 경우 바이트 순서를 정하는 규칙입니다. 빅 엔디안(big endian)과 리틀 엔디안(little endian)두가지 방법이 있습니다. 리틀 엔디안은 숫자의 하위 바이트가 메모리의 최하위 주소에 저장되고 상위 바이트가 최상위 주소에 저장됨을 의미합니다. 빅 엔디안은 숫자의 상위 바이트가 최하위 주소에 저장되고 하위 바이트가 최상위 주소에 저장됨을 의미합니다. STM32는 일반적으로 리틀 엔디안 형식입니다 실제로 빌드된 STM32의 메모리값을 보겠습니다. 볼 메모리 값은 _estack입니다 _estack은 ORIGIN(RAM) + LENGTH(RAM)이므로 0x20005000입니다. .bin파일을 HxD에디터로 열어봤습..

MCU지식 2023.03.26

MCU GPIO 전류 측정하기

안녕하세요. 오늘은 MCU GPIO 전류를 측정해보겠습니다 사용하는 보드는 nucleo-f103rb(STM32F103RB)입니다. 측정방식 측정방식은 아래의 그림처럼 멀티미터를 이용해서 측정합니다. 이 경우 멀티미터에는 3.3mA가 측정됩니다 회로에 pull-down, pull-up일때 GPIO의 설정을 변경하고 전류를 측정하겠습니다. 저항은 1kΩ을 사용했습니다 pull-down인 경우 먼저 INPUT일때 측정되는 소비전류입니다. 1,3번인경우 전압이 없으므로 0A가 나옵니다. 2번에서 pull up일때는 85uA가 측정됩니다. pull-up 이므로 위의 회로처럼 됩니다. 이때 내부풀업의 저항값을 구해보면 3.3=0.000085(1000+R)이므로 약R=37.8kΩ입니다. 데이터시트에도 40kΩ로 나와..

MCU지식 2023.01.23

UART통신 알아보기

안녕하세요. 오늘은 UART통신에 대해 알아보겠습니다. UART통신은 전송(TX)/수신(RX) 핀이 각각있고 핀이 HIGH / LOW로 변하면서 통신을 합니다. 핀이 HIGH/LOW로 변하는 시간을 가지고 데이터를 판단합니다. - Baud rate 시간은 Baud rate값으로 세팅합니다. Baud rate단위는 bps(bits per second)이고 초당 비트 수 입니다. 예를들어 Baud rate가 9600이라면 1초에 9600bit를 보냅니다. 1초에 9600bit면 1bit는 104us입니다. 위의 사진에서 HIGH/LOW가 변하는걸 1bit로 봅니다. 9600bps에서는 1bit가 104us인 모습입니다. - 패킷 구조 START하기: UART통신핀의 상태는 기본적으로 HIGH입니다. 그래서 ..

MCU지식 2022.12.24

MCU-push pull 알아보기

안녕하세요. 오늘은 push pull에 대해 알아보겠습니다 - push pull란? 일반적으로 IO를 출력모드로 설정하고, 1을 세팅하면 +, 0을 세팅하면 -로 포트가 설정되는 모드가 push pull 모드입니다. 예를들어 위의 그림과 같은형태로 사용합니다. PB0을 OUTPUT MODE로하고 1을 넣으면 LED가 켜지고 0을 넣으면 LED가 꺼집니다. -P-MOS, N-MOS동작방법 Vgs 0이면 ON됩니다. -push pull 구조 내부적으로는 위와같은 형태로 되어있습니다. 쉽게 생각하면 N-MOS와 P-MOS는 전기 스위치라고 보면 되고 N-MOS는 1이면 켜지고 P-MOS는 0이면 켜집니다. GPIO OUTPIN BIT가 LOW면 GPIO OUTPUT PIN에 그라운드가 연결되고, GPIO OU..

MCU지식 2022.06.02

MCU-GPIO구조 알아보기

안녕하세요. 오늘은 MCU의 GPIO 구조에 대해 알아보겠습니다. GPIO블럭도는 STM32데이터시트에 있는걸로 보겠습니다. 그 외의 MCU들도 GPIO구조가 다 비슷하다고 생각합니다. (1) PULL-UP, PULL-DOWN설정 : 입력부분의 풀업, 풀다운 설정하는 부분입니다. (2) Open drain, Push-pull : 출력부분의 오픈드레인, 푸쉬풀 설정 부분입니다. (3) Protection diode : 보호용 다이오드입니다. VDD가 3.3V이라고 가정해보고 다이오드작동전압이 0.7V이라고 가정해보고 I/O Pin에 3.3V+0.7V = 4V이상이 들어오면 다이오드쪽으로 전류가 다 빠져서 회로를 보호해줍니다. 그러므로 입력전압을 3.9V ~ -0.7V로 제한시켜서 보호해줍니다. Protec..

MCU지식 2022.05.22

MCU-플로팅현상, 풀업저항,풀다운저항이란?

안녕하세요 오늘은 플로팅과 풀업저항,풀다운저항에 대해 알아보겠습니다. MCU는 아두이노로 사용하겠습니다 *플로팅이란 처음에 버튼을 사용할 경우 그림과 같이 보통 연결합니다 버튼이 IO핀과, 3.3V에 연결되어있고, 버튼이 안눌렸을때는 0, 눌렸을때는 1을 기대합니다 1 2 3 4 5 6 7 8 9 10 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(2,INPUT); } void loop() { // put your main code here, to run repeatedly: Serial.println(digitalRead(2)); } Colored by Color Scripter cs 하지만 버튼을..

MCU지식 2022.01.01