지식/MCU지식 9

USB 키보드 통신 파형 분석하기 1편

안녕하세요. 오늘은 USB 키보드 통신 파형에 대해 알아보겠습니다. 1편에서는 키보드 통신파형을 분석하기위한 지식들을 알아보겠습니다.해당 글은 아래의 유튜브를 참고했습니다.https://www.youtube.com/watch?v=wdgULBpRoXk키보드는 LS인 것도 있고 FS인 것도 있습니다. 이전 글에서 LS는 D-가 pull-up이고 FS는 D+가 pull-up이라고 했었는데 실제 키보드를 가지고 그렇게 나오는지 확인해 보겠습니다.먼저 LS 키보드를 연결했습니다. D-가 HIGH 입니다.FS 키보드를 연결했습니다. D+가 HIGH입니다.LS키보드의 통신파형을 분석해보겠습니다.Differential 1일때는 D+ 가 HIGH고 D-가 LOW입니다.Differential 0일때는 D+가 LOW고 D-..

지식/MCU지식 2024.09.07

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라인을 가지고 다양한 DEVI..

지식/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에디터로 열어봤습니다(Hx..

지식/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입니다. 그래서 HIG..

지식/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 Vgs>0이면 ON됩니다.-push pull 구조내부적으로는 위와같은 형태로 되어있습니다. 쉽게 생각하면 N-MOS와 P-MOS는 전기 스위치라고 보면 되고 N-MOS는 1이면 켜지고 P-MOS는 0이면 켜집니다. GPIO OUTPIN BIT가 LOW면 GPIO OUTPUT PIN에 그라운드가 연결되고,GPIO OUTP..

지식/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을 기대합니다12345678910void 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 Scriptercs하지만 버튼을 안 눌린 상태에서 실제..

지식/MCU지식 2022.01.01