728x90

안녕하세요 하드웨어 개발자 보노노 입니다.

업무 역량을 늘리기 위해 펌웨어도 공부하려고 합니다.

좋은 유튜브 사이트가 있어 키트를 구매하였고, 무작정 따라하면서 기록을 남기고자 글을 올립니다.

 

 


 

준비물

 

  • 링크 안에 구매 리스트 모두 적혀 있으므로 참고 바랍니다.

2. 펌웨어 프로그램 설치 방법 ( https://www.youtube.com/watch?v=WzmPlObIr_c&list=PLUaCOzp6U-RqMo-QEJQOkVOl1Us8BNgXk&index=1 )

 

  • 위의 링크 [강좌 0~2]에 CubeMX 설치 방법이 있으므로 비슷한 방법으로 CubeIDE를 다운 받으시면 됩니다.
  • TrueSTUDIO와 CubeMX를 모두 합친 프로그램이 CubeIDE 입니다. 여기선 CubeIDE로 설명 드리겠습니다.

HW (회로도)

  • 스위치는 Pull-down이 되어있고 LED는 Pull-up이 되어있음.
  • 스위치의 포트는 HIGH 신호를 공급함. 스위치를 누를 경우 동작 함.
  • LED의 포트는 LOW신호를 주어야 LED가 출력 됨.

CubeIDE 설정

 
 
  • 외부 클럭 설정
  • GPIO 포트 설정 (SW는 GPIO_INPUT 설정, LED는 GPIO_OUTPUT 설정)

*참고

  • 포트 설정 후 Code Generator할 시, 위의 사진대로 설정.
  • 별도의 파일로 만들기 위해 체크. 체크 안할 경우 기존 프로그램을 덮어 씌움.

 

FW

자동완성 기능 : Ctrl + space

정의로 이동 : F3

다운로드(DEBUG MODE) : F11

디버그 모드에서 한줄씩 수행 : F6

디버깅 모드 종료 : 컨트롤+ F2

 

- main.c

/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2022 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "gpio.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */

/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */

/* USER CODE END PM */

/* Private variables ---------------------------------------------------------*/

/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
	HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
    if(HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_3) == GPIO_PIN_SET)  // SW를 눌렸을 때
    {
      HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET);    // RGB(BLUE) LED ON
      HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_SET);    // RGB(RED) LED ON
      HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET);    // RGB(GREEN) LED ON
    }
    else            // SW를 땠을 때
    {
      HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET);    // RGB(BLUE) LED OFF
      HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_RESET);    // RGB(RED) LED OFF
      HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET);    // RGB(GREEN) LED OFF
    }
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

 

 

FW 설명

 

 
728x90
728x90

안녕하세요 하드웨어 개발자 보노노 입니다.

회로 설계중 트랜지스터(TR) 부품은 빠질 수가 없는 존재입니다. 이번엔 FAN Motor을 구동하기 위한 트랜지스터 선정을 설명 드리겠습니다. 간단한 사용 방법이므로 다른 모터 구동에도 응용하시면 좋을 것 같습니다.

 


​회로도를 통해 설명 드리도록 하겠습니다.

 

회로도
FAN 회로

 

여기서 저항,다이오드,캐패시터에 대한 설명은 생략 하겠습니다.

TR 저항에 대해 알고싶으면 링크를 참고하세요.

https://www.rohm.co.kr/products/faq-search/faqId/234

 

디지털 트랜지스터의 기본적인 내용을 알려주십시오.|FAQ|ROHM Semiconductor

 

www.rohm.co.kr

​- FAN : FP-108F/DC (링크 : http://www.cic-commonwealth.com.tw/FP-108F-DC.htm )

- TR : 2SD880 ( 링크 : https://pdf1.alldatasheet.co.kr/datasheet-pdf/view/965479/JIANGSU/2SD880.html )

일단 FAN을 구동하기 위한 전압과 전류를 알아야겠죠?

왼쪽 : FAN Datasheet, 오른쪽 : 2SD880 Datasheet

 - FAN의 입력 전압 DC12V , 전류 0.13A가 필요합니다.

 - TR의 Ic는 최대 3A 입니다. ( Ic : 트랜지스터에 흐를 수 있는 전류 값 ) 만약 FAN보다 흐르는 전류가 낮다면 FAN은 동작하지 않습니다. 

​ - FAN의 전류가 3A가 안되므로, FAN을 여러개 사용하여도 괜찮습니다. FAN의 Total 전류가 2.5A 밑으로 흘러야 합니다. (0.5A는 마진 값으로 남겨두었습니다 )

TR이 스위칭 역할로 많이 사용되는데, Ic에 흐르는 전류값을 꼭 확인하시고 사용하시기 바랍니다.

감사합니다.

728x90
728x90

안녕하세요 하드웨어 개발자 보노노 입니다.

요즘 FAN 단종 및 수급 문제로 인해 신규 FAN으로 변경하였는데요, 제어가 제대로 안되고 전압이 너무 흔들려 캐패시터를 달아 보완을 하였습니다. 이때 발열이 심해 해결 방안을 설명 드려보고자 글 남깁니다.

커패시터 수명을 위해서라도 ESR을 보는 습관도 길러두시면 좋을 것 같습니다.

 


 

ESR이란?

- Equivalent Series Resistance의 약자로 단위는 저항의 Ohm 입니다.

- 커패시터 및 인덕터에 들어가 있는 고유의 저항 성분 입니다. 이것이 소자의 발열을 보완하는데 중요한 데이터 입니다.

 

주파수 별 ESR

주파수 별 ESR

- 주파수 별 ESR 표 입니다. 120Hz 에서 ESR값이 크게 나타나지만 주파수가 올라갈수록 ESR 값이 줄어들고 있습니다.

- 알루미늄 캔 커패시터 용량에 따라 그 값이 다르긴 하지만 0.1 ~ 0.4 Ohm 정도의 ESR 값을 가집니다.

- ESR은 회로가 닫힌 상태에서 커패시터 내부에서 열을 만들어내는 주범이고 우리가 쓰지도 못하고 날아가는 손실을 의미합니다.

 

 

커패시터 하나를 가지고 예를 들어 설명 드리겠습니다.

NLW100-12 의 데이터 시트를 확인하겠습니다.

(Datasheet :  https://www.mouser.kr/datasheet/2/88/CDUB_S_A0007943797_1-2540051.pdf )

NLW100-12 datasheet

- 위의 사진은 Low ESR 커패시터로, 제 경험 상 Low ESR 일수록 Operating Temperature Range가 높습니다.

   (위의 사진에선 +105 ºC까지 올라갑니다.)

- 추가로 커패시터 수명은 온도랑 관련이 깊습니다. 발열의 원인은 주로 riple current로 충방전이 반복될 때 ESR에 의해 열이 발생합니다.

 

발열의 문제가 생겼을 때

- 발열의 원인으로 ripple current 도 확인합니다. ripple current가 높은 제품이 Low ESR 이라고 보면 됩니다. 저항 성분이 작으니 당연히 발열도 적게 되고, 흘릴 수 있는 전류도 커지게 되기 때문입니다.

- Low ESR 종류의 커패시터를 선정합니다.

- 당장에 대응이 필요할 땐, 커패시터값 절반짜리 2개를 병렬 연결합니다.

   (보통 커패시터값이 커지면 ESR도 올라가므로, 커패시터값 절반짜리 2개 써서 커패시터 값이 올라가지 않게 만들어 줍니다) (병렬 연결 시 ESR이 낮아집니다)

 

 

출처 :

https://blog.daum.net/tangleguy/18221845

 

ESR이란 무엇인가?

ESR은 Equivalent Series Resistance의 약자이고 단위는 저항의 ohm이다. 전해형 캐패시터(electrolytic capacitor)를 다룰때 아주 중요한 개념이지만 대개는 이것들에 대해 자세히 아는 바가 없다. (콘덴서라는..

blog.daum.net

 

728x90
728x90

안녕하세요 하드웨어 개발자 보노노 입니다.

오늘은 부품 발주 시 주의사항을 말씀드리겠습니다.

참고하시기 바랍니다~!

 


부품 구매를 하다보면 같은 부품이더라도 업체별 특징이 조금씩 다른 경우가 많습니다.

예를들어 MAX232를 확인해 보겠습니다.

 

왼쪽 - MAXIM사, 오른쪽 - TI 사

왼쪽 - MAXIM사

오른쪽 - TI 사의 APPLICATION INFORMATION 입니다.

사진으로만 봐도 CAPACITOR 값이 다르죠? 즉 업체별 부품 특징이 다르다는 얘기 입니다.

같은 부품 명이라도 업체별 특징은 조금씩 다를 수 있습니다. 결국 부품업체에 주문을 MAX232/TYPE 만 말해선 안되는 것이죠.

이를 방지하기 위해 각각 데이터 시트에 ORDERING NUMBER가 있습니다.

 

왼쪽 - MAXIM사, 오른쪽 - TI 사

왼쪽 - MAXIM사

오른쪽 - TI 사 ORDERING INFORMATION 입니다.

원하는 부품과 TYPE를 확인하면 됩니다. 그냥 MAX232가 아닌 MAX232DW, MAX232NSR등 뒤에 알파벳들이 따라옵니다. 원하는 부품을 구매할 경우 MAX232DW 이런식으로 ORDERABLE PART NUMBER를 정확히 적어준다면 "확실하게" 원하는 부품을 구매 가능 할 것 입니다.

 

 

유익한 글이 되었으면 좋겠습니다.

 

감사합니다.

 

 

 

 

728x90
728x90

안녕하세요 하드웨어 개발자 보노노 입니다.

저번 시간은 트랜지스터의 스위칭 역할을 배워보았는데요.

이번 시간엔 트랜지스터의 증폭 작용에 대해 설명 드리겠습니다.

보통 트랜지스터는 증폭 작용보단 스위칭 용도로 많이 사용되지만 증폭 작용도 중요하므로 꼭 숙지하시기 바랍니다!

 


사진이 흐린점 양해 부탁드립니다. 눈으로만 보지 마시고 직접 그려서 정리해보세요!

 

트랜지스터의 증폭 작용

 

① R1 Bias 저항을 통해 항상 전압이 공급됨

② ①으로 인해 Ib 전류가 흐름

③ Ib 전류가 흐르면 Ic 전류가 흐르게 됨 => TR은 항상 동작하는 상태

* TR B의 적은 전압 변화에 따라서 Vce 전압이 크게 변화하게됨으로 '증폭' 되었다고 한다.

트랜지스터의 접지 방식

트랜지스터의 접지 방식에 따라 특징이 다르다.

 

(1) 에미터 접지 방식

특징

① 입력과 출력의 위상차 180도 (역위상)

② 전압 전류 증폭도가 크다.

③ 입출력 임피던스가 중간이다.

④ 임피던스 매칭이 쉬워 가장 많이 사용됨.

 

(2) 베이스 접지 방식

특징

① 입력과 출력의 위상차 0도 (동위상)

② 전압 증폭도가 크다.

③ 입력 임피던스는 낮고 출력 임피던스가 높다.

④ 출력 임피던스가 높고 차단 주파수가 높기 때문에 고주파 증폭단에 많이 사용한다.

⑤ 전류 증폭률 : 알파 = Ic / Ie = 99/10 = 0.99 (1보다 작다)

 

 

(3) 콜렉터 접지 방식

특징

① 입력과 출력의 위상차 0도 (동위상)

② 전류 증폭도가 크며, 전압 증폭도는 1 이하다.

③ 입력 임피던스는 높고 출력 임피던스가 낮다.

④ 출력 임피던스가 낮아 임피던스 매칭기로 많이 사용한다.

⑤ 에미터 플로워 증폭기라 하낟.

⑥ 100% 부궤환(NFB)이 걸려 안정도 및 충실도가 좋다.

 

 

 

 

[출처] 전기전자기초교채

 

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

안녕하세요 하드웨어 개발자 보노노 입니다.

오늘은 가장 많이 사용되는 트랜지스터(TR) 및 모스펫(MOSFET)에 대해 간단 사용 방법에 대해 설명드리겠습니다.

가장 많이 사용되는 스위칭 용도이므로 꼭! 알아두셔야 합니다.

 


 

회로를 설명하기 앞서

R, L, C 의 용도

R : 전압분배 역할에 사용되는 소자.

C, L : 에너지를 저장하는 소자.

스위칭을 해주는 역할의 부품들

① TR

② MOSFET

TR의 경우 데이터시트의 Turn-ON Voltage 확인하여 사용하면 됩니다.

Turn-on Voltage이 보통 0.7V 입니다. 0.7V가 베이스에 들어가야만 트랜지스터가 스위칭 역할로 사용이 된다는 것 입니다.

NPN Type의 TR은 N(콜렉터) P(베이스) N(에미터) 로 구성되어있고, PN(베이스-에미터) 구성이 다이오드와 동일합니다. (일반 다이오드는 0.6~0.7V, 쇼트키다이오드는 0.3V의 문턱전압이 필요합니다.)

MOSFET의 경우 Threshold Voltage 확인하여 사용하면 된다.

Threshold Voltage이 보통 1V, 2V, 2.2V가 된다. 즉, 1V~2.2V정도 전압이 가해지면 MOSFET을 스위칭 역할로 사용 가능합니다. (부품마다 다르므로 데이터시트를 확인해보길 바랍니다)

 

 

빨간색 하트가 GPIO이고, 파란색캐릭터가 릴레이라고 생각해보자.

빨간색 하트가 출력일 경우 -> 저항 2개는 분배 역할을 하고, TR BASE부분에 전압이 인가된다.

-> TR은 스위칭 역할로 ON 되고 -> 전류가 흐를 수 있도록 만들어준다. 즉 릴레이가 구동된다는 것이다.

12V 아래에 다이오드는 - 역기전력 방지.

맨 처음 코일은 에너지를 저장하는 소자라고 하였다. 동작을 하였을땐 12V가 흘러 에너지가 흐르고, OFF시 코일에 저장되어있는 에너지를 방출하여야 하므로 다이오드를 통해 방출시켜주는 것이다.

발광 다이오드는 TR이 동작함과 동시에 확인하기 위해 넣어뒀다. 릴레이 동작도 확인 가능하다.

 

 

위의 사진에서 TR이 ON 되었을때 GPIO_OUT의 전압이 몇V가 나오는지 확인 가능하다.

왼쪽의 사진에서 GPIO_IN으로 인해 TR이 ON 되면 오른쪽 회로와 동일해 진다고 보면 된다.

R321과 R322을 전압분배 법칙을 사용한다면 쉽게 구할 수 있다.

{R322/(R321+R322)} * VCC = GPIO_OUT 전압값

 

전력을 사용할때는 TR이 증폭 용으로 사용된다.

그건 다음에 올리도록 하겠습니다.

 

감사합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

안녕하세요 하드웨어 개발자 보노노 입니다.

저번 글에선 콘덴서 부가설명을 하였는데요, 이번엔 저항에 대해 조금 더 설명해 보려고 합니다.

 


저항 풀업(Pull-Up)

 

위 그림에서 입력은 0V 일때 '1'로 인식하는 입력 핀 이다. 그러므로 이 핀에 왼쪽 그림과 같이 5V의 전원을 접속하면 줄곧 0V가 입력된 상태로 있게 된다. 우측 그림과 같이 스위치를 닫으면 전원에서 저항을 통해 들어오는 전류와 핀의 전류가 합류하여 그라운드로 흘러 들어가게 되는데 이때 입력핀의 전압은 0V로 낮아져 '1'이 입력된 것으로 인식한다. 이렇게 핀에 High 값을 입력해 두려고 붙이는 저항을 '높은 저항에 매달아 둔다'는 뜻으로 풀업(Pull-Up)저항 이라고 한다.

 

 

저항 풀다운(Pull-Down)

 

위 그림은 입력핀이 5v의 전압을 받으면 '1'로 인식한다. 좌측 그림이 입력핀은 그라운드에 연결되어 전류가 항상 그라운드로 흐르고 있어서 입력 전압은 0V가 된다. 이때 우측 그림과 같이 VCC전원에 연결된 스위치를 단락시켜 전류가 흐르게 하면, 소량의 전류가 저항을 통해 그라운드로 흘러 내리기는 하지만 많은 양의 전류가 입력 핀으로 흘러 전압이 VCC와 같은 5V 정도가 된다. 따라서 입력핀은 '1'이 입력된 것으로 인식된다.

이러한 저항의 사용법은 '칩의 핀을 항상 그라운드에 묶어둔다' 는 의미에서 풀다운(Pull-Down)저항 이라고 한다.

 

 

이와 마찬가지로 다른 예를 들어보자

 

 

 

위의 사진과 같이 포트C가 0인지 1인지 모르는 상황이다.

만약 PC0이 출력일 경우 5V가 나간다.

PC0가 0V이라면? - 현 상태에선 floating 상태이다 (floating을 번역하자면 뜬 상태인 것이다)

정확히 0v인지 확인이 불가하다. 그래서 R8인 10K을 넣어준 것이다. R8로 인해 PC0이 0V에 가깝다는걸 확인할 수 있다. 이게 풀 다운 저항과 같은 개념이다.

 

 

출처 : http://printf.egloos.com/72829

 

하드웨어 입문 : 6장 회로의 기초 (2)

6장, 회로의 기초▶ 자력 자석자석과 자기자석이 철, 니켈 등의 금속을 끌어당기는 성질을 자성이라고 한다, 이러한 일을 하는 작용을 자기라고 한다.자극과 자력자석으로 철가루가 모인 곳을

printf.egloos.com

 

728x90
728x90

안녕하세요 하드웨어 개발자 보노노 입니다.

제품을 보호해주는 역할을 맡고 있는 폴리스위치, 퓨즈에 대해 알아보도록 하겠습니다.

 


 

 

퓨즈의 용도 및 특성

퓨즈의 용도는 과전류가 흐를 경우 퓨즈 안의 연결 선을 끊어주어 더이상 흐르지 못하게 하는 용도 입니다.

퓨즈가 없다면 어떻게 될까요? 제품에 캐패시터나 mcu등 터지거나 패턴이 소손될 것입니다.

예전에 작은 제품에서 휴즈 하나를 넣는다 만다 한 회의 내용이 생각나네요. 교류전압이 흐르는 제품에서 휴즈가 없다면 인증이 안될수도 있습니다. (제품마다 다릅니다) 꼭 확인해야 합니다. 물론 제품의 AS를 위해서라도 달면 좋겠죠?

 

원형의 경우 10A,20A 등 높은 전류가 흐를시 보호해주지만 작은 용량?(1~2A) 일 경우 폴리 스위치를 사용합니다. 또는 SMD퓨즈를 사용하기도 합니다. (폴리스위치는 퓨즈와 다르게 홀더가 필요없습니다.)

 

폴리스위치

폴리스위치의 경우 과전류가 흐르면 열에 의해서 끊어집니다.(Open 상태)

퓨즈의 방식과 다르게 폴리 스위치는 과전류가 사라지면 다시 붙습니다(Short 상태)

폴리스위치든 퓨즈든 사용하기에 용량을 잘 판단하여야 합니다.

1A가 흐르면 과전류라고 생각드는 보드에 10A의 휴즈를 달았다고 가정합시다.

만약 5A의 과전류가 흘러도 퓨즈는 끊어지지 않고 전류가 흐를겁니다. 고로 회로는 망가지겠죠? 다시 말해, 용량 계산을 잘 해야된다는 말입니다.

폴리스위치도 열로 인하여 붙고 떨어지는 부품이기때문에 많이 뜨거운지도 확인해봐야합니다.

전원 회로에 많이 사용되며, 제품 보호를 위해선 꼭 필요한 부품이라고 생각듭니다.

728x90

+ Recent posts