본문 바로가기

임베디드 개발324

OpenVPX 커넥터 구조 및 핀 맵핑 방식 OpenVPX 커넥터 구조 및 핀 맵핑 방식 (3U 기준) VPX란?VPX(VITA 46)는 기존 VMEbus를 발전시켜, 고속 데이터 전송을 지원함과 동시에 열 관리, 기계적 견고성 등 시스템 신뢰성을 대폭 강화한 하드웨어 인터페이스 표준이다. 주로 방위산업, 항공우주, 산업용 컴퓨팅 분야에서 널리 사용된다. VPX는 시스템 크기에 따라 3U, 6U 등의 폼팩터(form factor)를 제공하며, 시스템 규모와 성능 요구에 따라 다양한 구성이 가능하다.한편, OpenVPX는 VPX 표준을 기반으로 시스템 간 호환성과 상호운용성을 보다 명확히 규정한 프로파일 집합이다. OpenVPX는 커넥터 규격뿐만 아니라, 시스템 전체를 구성하는 다양한 요소까지 세부적으로 표준화하고 있다. 예를 들어 모듈 프로파일, .. 2025. 4. 28.
최적의 I2C 풀업 저항 선택 방법 1. 풀업 저항의 역할 I2C 통신 라인은 오픈 드레인(Open-drain) 구조로, 데이터(SDA)와 클럭(SCL) 신호를 LOW로 드라이브하는 것은 디바이스에서 직접 수행하지만, HIGH 상태는 외부 풀업 저항을 통해 이루어진다. 이 과정에서 풀업 저항 값 선택이 다음과 같은 요소에 영향을 미친다. 저항이 작은 경우 :소모 전력 증가 (P=V^2/R, 저항값이 적을수록 더 많은 전류가 흐르고 전력 소비가 증가한다)Rise time 감소 (신호 상승 속도가 빠르다)고속 데이터 전송에 적합저항이 큰 경우 :소모 전력 감소 (더 적은 전류가 흐른다)Rise time 증가 (신호 상승 속도가 느리다)저속 데이터 전송에 적합 2. 통신 속도에 따른 전송 모드 I2C는 다양한 속도 모드에서 동작하는데 각 .. 2025. 4. 27.
RJ-45 커넥터 핀아웃 (10/100BASE-T, 1000BASE-T 연결 방법) RJ-45 커넥터 핀 아웃    핀 번호페어10/100BASE-T1000BASE-T1Pair 2TX+BI_DA+2Pair 2TX-BI_DA-3Pair 3RX+BI_DB+4Pair 1-BI_DC+5Pair 1-BI_DC-6Pair 3RX-BI_DB-7Pair 4-BI_DD+8Pair 4-BI_DD-  ✅ 10/100BASE-T1, 2, 3, 6번 핀만 사용하며 1, 2번 핀(Pair 2)는 TX, 3, 6번 핀(Pair 3)은은 RX로 구분됨 ✅ 1000BASE-T (Gigabit Ethernet)8핀 모두 사용하며 모든 핀이 Bi-directional임 2025. 4. 15.
DAC sine wave 생성 DAC(Digital-to-Analog Converter)를 다룰 때, 시험용으로 사인파(Sine Wave) 신호를 생성하는 경우가 많다. 하지만 실시간으로 sin() 함수를 사용하는 것은 연산 부하가 크기 때문에, 대부분 LUT(Look-Up Table) 방식을 활용한다.  첫번째 방법아래 사이트를 이용하면 최소값(min), 최대값(max), 샘플 개수(N) 등을 입력하여 자동으로 사인파 LUT 배열을 생성해 준다. https://deepbluembedded.com/sine-lookup-table-generator-calculator/https://www.daycounter.com/Calculators/Sine-Generator-Calculator.phtml const uint16_t sineLooku.. 2025. 4. 12.
디지털 필터 (Moving Average, Exponential Filter) 아날로그 필터 (Analog Filter)회로에서 저항(R), 커패시터(C), 인덕터(L) 등의 수동 소자 또는 연산 증폭기(Op-Amp)를 활용하여 구현하는 필터이다. 하드웨어적으로 신호를 직접 처리하며, 대표적인 예로 LPF(Low Pass Filter), HPF(High Pass Filter), BPF(Band Pass Filter), BSF(Band Stop Filter) 등이 있다. 디지털 필터 (Digital Filter)디지털 필터는 아날로그 구성요소를 사용하는 대신 주로 소프트웨어 구현을 통해 특정 주파수 대역의 신호를 남기고 원하지 않는 대역의 신호를 감쇠시킨다. 구현에는 ADC로 아날로그 신호를 샘플링한 다음 소프트웨어 알고리즘을 적용하는 것이 포함된다.대표적인 방식으로 FIR(Fi.. 2025. 4. 9.
TCA9548A 데이터시트 및 리눅스 드라이버 분석 (Tested on Raspberry Pi 4) TCA9548A 데이터시트 분석 TCA9548A는 TI사의 8채널 I2C MUX(Multiplexer)로 하나의 I2C 마스터 버스를 통해 최대 8개의 하위 I2C 장치를 연결할 수 있게 해주는 칩이다. I2C는 원래 멀티드롭 토폴로지라서 여러 슬레이브 장치를 하나의 버스에 연결할 수 있는데도 불구하고 이런 MUX가 필요한 이유는? 주로 동일한 주소를 가진 센서를 여러가 사용해야할 경우 이런 I2C MUX를 사용해 채널을 전환하여 장치를 구분한다. 1. 주요 특징 1:8 양방향 I2C 스위치 구조I2C 및 SMBus 호환3개의 주소 핀으로 한 I2C 버스에 최대 8개의 TCA9548A 칩 연결 가능Active-low RESET 핀을 통한 시스템 초기화 및 복구 기능I2C 명령을 통해 원하는 채널을 .. 2025. 4. 6.
Raspberry Pi 4 ] 한글 입력 설정 Raspberry Pi 4 Model B 기준 $ sudo apt update   1. 한글 폰트 설치$ sudo apt install fonts-unfonts-core   2. ibus, ibus-hangul 설치$ sudo apt install ibus$ sudo apt install ibus-hangul   3. ibus-setup GUI 실행 후 Input Method에 Korean - Hangul 추가$ ibus-setup Input Method > Add >  ... 클릭 > Korean 검색 > Korean 클릭 > Hangul 선택   4. ibus를 default input method로 설정$ im-config -n ibus$ sudo reboot   5. default web brow.. 2025. 3. 30.
LDD ] Device Tree (DT, 디바이스 트리) 디바이스 트리 디바이스 트리(Device Tree, DT)란 하드웨어의 구조와 특성을 운영체제나 소프트웨어가 이해할 수 있도록 기술한 데이터 구조이다.이전에는 커널 소스에 하드웨어 정보를 하드코딩하는 방식이었다면 디바이스 트리 파일의 등장으로 인해 다양한 하드웨어를 단일 커널 이미지로 지원할 수 있게 되었다. 이로 인해 코드 중복이 줄어들고 유지보수성이 향상되는 이점이 있다. 디바이스 트리의 주요 목적은 다음과 같다.플랫폼 식별 : 커널이 실행 중인 플랫폼(보드)의 하드웨어 구조와 자원을 설명하여 플랫폼에 맞는 초기화 과정을 수행할 수 있도록 함디바이스 등록 : 디바이스 트리 데이터를 파싱하여 커널 내부 데이터 구조를 생성하고 디바이스 드라이버로 전달함 디바이스 트리의 계층적 작성 및 재사용.. 2025. 3. 27.
타코미터 센서 (Tachometer) 타코미터 센서 (Tachometer)타코미터는 회전체의 회전 속도를 측정하기 위해 사용되는 센서로, 회전체의 움직임(회전 운동)을 전기적 신호로 변환하는 역할을 한다. 타코센서가 생성하는 전기 신호는 회전 속도에 비례하며, 이를 통해 판독된 값은 일반적으로 RPM 또는 Hz로 표시한다. 다음은 타코미터 센서의 종류이다.     1. 광학 센서 (Optical Sensor) 광학 센서는 빛을 이용하여 회전 속도를 감지하는 비접촉식 센서이다. 일반적으로 발광 다이오드(LED) 또는 레이저를 광원(Light source)으로 사용하고 광 트랜지스터를 검출기(Light detector)로 사용한다.기본 동작 원리는 회전체와 샤프트를 통해 연결된 디스크(Disc)의 회전 운동을 빛의 통과 여부나 반사 신호로 변환.. 2025. 3. 24.
LDD ] PCIe 디바이스 드라이버 작성하기 - (4) with sysfs 이번 글 역시 PCIe 디바이스를 다루는 것보다 디바이스 드라이버 작성 방식에 대해 초점을 맞추도록 한다.   디바이스 드라이버 with sysfs 직전 글에서 사용한 코드를 약간 수정하여 sysfs 인터페이스를 구현하는 디바이스 드라이버를 작성해보도록 하자.  sysfs란?sysfs는 커널 객체(Kernel Object, kobject) 및 해당 객체의 속성 정보(attribute)를 사용자 공간에 노출하는 파일 시스템을 말하며, /sys 디렉토리에 마운트된다. sysfs에서 커널 객체(kobject)는 디렉토리를 나타내고, 속성(attribute)는 디렉토리 내의 파일로 표현되어 해당 객체의 상태 정보 또는 설정값을 제공한다. 그리고 리눅스 커널의 디바이스(struct device)와 드라이버(str.. 2025. 3. 18.