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

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

개발 자료 외에 설계 흐름이나 하드웨어에 대한 재미난 글들도 올리려고 합니다.

개발 커리큘럼을 짜는데 도움이 되었으면 좋겠습니다.

 


 

실무 회로 설계를 위한 기초 커리큘럼

1) 기본 소자의 역할 및 기능을 알아야 한다.

2) 등가회로 변경할 수 있어야 한다.

3) 회로보는법을 알아야 한다.

4) Block 별 해석할 줄 알아야 한다.

5) trouble shooting 하기

6) 응용

이정도.. 커리큘럼 순서라고 볼 수 있다. 

1번 - 저항, 캐패시터, 다이오드, TR, FET 등 여러 부품들에 대해 알고있어야 한다.

2번 - 회로가 있다면 계산을 하여 전압, 전류 등 얼마나 나오는지 계산 및 측정할 수 있어야 한다.

3번 - 1번 2번을 한다면 웬만한 회로 볼수 있을 것이다. 하지만 응용된 회로라던지 이곳에 왜 이런 소자가 있는지 궁금증을 가지고 이유를 찾을 수 있어야 한다.

4번 - 긴 회로가 있다면 부분별로 나눈다. A지점, B지점, C지점 등으로 나눠서 출력된 값을 확인 확인 확인 하면서 지나간다. (부분부분 Block 별로 체크해서 확인한다.)

5번 - Truoble shooting이란 디버그랑 비슷하다고 보면 된다. 문제가 되는 부분 하나하나 찾아서 수정해 나가는 방법이다. 제품의 문제가 생긴 부분을 수정할 줄 알아야 한다.

6번 - 1~5번 모두 합치고 더 플러스 알파하여 응용하여 설계하고 제품을 만들 줄 알아야 한다.

 

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

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

하드웨어 개발을 하려면 부품 서칭 능력은 필수 입니다. 이번엔 부품 구매 사이트에 대해 공유 드리도록 하겠습니다.

 여러분들이 추천하는 사이트도 댓글로 남겨주세요!

 


 

국내 사이트!

1. 디바이스마트  

(링크 : https://www.devicemart.co.kr/main/index)

 

대한민국 전자부품 1등 쇼핑몰 디바이스마트

디바이스마트

www.devicemart.co.kr

- 많이들 아실 겁니다. 디바이스마트는 대학교 시절부터 많이 애용한 사이트 인데요, 접근성이 편해 아마 부품 구매 입문으로 많이 접하셨을 것이라 생각합니다. 요즘은 디지키, 마우저 (해외 부품구매 사이트) 와 연동하여 부품을 판매하고 있어 접근성이 더더욱이 좋습니다.

2. 엘레파츠 

(링크 : https://www.eleparts.co.kr/main/index)

 

엘레파츠-大韓民國No.1 전자부품쇼핑몰

전자부품 전문쇼핑몰, 전기, 통신모듈,공구,화학제품,계측기,컴퓨터,네트웍제품 전문 쇼핑몰

www.eleparts.co.kr

- 디바이스마트와 같이 엘레파츠로 입문을 많이 하셨을 겁니다. 디바이스마트와 마찬가지로 접근성이 좋습니다.

디바이스마트와 동일하게 디지키, 마우저 (해외 부품구매 사이트) 와 연동하여 부품을 판매하고 있어 접근성이 더더욱이 좋습니당

3. IC114 

(링크 : https://www.ic114.com/WebSite/THEME/001/default.aspx)

 

::: ic114.com- 국내최대전자부품 전문 쇼핑몰:::

 

www.ic114.com

- 이 사이트를 알게된건 저항이나 캐패시터를 릴단위가 아닌 수량으로 구매가 가능해서 입니다. MOQ 수량이 정해져있지만 릴보단 소량으로 구매가 가능하기때문에 애용 합니다. 

 

- 1, 2 번과 동일하게 접근성이 쉽고, 다양한 부품을 판매합니다.

- 회사 생활중 디바이스마트 또는 엘레파츠 등 국내 사이트에 안나오는 부품들은 이곳으로 들어가 구매합니다.

부품명을 검색하면 업체명이 나오고 전화할 수 있는 연락처가 있어 바로 확인이 가능합니다. 회원가입하고 구매하고싶은 부품명, 기간, 가격을 올려두면 연락도 오고 꽤나 유용하게 사용하고 있는 사이트 입니다.

해외 사이트!

6. 디지키

(링크 : https://www.digikey.kr/?&utm_adgroup=General&mkwid=suVvJuYJx&pcrid=196256282785&pkw=%EB%94%94%EC%A7%80%ED%82%A4&pmt=e&pdv=c&productid=&&gclid=CjwKCAjw-ITqBRB7EiwAZ1c5U9IVgpAVBlk6mME-BpgTHwP-J725y6ZAhlK7xI8aaC0Frx3aBec_lxoCrZgQAvD_BwE )

 

DigiKey Electronics

Digi-Key는 수천 개의 제조업체에서 제공하는 수백만 개의 제품을 유통하며, 당일 배송이 가능한 많은 재고를 보유하고 있습니다. 지금 온라인으로 주문하세요!

www.digikey.kr

- 해외 사이트인만큼 기간이 더 소요되지만, 더 많은 부품을 찾을 수 있어 좋습니다.

60,000원 이상일 구매 시, 무료배송이니 참고 바랍니다. 

7. 마우저

(링크 : https://www.mouser.kr/)

- 디지키와 비슷합니다. 저는 사용해 보지 않아 정확히 설명드리기 어렵네요..

해외 사이트인만큼 기간이 더 소요되지만, 더 많은 부품을 찾을 수 있어 좋습니다.

60,000원 이상 구매 시, 무료 배송이니 참고하시기 바랍니다.

 

 

이상으로,

신입 개발자분들은 미리 즐겨찾기 해두시면 좋을것 같습니다( 저는 눈에 보이는곳에 즐겨찾기하고 자주 사용하고 있습니다. 마우스 2번클릭이라 편합니다)

이상 간략하지만 좋은 정보가 되었으면 좋겠습니다.

감사합니다.

(좋은 사이트 있으면 댓글 부탁드립니다!)

728x90
728x90

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

MCU의 통신을 다루면서 케이블 작업을 할 때가 종종 있습니다.

매번 헷갈리기도 하여 간략하게 정리 된 글을 공유 드립니다.

 

 


 

 

통신 별 사양

232 통신

TX    ↔    RX

RX   ↔     TX 

GND   ↔   GND 

422 통신

TXD+    ↔    RXD+

TXD-     ↔    RXD- 

RXD+    ↔    TXD+

RXD-    ↔    TXD-

GND     ↔   GND ( 안해도 됨)

 

485 통신

485의 경우 TX+ , RX+ 는 +로 같이 묶여있고, TX-, RX-는 -로 같이 묶여있다고 생각하면됨.

485 컨버터 사용할때 TX+, RX+을 묶어 결선하고, TX-, RX- 묶어 결선해서 2가닥 사용하면 됨.

 

TRXD+    ↔    TRXD+

TRXD-    ↔    TRXD-

GND       ↔    GND ( 안해도 됨)

 

 

 

 

 

728x90
728x90

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

오늘은 ST사 MCU인 STM32F103 칩에 대해 직접 정리해 보았습니다.

아래 사진 외에 첨부된 자료에 더 많이 있으니 첨부자료 다운받아 보시는걸 추천드립니다.

네이버 및 구글링 하여 정리하였으니 참고 바랍니다. 또한 잘못된 점이 있으면 댓글 바랍니다!

 

 

STM32F103 칩특징.pptx
0.90MB

 


 

 

 

 

 

모두 화이팅~!

 

 

 

 

 

 

 

 

 

 

 

728x90

'하드웨어' 카테고리의 다른 글

EMC(Electro Magnetic Compatibility) 전자파 적합성  (0) 2022.08.17
하드웨어 입문 1~6 읽어보기  (0) 2021.07.02
728x90

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

당근이에서 본 다이오드 사용 방법 입니다 

 


부품을 동작시키기 위해선 필요한 전압 및 전류가 있다. ( 데이터 시트를 찾아보면 나옴)

마찬가지로 OPAMP를 사용하기 위해선 필요한 전압 및 전류가 있다.

LT1413/CN8 의 데이터 시트를 찾아보자

(https://www.analog.com/media/en/technical-documentation/data-sheets/lt1413.pdf)

Supply voltage -> +- 22V

Differential Input Voltage -> +-30V (최대 전압)

만약 35V의 전원을 공급한다면 OPAMP는 망가지고 말것이다.

이러한 문제를 방지하기 위해선 어떻게 해야할까?

정답은 다이오드를 달아준다.

입력 보호 회로라고 하여 OPAMP에 아래 사진과 같이 다이오드를 달아준다.

다이오드의 특징에 따라 아래 사진의 아래 그래프로 바뀜.

728x90
728x90

728x90

+ Recent posts