전체 글112 [오제이 튜브의 임베디드 강의] 26강. 다른 사람 소스 분석하는 방법! 1. 1-Wire 통신에서 장치 찾는방법 - 마스터가 특정 장치의 주소를 찾을 때, 그 장치가 마스터에게 어떻게 하나의 선으로 물려있는데 자신의 주소를 보낼까? 1-1. 크게 4 STEPRom Search 0xF0를 통해 Master가 Slave들에게 전송 한 bit를 읽는다비트의 보수를 읽는다(경우의 수에 의한) 0 또는 1을 Write 한다 1-2. 쉽게 더 풀어 설명하자면,Master에서 480μs 이상을 Low로 떨어트리면(Reset 신호) 통신 시작을 의미한다는 의미로, Slave들은 들을 준비 Slave에서 60~240μs를 Low로 떨어트려서 신호 전송(presence 펄스) Master는 그걸 읽고 장치가 존재하고 장치들이 들을 준비가 되었다는 것을 확인 Master는 Search com.. 2025. 2. 5. [오제이 튜브의 임베디드 강의] 25강. 어디서도 안 알려주는 프로토콜의 원리! 1. 1-Wire 통신이 통신의 최대 장점 : 두 선만으로 전원 공급 + 양방향 통신 가능 (∵ 선 가닥 수 ∝ 비용)두 가지 방식 존재 : Normal Power Mode / Parasite Power Mode1-1. 1-Wire 통신의 모드 Normal Power Mode : GND(그라운드) + DQ(신호) + Vdd(전원) 선들로 이루어짐 => 우리가 사용하는 모드 5v 전원이 공급 + 4.7k 저항과 함께 신호들이 joint됨이때, 우리는 Arduino Digital Input이 아닌 STM32F103 칩으로 INPUT이 들어감결국 MAIN 칩도 그라운드로 같이 연결되는 구조 Parasite Power Mode : 기생하는 파워 모드 5v 전원 공급 받아서 데이터 선으로만 가.. 2025. 1. 28. [오제이 튜브의 임베디드 강의] 24강. 1-Wire통신! 나름 유명했다. (온도센서) 1. 1-Wire 통신의 개요 1-Wire 라이브러리 존재 ( 유명하다)STM32에서 HAL 라이브러리에 존재cf. HAL(Hardware Abstraction Layer) : STMicroelectronics에서 제공하는 하드웨어 추상화 계층 라이브러리로, STM32 마이크로컨트롤러에서 하드웨어를 보다 쉽게 제어할 수 있도록 도와주는 소프트웨어 계층1-1. 1-Wire 통신이란? Dallas Semiconductor Corp에서 만든 통신 방식1-wire 버스를 사용하면 핀 하나만으로 통신 할 수 있고, 이 신호선으로 전원까지 공급 가능1-wire bus는 선 한개로 데이터 송/수신을 하기에 1-wire bus 방식의 IC와 연결하는 MCU는 GPIO핀의 입/출력 모드 번갈아 사용 => 1-wire에서.. 2025. 1. 28. [오제이 튜브의 임베디드 강의] 23강. 온도센서를 붙여보자! 1. 온도센서: 쇠부분에 열이 가해지면 저항 값이 변함으로 인해서 내가 측정할 수 있는 전압값이 변하게 됨=> 이 변환 수치로 온도 측정ex) 프로브에 100도 열을 가하면 저항이 어느정도 변하므로 전압값도 어느정도 변하겠구나 예측 1-1. 기존의 온도 측정 방법: 데이터를 받아서 회로 구성 후 우리 보드에서 ADC(아날로그 -> 디지털) 통해 전압값이 얼마나 변하는지 정보 get-> 이 전압은 몇 도에 해당하는지에 대한 테이블이 존재 ex) 전압이 3.3V가 정상인데 3.2V로 변했을 때 온도는 몇도? 인지에 대한 테이블 존재 1-2. 우리 온도센서 측정방법: 온도센서의 프로브와 전선 세가닥이 있을 때 이 세가닥과 모듈(위 사진의 초록색 네모)을 연결=> 프로브에 열을 가했을 때 이 열을 모듈에서 .. 2025. 1. 26. [오제이 튜브의 임베디드 강의] 22강. STM32에서는 SPI기능을 제공한다구! 1. 오늘의 목표 프로젝트 복사STM32 칩에서 제공하는 SPI 기능 2. 프로젝트 복사: 단순히 폴더 복사해서 새로운 폴더 만들면 복사된 프로젝트에서 수정하면 기존 프로젝트도 수정이 됨 => 프로젝트 복사하면 독자적인 프로젝트가 될 수 있도록 하자 기존 first 프로젝트 폴더 복사해서 생성한 second 폴더에 복사한 후에 IDE를 열고 기존 first 프로젝트 삭제 => 이때, Delete project contents on disk 체크 상자 해제 후 지움import project -> General -> Existing Projects into Workspace -> root directory를 second-second 폴더로 생성first.ioc -> second.iocRun -> Debug.. 2025. 1. 26. [오제이 튜브의 임베디드 강의] 21강. FND 제어 소스 분석! 1. send 함수 분석 내가 보내고 싶은 한 바이트의 숫자에 따라 패킷 생성해서 HIGH/LOW 로 바꿈DIO,SCLK 선 사용 이때, 맨마지막 FOR문이 끝나고 나면 HIGH로 바꾸기에 클럭의 기본상태는 HIGH임=> H L H L H L ... 의 클럭 생성이때, main함수에서 단순히 send(0xF8); 수행시 FND에 출력 안됨 1-1. FND에 7 출력=> send(0b001); 부터 아래 사진처럼 소스코드 추가해야 정상적으로 실행 => send_port가 기본 단위의 함수인데 이때 내가 보낼 데이터와 0b0001을 보내고 RCLK을 HIGH -> LOW 하면 내가 쓰고 싶은 데이터가 FND에 써짐=> 이때, 0b0001은 FND에 4개 LED가 있기 때문에 0001.. 2025. 1. 25. 이전 1 2 3 4 5 6 ··· 19 다음