본문 바로가기
반응형

전자1643

LED 조명 SMPS와 일반 SMPS의 차이 LED SMPS와 일반 SMPS의 차이는 다음과 같다. LED SMPS (LED 컨버터)는 밀폐구조로 팬을 사용하지 않지만 일반 SMPS는 오픈 구조이고 용량이 크면 팬을 사용하기도 한다. LED SMPS는 일반 SMPS 보다 더 높은 온도에서 동작할 수 있다. LED SMPS는 PFC가 내장되어 있어 역율이 95% 이상으로 높다. LED SMPS는 KS 규격이 있다. (안전인증 - 조명용 LED 컨버터 KS-LED 모듈전원 공급용 컨버터(KSC-7655)) LED SMPS은 정전압 방식, 정전류 방식, 정전압+정전류 방식의 3가지 방식이 있다. 범용적으로 사용하는 방식은 정전압 방식이다. 아래 사진의 LED SMPS는 밀폐형, IP67, 역률 98%, 정전압+정전류 타입이다. 2021. 7. 29.
STM32CubeIDE에서 printf와 scanf에서 float 변수 사용하기 STM32CubeIDE에서 printf와 scanf에서 float 변수를 사용하기 위해서는 다음의 옵션을 사용한다. -u _printf_float -u _scanf_float 위의 옵션이 있는 이유는 float printf와 float scanf 함수가 Flash 메모리를 많이 사용하기 때문이다. 2021. 7. 26.
STM32CubeIDE 최적화에 따른 파일 크기 STM32CubeIDE의 최적화 옵션에 따른 파일 크기는 다음과 같다. Optimization FLASH [kB] RAM [kB] None (O0) 101.61 9.5 for debug (Og) 78.02 9.5 (O1) 77.91 9.5 (O2) 74.77 9.5 (O3) 92.98 9.51 for size (Os) 70.51 9.5 for speed (Ofast) 92.98 9.51 파일크기가 가장 작은 것은 Os이고 그 다음은 O2이다. O3와 Ofast는 파일 크기가 동일하다. 2021. 7. 26.
리니어 레귤레이터 효율 리니어 레귤레이터(Linear Regulator)의 효율은 입력-출력 전압비와 같다. 예를들면 +48V 입력 +12V 출력 리니어 레귤레이터의 효율은 25% (=12/48x100)이다. 이 때 입력 전류와 출력 전류는 동일하다. 전류가 30mA이라면 손실은 1.08W이고 1.08W이 모두 레귤레이터의 열로 방출된다. 리니어 레귤레이터는 많은 열이 나기 때문에 방열에 신경 쓰야 한다. 리니어 레귤레이터는 전압이 높아짐에 따라 효율도 그 만큼 떨어지기 때문에 전압차이가 큰 곳에서는 잘 사용하지 않는다. +5V 출력일 때 입력 전압은 +12V 정도까지만 사용하고 그 이상의 전압에서는 스위칭 레귤레이터를 사용하는 것이 좋다. 2021. 7. 26.
많이 사용하는 스텝 모터 2021. 7. 24.
정전류 회로 종류 정전류 회로의 종류는 다음과 같다. 1) 제너 다이오드 제너 다이오드와 BJT를 이용한 정전류 회로는 다음과 같다. 제너 다이오드 대신 일반 다이오드를 사용하고 방향을 반대로 하여 다이오드의 정방향 전압을 이용할수도 있다. 2) BJT BJT를 이용한 정전류 회로는 다음과 같다. 3) MOSFET BJT와 MOSFET을 이용한 정전류 회로는 다음과 같다. 전류가 증가하여 R2에 걸리는 전압이 증가하면 Q1의 베이스에 전류가 흐르고 그에 따라 M1의 게이트 전압이 낮아지면서 M1에 흐르는 전류가 감소된다. BJT의 Vbe 전압은 어느 정도 일정하지만 MOSFET의 Vgs 전압은 범위가 넓기 때문에 MOSFET 만으로 정전류 회로를 구성하기는 어렵다. 2021. 7. 24.
스텝모터 마이크로 스텝 신호 파형 스텝모터의 마이크로 스텝의 전류 파형은 다음과 같다. A와 B 신호는 90도 위상차이가 난다. 마이크로 스텝의 한 주기동안 4개 스텝각만큼 이동한다. 1.8도 스텝각 모터에서 마이크로 스텝의 한 주기 동안에는 7.2도 만큼 이동한다. 위의 파형이 인가될 때 7.2도만큼 회전한다. (스텝각은 풀스탭에서 한 스텝의 각도이다.) 마이크로 스텝이 256개라면 사인파형의 90도 이동하는 동안 256 마이크로 스텝이 변한다. 이때 1.8도만큼 회전한다. 스텝각 1.8도, 256 마이크로스텝일 때 한상의 전류 파형은 다음과 같다. ☞ 스텝모터 제어 2021. 7. 22.
NEMA 스텝 모터 스텝모터에서 NEMA(National Electrical Manufacturers Association)를 말할 때는 보통 NEMA에서 표준화한 스텝모터 크기를 의미한다. NEMA에서 스텝 모터를 크기를 표준화하여 NEMA 표준인 스텝모터는 제조사가 달라도 서로 교체하여 설치할 수 있다. 하지만, NEMA에서 표준화한 것은 기계적인 크기이기 때문에 전기적으로는 제조사마다 서로 다를 수 있다. NEMA의 크기는 다음과 같다. NEMA 17은 가로 세로 길이가 각각 1.7인치라는 의미이다. 2021. 7. 22.
STM32 타이머 계산 STM32의 타이머에서 ARR이 36일때 동작은 다음과 같다. 클럭이 37개될때마다 Update 펄스가 출력된다. Update 펄스의 주파수는 CK_CNT의 주파수에서 (ARR+1)을 나눈값이다. CNT와 ARR이 일치할 때 다음 클럭에서 CNT이 0이 되면서 Update 펄스가 출력된다. ARR을 CNT보다 작은 값으로 변경하면, 바로 Update 펄스가 출력되지 않고 CNT가 Overflow 되어 다음 ARR와 일치될 때 Update 펄스가 출력된다. ARR의 리셋 초기값은 0xFFFF이다. 2021. 7. 21.
라즈베리 파이 3 B+ 사양 라즈베리 파이 3 B+의 사양 CPU : DCM2837B0, Cortex-A53, 64비트, 1.4GHz LPDDR2 SDRAM 1GB Wifi 2.4GHz, 5GHz Bluetooth 4.2 BLE Gigabit Ethernet (300Mbps) GPIO x40 HDMI 4-pole stereo output Composite video USB 2.0 x4 Micro SD +5V / 2.5A Power-over-Ethernet 2021. 7. 17.
RS-485 표준 RS-485 표준에 나온 주요 특징은 다음과 같다. 버스의 컴먼모드 전압 범위는 -7 ~ +12V이다. 컴먼모드 전압이 ±7이고 동작전압은 0~+5V이기 때문에 전체 전압 범위가 -7 ~ +12V이다. 최대 32개 노드를 연결할 수 있다. 40피트(120m)에서 최대 속도는 10Mbps이다. 최대 거리는 4000피트(1200m)이고 이 때 속도는 100kbps이다. 드라이버는 54옴 부하에서 최소 1.5V 이상이 되어야 한다. 리시버는 ±200mV까지 검출할 수 있어야 한다. 2021. 7. 17.
RS-485 트랜시버 IC 내부구조 RS-485 드라이버 RS-485 트랜시버 IC의 드라이버의 내부구조는 다음과 같다. 트랜지스터 4개로 H-bridge 구조를 이루어 A-B의 출력 전압 방향을 변경한다. RS-485 리시버 RS-485 트랜시버 IC의 리시버의 내부구조는 다음과 같다. R2와 R3는 입력 신호의 컴먼모드 전압을 낮추는 역할을 한다. 2021. 7. 17.
UART에서 왜 9600 baud rate을 사용할까? RS-232, RS-422, RS-485 등에 사용되는 UART에서 9600 baud를 많이 사용한다. 9600은 어디에서 왔을까? 초기의 전화 모뎀은 300 baud 이었다. 이후 300의 배수인 1200, 2400, 9600 등을 발전하였다. 초기 전화 모뎀이 300 baud인 이유는 20세기초 손으로 입력하여 사용했던 텔레타이프라이터(Teletypewriter)에서 가장 많이 사용된 속도가 75 baud였다. 그래서 75의 4배인 300을 초기 전화 모뎀에 사용하였다. ☞ UART 표준 속도 2021. 7. 17.
RS-485/422 트랜시버 IC의 Fail-safe 기능 RS-485/422 트랜시버 IC 중에 Fail-safe 기능을 가진 칩들이 있다. Fail-safe 기능은 버스가 오픈이나 쇼트 되거나 종단저항만 연결된 Idle 상태가 되었을 때 리시버 출력은 High로 유지하는 것이다. 칩에 따라 Fail-safe 기능이 있다고 하지만 오픈되었을 때만 리시버 출력이 High가 되고 Idle이나 쇼트일 때는 High가 되지 않는 것도 있다. 어떤 메이커에서는 Idle일 때 동작하는 것을 Enhanced fail-safe라고 하기도 한다. Idle일 때 Fail-safe가 동작하지 않으면 종단저항을 달았을 때 리시버에서 Low 출력이 나오기 때문에 사용할 수가 없다. 이 때는 외부에 풀업/풀다운 저항을 달아야 한다. Idle일 때 Fail-safe가 동작하는 원리는 다.. 2021. 7. 17.
RS-485에 연결할 수 있는 최대 노드 개수 RS-485 표준에서는 120옴 종단저항 2개를 연결한 버스에서 연결할 수 있는 최대 노드 개수를 32개로 정하고 있다. 노드 개수가 제한되는 이유는 리시버의 임피던스 때문으로 노드가 증가하면 전체 임피던스가 감소하여 드라이버 한계를 넘기 때문이다. 표준 리시버 임피던스는 12k옴이다. 하지만 RS-485 칩에 따라 Unit Load가 작은 모델이 있다. Unit Load가 1이면 표준과 같은 상태로 리시버 입력 임피던스가 12k옴이고 Unit Load가 감소하면 입력 임피던스가 증가한다. Unit Load가 감소하면 그에 비례하여 연결할 수 있는 노드가 증가한다. Unit Load이 0.5이면 64개 노드를 연결할 수 있고 Unit Load가 0.25이면 128개를 연결할 수 있다. 외부에 Failsa.. 2021. 7. 15.
RS-422/485 종단저항과 풀업/풀다운 저항 종단 저항 RS-422/485에서 종단저항은 노드 양 끝단에 각각 1개씩 설치한다. 보통 120옴 저항을 사용한다. 노이즈가 많은 환경에서는 다음과 같이 120옴 저항을 나누어 캐패시터를 추가하여 사용할 수 있다. 풀업/풀다운 저항 풀업 저항과 풀다운 저항은 버스가 Idle일 때 버스 전압이 플로팅되어 통신 에러가 발생하는 것을 방지하기 위해 사용해야 한다. 전체 버스에서 1개씩만 사용한다. 이것을 Failsafe biasing이라고 한다. 풀업과 풀다운 저항은 연결되는 노드 개수와 트랜시버 종류에 따라 달라진다. 양단 전압이 0.25V 정도가 되도록 저항값을 선정한다. 하지만, 풀업과 풀다운 저항은 부하로 작용하기 때문에 최대 노드 개수를 제한하는 문제가 있다. 트랜시버 칩 중에서 Failsafe 기능.. 2021. 7. 14.
크리스탈 오실레이터 ppm 크리스탈 오실레이터에서 ppm은 주로 주파수 안정도(Frqeuency Stability)를 나타내는데 사용한다. ppm은 백만분의 1이다. 주파수 안정도가 100ppm이라면 주파수가 1만분의 1만큼 변동된다는 의미이다. 보통 오실레이터의 주파수 안정도는 동작 온도 범위에서 변동되는 값을 나타낸다. 크리스탈 오실레이터의 일반적인 온도 특성은 다음과 같다. 온도에 따라 주파수가 증가하거나 감소한다. 온도 보상형 오실레이터는 온도에 따른 주파수 변동이 1ppm 정도로 매우 작다. 2021. 7. 13.
모터 가감속 속도 제어 사다리꼴 속도 프로파일(Trapezoidal Velocity Profile)은 다음과 같다. 여기서, p는 총 이동거리, v는 속도, a는 가속도, T는 총 이동시간이다. 위 그래프에서 다음 식이 성립한다. 위 식을 정리하면 다음과 같이 p, v, a, T의 4개 변수를 가진 방정식이 된다. p,v,a를 알면 T를 계산할 수 있고 p,a,T를 알면 v를 계산할 수 있다. 즉, 4개 변수 중 3개를 알면 나머지 1개를 계산할 수 있다. 위 속도 프로파일에서 가속구간에서 이동거리는 다음과 같다. 등속구간의 이동거리는 다음과 같다. 위 식이 0이거나 0보다 작다면 정속구간이 없는 삼각형 속도 프로파일을 가진다. 2021. 7. 11.
ARM의 64비트 곱셈 명령어 ARM Cortex-M3이나 Cortex-M4에는 32비트 정수를 곱하여 64비트 결과를 출력하는 명령어가 있다. umull : unsigned 32비트 정수를 곱한 64비트 결과값을 구한다. umlal : unsigned 32비트 정수를 곱한 64비트 정수를 구하고 여기에 64비트를 더하여 결과값을 구한다. smull : signed 32비트 정수를 곱한 64비트 결과값을 구한다. smlal : signed 32비트 정수를 곱한 64비트 정수를 구하고 여기에 64비트를 더하여 결과값을 구한다. 2021. 7. 11.
RS-485 그라운드 방법 RS-485의 그라운드는 다음과 같이 연결해야 한다. 회로의 그라운드와 프레임 그라운드는 저항을 달아 그라운드 루프가 생기지 않도록 해야 한다. 위 방식은 그라운드 루프에 저항을 넣어 그라운드 루프 전류를 제한했지만 그래도 그라운드 루프가 있다. 보다 좋은 방식은 다음과 같이 회로를 분리하는 것이다. 왼쪽 회로는 회로가 분리되어 있지 않고 오른쪽 회로는 회로가 트래스와 포토 커플러 등으로 분리되어 있다. RS-485에서 멀티 드랍으로 여러 노드를 연결할 때는 다음 그림과 같이 한 노드는 회로를 분리시키지 않아 신호 그라운드가 프레임 그라운드와 연결되고 나머지 노드는 회로를 분리 시켜 신호 그라운드가 프레임 그라운드와 연결되지 않도록 한다. 마스터-슬레이브 구조에서 마스터는 프레임 그라운드와 연결하고 나머.. 2021. 7. 10.
XMODEM, YMODEM, ZMODEM 차이 XMODEM, YMODME, ZMODEM은 모두 파일을 전송하는 프로토콜이다. XMODEM XMODEM은 가장 먼저 나온 프로토콜로 한 패캣의 크기는 128 바이트이고 간단한 체크섬을 사용한다. XMODEM-CRC는 CRC 체크섬을 사용한다. XMODEM-1K는 한 패캣의 크기가 1024 바이트이다. YMODEM YMODEM은 XMODEM-1K에 멀티플 배치 전송이 가능한 프로토콜이다. YMODEM-g는 수신측의 ACK 신호를 기다리지 않고 데이터를 계속 전송한다. 한 패캣이라도 에러가 나면 전체 전송을 취소한다. ZMODEM ZMODEM은 가장 앞선 기술을 사용한 것으로 에러 복구 기능이 있다. 2021. 7. 8.
+3.3V +5V 신호 레벨 변환 회로 +3.3V와 +5V 신호를 양방향으로 서로 변환하는 회로는 다음과 같다. LV가 +3.3V이고 HV가 +5V이다. 아래 회로는 양방향으로 +3.3V을 +5V로 변환할 수도 있고 +5V를 +3.3V으로 변환할 수도 있다. 위 회로는 다음과 같이 신호가 양방향으로 전송되는 I2C에 사용할 수 있다. 위와 같은 신호 레벨 변환 회로는 고속 신호에 사용하기는 어렵다. 몇 백 kHz 이하 주파수에서만 사용할 수 있다. 시뮬레이션 다음 회로에서 저항 R1과 R2를 10k로 하고 입력 펄스 주기는 2us이고 High가 되는 시간은 0.2us이다. 시뮬레이션 결과는 다음과 같다. 출력 신호가 +5V까지 올라가지 않는다. High가 되는 시간을 1us로 늘리면 다음과 같다. 상승 시간이 1us 정도로 매우 길다. R2의.. 2021. 7. 6.
WS2812B 신호 타이밍 WS2812B는 선 하나를 사용하여 LED의 RGB 데이터를 전송한다. 다음 그림과 같이 0 신호와 1 신호는 Hihg와 Low 신호가 인가되는 시간이 다르다. High 보다 Low가 길면 0이고 Low 보다 High가 길면 1이다. 위 신호의 시간 스펙은 다음과 같다. 신호 주기는 1.25us이다 (주파수 800kHz). 신호 주기은 1.25us으로 동일하지만 High와 Low되는 시간이 다르다. WS2812B의 타이밍은 다음과 같다. 전체 시간 1.25us 중 High와 Low를 3:7 또는 7:3 정도로 나누면 된다. WS2812의 타이밍은 다음과 같다. 2021. 7. 5.
USB 커넥터 핀 배열 일반 USB 커넥터는 4핀으로 플러그의 핀 배열은 다음과 같다. 1 : VBUS 2 : D- 3 : D+ 4 : GND 미니 USB와 마이크로 USB는 5핀으로 플러그의 핀 배열은 다음과 같다. 1 : VBUS 2 : D- 3 : D+ 4 : ID 5 : GND 4번핀의 ID는 On-The-Go에 사용되는 것으로 선으로 연결되어 있지 않다. ID핀은 호스트는 GND와 연결되고 디바이스에는 연결되어 있지 않다. ☞ 미니 USB와 마이크로 USB 2021. 7. 4.
WS2812와 WS2812B의 차이 LED 스트립에 사용되는 WS2812는 5050(5x5mm ) 사이즈로 내부에 RGB 3개의 LED와 RGB 제어칩이 내장된 부품이다. WS2812B는 WS2812에서 업그레이드된 부품으로 차이는 다음과 같다. 1. 크기는 5x5mm로 동일하지만 핀수가 6개에서 4개로 줄었다. VCC 핀이 제거되었다. 2. WS2812B는 역전압 보호회로가 내장되어 역전압을 인가해도 부품이 손상되지 않는다. 3. WS2812B의 밝기가 더 밝아졌다. 2021. 7. 4.
스너버 회로 저항 용량 다음과 같은 RC 스너버(Snubber) 회로를 설계할 때 스너버 회로에 흐르는 전류가 저항 용량을 넘지 않도록 해야 한다. 스너버 회로의 저항에서 소비되는 전력은 다음과 같다. 여기서 V는 전압이고 f는 주파수이다. 전압과 주파수가 올라갈수록 저항에 흐르는 전류가 증가한다. C V f P 1nF 5 1MHz 0.03W 10nF 5 1MHz 0.25W 5nF 2 1MHz 0.02W 10nF 2 1MHz 0.04W 10nF 28 20kHz 0.16W 100nF 310 100Hz 0.96W 2021. 7. 3.
bss 영역 C 컴파일러에서 bss (Block Starting Symbol)는 초기화되지 않은 전역변수 또는 static 변수가 저장되는 RAM 영역을 의미한다. bss를 .bss라고도 한다. 지역변수는 RAM 영역 중 stack에 저장된다. stack에는 지역변수뿐만 아니라 함수나 인터럽터관련 데이터가 저장된다. 2021. 7. 3.
라즈베리 파이 핀 배열 라즈베리 파이의 40핀 배열은 다음과 같다. 모든 핀은 +3.3V 로직 입출력이다. 5V power는 입력전원과 바로 연결되어 있다. 3V3 power는 내부 스위칭 레귤레이터를 통해 출력되며 최대 전류는 500mA이다. 통신은 SPI 2개, I2C 2개, UART 1개가 있다. SPI0: MOSI(GPIO10) MISO(GPIO9) SCLK(GPIO11) CE0(GPIO8) CE1(GPIO7) SPI1: MOSI(GPIO20) MISO(GPIO19) SCLK(GPIO21) CE0(GPIO18) CE1(GPIO17) CE2(GPIO16) I2C1: Data(GPIO2) Clock(GPIO3) I2C2: EEPROM Data(GPIO0) EEPROM Clock(GPIO1) UART: TX(GPIO14) R.. 2021. 7. 3.
STM32 HAL DMA 사용시 주의사항 STM32의 HAL에서 UART, I2C, SPI 등에서 DMA을 사용할 때 다음 그림 같이 각 장치에 대한 인터럽트를 Enable 시켜야 한다. HAL_UART_Receive_DMA 함수를 보면 다음과 같이 인터럽트를 사용하는 코드가 있다. /* Enable the UART Parity Error Interrupt */ SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 위 코드는 UART 통신 중 에러가 발생했을 때 호출되는 인터럽트를 활성화 한다. 2021. 7. 3.
STM32 개발 라이브러리 종류 STM32 프로그램 개발을 위해 ST에서는 몇가지 종류의 라이브러리를 제공한다. 제공하는 라이브러리에는 Snippets과 SPL (Standard Peripheral Library)과 HAL API와 LL API의 4종류가 있다. 1. Snippets Snippets은 STM32F0과 STML0만 지원한다. 2. SPL(Standard Peripheral Library) SPL은 현재 지원이 중단되었고 최신 MCU는 더 이상 지원하지 않는다. 3. HAL(Hardware Abstraction Layer) HAL은 하드웨어를 사용하기 쉽게 만든 라이브러리이다. 하지만 속도가 느리다. 처음 사용할 때는 HAL 라이브러리 동작 구조를 이해하기가 어렵다. 특히 인터럽터나 DMA을 사용하는 함수는 구조가 매우 복.. 2021. 7. 3.
반응형