1. EMC(Electromagnetic Compatibility, 전자파 적합성, 전자파 양립성)

  • 전자파 적합, 양립성이라 해석되며 '전자파를 주고 측과 받는 측의 양쪽에 적용하여 성능을 확보할 수 있는 기기의 능력'으로 법규상 정의
  • 이 용어는 EMI와 EMS를 모두 포함하는 포괄적인 용어로서 어떤 기기가 동작 중에 발생하는 전자파를 최소한으로 하여 타기기에 간섭을 최소화해야 하며 외부로부터 들어오는 각종의 전자파에 대해서도 충분히 영향을 받지 않고 견딜 수 있는 능력을 갖추어야 함

 

2. EMI(Electromagnetic Interference, 전자파 장해, 전자파 간섭)

  • 전자파 간섭 또는 전자파장애로 해석되며 법규에 의하여 “방사 또는 전도되는 전자파가 다른 기기의 기능에 장애를 주는 것"이라 정의. 그 영향으로는 전자회로의 기능을 악화시키고 동작을 불량하게 할 수 있는 것
  • EUT 또는 EUT의 선로나 데이터라인에서 나오는 전자파가 규정치 이하로 발생되어야만 시험에서 통과 할 수 있으며 전자파 발생이 높은 경우 제품의 개선, 차폐 등의 디버깅을 진행
  • 규제목적 : 공중 통신용 주파수를 보호하고, 외부 전자파로부터 취약한 프로세서 제어기기의 오동작을 방지

 

2-1. CE(Conducted Emission, 전도 방출)

  • EUT의 라인(전원선이나 신호선, 제어선 등)에서 방출되는 전자파의 유해성 시험

 

2-2. RE(Radiated Emission, 복사 방출)

  • EUT의 함체에서 방출되는 전자파의 유해성 시험

 

3. EMS(Electromagnetic Susceptibility, 전자파 감응성, 전자파 내성)

  • 전자파에 대한 내성, 즉 어떤기기에 대해 전자파방사 또는 전자파전도에 의한 영향으로부터 정상적으로 동작할 수 있는 능력
  • 규제목적 : 자연환경 조건 혹은 주변 기기로부터 유입되는 전자파에 견디는 능력을 여러 가지 방법으로 평가하여 프로세서 제어기기의 오동작을 방지

 

3-1. CS(Conducted Susceptibility/Immunity, 전도 내성)

  • CE(전도 방출)과는 반대로 EUT의 라인(전원선이나 신호선, 제어선)에 인가하여 정상동작 여부 판단

 

3-2. RS(Radiated Susceptibility/Immunity, 복사 내성)

  • RE(복사 방출)과는 반대로 전자파를 EUT에 인가하여 정상동작 여부 판단

 

3-3. ESD(Electrostatic Discharge, 정전기)

  • 정전기 발생기로 직, 간접 정전기를 유발하여 정상동작 여부 판단

 

3-4. BURST(과도응답)

  • 반복성 전기적 빠른 과도현상 시험은 전기, 전자장비의 전원공급 포트, 제어포트, 신호포트에 결합된 다수의 전기적 빠른 과도현상으로 이루어진 버스트를 이용한 시험이며 스위칭 과도현상(유도성 부하의 단락, 릴레이 접점의 바운싱 등)에서 발생되는 것과 같은 여러 유형의 과도 방해를 받는 전기, 전자 제품에 대한 내성을 시험하기 위한 것
  • 짧은 상승시간, 반복율, 낮은 과도현상 에너지가 시험에서 중요

 

3-5. SURGE(서지)

  • 선이나 회로에 따라 일시적으로 전파되는 전압의 파동을 뜻함. EUT가 사용 환경 내에서 스위칭과 낙뢰와 같은 과도현상의 과전압으로 발생하는 단방향성 서지에 대한 장비의 내성을 시험하기 위한 것. 전압이 급속히 증가되었다가 서서히 감소하는 특성을 가진 파형을 인가

 

 

제품 개발시 사무실 환경은 전원도 안정적으로 공급되고, 주변에 노이즈원도 없다.

 

하지만 실제로 의료기기나 산업용 장비가 온도, 습도, 노이즈, 진동에 노출 되었을때도 안정적으로 동작해야 한다. 당연히 기준 이하의 노이즈를 발생 시켜야 한다.

 

제품의 운송시 엄청난 온도와 습도, 진동(낙하)에 노출 되어도 정상적으로 동작해야 하므로 각종 신뢰성 테스트를 거쳐 기대 수명을 충족할 수 있는지 확인해야 한다.

목표로 하는 기대 수명을 산출

부품 단위 신뢰성 테스트

완제품 신뢰성 테스트

 

위 과정은 제품 개발 과정과 병행하여 진행 된다.

 

아래는 완제품 신뢰성 테스트 항목이며 모든 회사가 아래와 같이 테스트 하지 않는다.

 
구분
시험 분류
시험항목
완제품
외관
외관
기능
기능
성능
성능
전기안전성
누설전류
내전압
접지저항
전원입력
환경시험
사용(온습도)
보관(온습도)
운송
EMC시험
Voltage Dip
Harmonic
Voltage Variation
ESD(정전기)
Impulse Line
Impulse Radiation
Impulse Coupling
전원 ON/OFF
온도 싸이클 연속 전원 ON/OFF
온도 싸이클 방전 전원 ON/OFF
발열 수준 평가
중요부품 발열 측정

 

 

이와 더불어 국내에서 유통되는 전자기기는 모두 인증을 받아야 한다.

국내는 KC, 유럽은 CE, 미국은 UL, 중국은 CCC로 국가마다 다르며, 국가마다 장비 분류도 다르므로 제품 기획시 수출 여부도 정해야 한다.

예를들어, 국내에서 산업용 기기로 개발 하였으나, 수출 국가에서 의료기기로 쓰여 의료기기 인증이 필요할 경우 처음부터 새로 개발해야 할수 있다.

 

 

제품 개발에서 Hardware & Firmware Engineer의 업무

 

 

제품 개발 과정은 각 회사마다 세부내용은 다르겠지만 큰 뼈대는 같다. 제품발의/기획 부터 개발계획수립, P/T, E/S, P/P, 양산에 이르는 프로세스 각 단계마다 필요한 과정이 있다.

 

이중에서 Harware & Firmware Engineer의 초기 개발 업무에 대해 설명해본다. 초기 개발이라고 말한 이유는 P/T, E/S등 여러단계에 걸친 개발 단계가 있지만, 제품 기능이 P/T 단계에서 이미 모두 구현 되어야 하기 때문이다.(모든 회사가 그렇지는 않음)

 
no.
구분
세부 내용
참고
1
제품 Layout 작성
- 내부부품 구성도
- 외장부품 기능, 위치
- LCD 화면 Layout
- 개발 단가 확인하여 제품 설계
2
회로 설계
- 전자 회로 설계 CAD 툴 이용하여 회로도 작성
- PL 작성
- OrCAD, PADS Logic 등 사용
- 이 단계부터 부품 수급 및 단가를 고려해야 함
3
PCB Artwork
- Printed Circuit Board 제작을 위한 CAD 툴 이용하여 PCB Layout 설계
- PADS, Altium 등 사용
- 난이도 및 규모에 따라 외주
4
PCB SMT
- 3번 data를 바탕으로 PCB 인쇄 및 부품 조립
- 전문 양산 업체에 외주
5
Firmware 작성 및 테스트
- 4번 결과물에 Firmware 작성 및 테스트
- 보드 레벨 뿐만 아니라 제품으로서의 기능 성능 구현 필요

- 위의 과정이 반드시 순차적으로 진행되진 않으며 회로 설계 단계부터 Firmware 작성이 시작되기도 한다.

- 모든 과정을 회사에서 자체적으로 하지 않으며 외주를 주기도 한다.

- 개발 과정에서 디버깅하며 필요에 따라 2~5번 과정을 반복한다.(인증, 기능 추가 등의 이유로)

- 회사 규모에 따라 위 과정을 혼자 다 하는곳도 있다.

- 중소기업 일수록 Hardware와 Firmware의 개발 범위가 모호하다. 중견기업도 마찬가지

 

 

 

 

'제조 회사 개발 process' 카테고리의 다른 글

EMC(EMI + EMS)  (0) 2025.03.20
제품 신뢰성 테스트 및 인증  (0) 2025.03.20
제조업의 제품 생산 과정  (0) 2025.03.20

 

제조업에서의 일반적인 기획 -> 개발 -> 양산과정의 제품생산 용어

모든 제품 생산이 아래의 과정을 따르진 않음.

기획 -> P/T -> E/S -> T/P -> P/P -> M/P -> QC

 

1. 제품 발의 및 기획

상품기획 부서의 주관하에 아이디어 제안, 시장조사, 고객요구 발생에서 부터 상품기획서 작성 및 승인까지 일련의 업무로서 제품개발 및 개발방향을 결정하는 단계. 또한 상품기획 부서에서 작성된 상품구상서를 바탕으로 디자인팀이 주관하여 상품의 형상, 재질 및 색상 등 상품가치를 높이기 위한 Identity를 연구 개발하며 디자인 기획, Idea Sketch, Rendering, 디자인 Mock-up 등 일련의 프로세스를 통해 개발 프로젝트의 실제 이미지를 구체화시키고 이를 통해 실제 개발방향을 검토하고 결정

 

2. P/T (Proto Type)

제품 Layout 및 설계 기준서 작성. 설계 검증서 작성. 원가, 개발일정, 완제품 외관, 조립성, 신뢰성, 금형 검토 결과가 나와야 함

(주관부서 : 연구개발)

 

3. E/S (Engineering Sample)

연구개발 부서가 주관하여 개발계획서를 기본으로 구상설계(설계도면)의 실현 여부 및 제품개발의 검증을 위해 양산용 부품과 금형을 이용한 기구물로 E/S Sample을 제작하고, 제품 기능, 성능, 안정성, 신뢰성, 기구 등을 검토 및 평가하여 제품 가치의 실현 가능성을 최종적으로 확인하고 생산관련 사항을 검토하는 단계

(주관부서 : 연구개발)

 

4. T/P (Test Production)

E/S 품평회 등 결과에 의거, 설계목표 달성에 대해 관련부서로부터 검토, 확인 및 양산용 설비 및 공정설계를 확인. P/P를 위한 제반사항 준비하는 단계

(주관부서 : 생산기술 및 연구개발)

 

5. P/P (Pre-Production)

T/P 결과에 의거, 개발제품의 설계, 제조상의 문제점 및 제조 설비, 공정 등의 적합성을 확인하여 M/P를 위한 제반 사항을 준비 하고 최종 점검을 하는 단계

(주관부서 : 생산)

 

6. M/P (Mass-Production)

P/P 수행 결과를 근거로 양산을 위한 제반사항에 대한 진부를 완료하고, 생산 관리부서의 생산지시에 의해 필요 자원을 투입하고 생산, 판매를 위한 최종 점검.

(주관부서 : 생산)

 

7. QC (Quality Control)

양산된 제품은 QA/QC 부서에 의해 최종 품질 검사 후 출고 여부가 결정. 품질 특성에 따라 보완 후 전체 Rework 또는 불량품은 제외하고 양품만 출고. 불량품이 발생하기 않기 위한 조치 등을 받고 정도에 따라 기획부터 다시 검토될 수 있음.

(주관부서 : QA/QC 부서)

 

 
MCU
ESP32 DevKit V1(ESP-WROOM-32)
IDE
VSC + ESP-IDF
목표
ESP32 DevKit V1의 LED를 ON-OFF

 

1. ESP-IDF

View - Command Palette

 

blink - Create project using example blink

 

LED GPIO 설정

#define BLINK_GPIO 2
 

 

flash method - UART

 

serial port - COM3

 

Build - 에러남

 

다음과 같이 c_cpp_properties.json를 수정

{
    "configurations": [
        {
            "name": "ESP-IDF",
            "compilerPath": "E:\\WORK\\P_ESP32\\.espressif\\tools\\xtensa-esp32-elf\\esp-12.2.0_20230208\\xtensa-esp32-elf\\bin\\xtensa-esp32-elf-gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "includePath": [
                "${config:idf.espIdfPath}/components/**",
                "${config:idf.espIdfPathWin}/components/**",
                "${config:idf.espAdfPath}/components/**",
                "${config:idf.espAdfPathWin}/components/**",
                "${workspaceFolder}/**"
            ],
            "browse": {
                "path": [
                    "${config:idf.espIdfPath}/components",
                    "${config:idf.espIdfPathWin}/components",
                    "${config:idf.espAdfPath}/components/**",
                    "${config:idf.espAdfPathWin}/components/**",
                    "${workspaceFolder}"
                ],
                "limitSymbolsToIncludedHeaders": false
            },
            "configurationProvider": "ms-vscode.cmake-tools",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json"
        }
    ],
    "version": 4
}
 

 

Build - 에러 없어짐

 

Flash

 

 

 

1. ESP-IDF 설치

: Visual Studio Code가 설치 되어 있어야 한다.(이하 VSC)

: VSC에서 esp-idf를 검색하여 install

 

esp-idf install 후에 실제 IDE를 다운로드 하여 설치한다.

 

ESP-IDF version과 경로를 제대로 적지 않으면 설치가 안됨

 

 

MCU
ESP32 DevKit V1(ESP-WROOM-32)
IDE
Arduino IDE
목표
ESP32 DevKit V1의 Wifi 연결

 

1. Arduino IDE

Tools - Board - esp32 - ESP32 Dev module 선택

(이전 사용한 보드가 선택 되어져 있음)

2-1. HelloServer 예제 소스 불러오기

File - Examples - WebServer - HelloServer 선택

 

2-2. 코드 수정

※ PC와 ESP32는 같은 wifi를 사용해야 함

ssid : Wifi Name

password : Wifi Password

제어할 LED Port

#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <ESPmDNS.h>

const char* ssid = "WifiName";
const char* password = "WifiPassword";

WebServer server(80);

const int led = 2;
 

기본 예제는 / 페이지만 존재

/LEDON 및 /LEDOFF 페이지를 추가

void setup(void) {
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp32")) {
    Serial.println("MDNS responder started");
  }

  server.on("/", handleRoot);

  server.on("/inline", []() {
    server.send(200, "text/plain", "this works as well");
  });

  server.on("/LEDON", []() {

    server.send(200, "text/plain", "LED ON");

    digitalWrite(led, 1);

    Serial.println("LED ON");

  });

  server.on("/LEDOFF", []() {

    server.send(200, "text/plain", "LED OFF");

    digitalWrite(led, 0);

    Serial.println("LED OFF");

  });

  server.onNotFound(handleNotFound);

  server.begin();
  Serial.println("HTTP server started");
}
 

 

2-3. 우측 상단 돋보기 모양의 Serial Monitor 클릭

 

2-4. Baudrate 확인

 

2-5. Compile 및 Upload​

Sketch - Verify/Compile

 

3-1. IP 확인

 

3-2. 확인된 IP에 접속

 

3-3. 동작 확인(LED ON)

 

 

 

MCU
ESP32 DevKit V1(ESP-WROOM-32)
IDE
Arduino IDE
목표
ESP32 DevKit V1의 Bluethooth Serial 연결

 

1. Arduino IDE

Tools - Board - esp32 - ESP32 Dev module 선택

(이전 사용한 보드가 선택 되어져 있음)

 

2-1. SerialToSerialBT 예제 소스 불러오기

File - Examples - BluetoothSerisl - SerialToSerialBT 선택

 

2-2. Tools - Upload Speed "115200"으로 설정

2-3. 우측 상단 돋보기 모양의 Serial Monitor 클릭

 

2-4. Baudrate 확인

 

2-5. Compile 및 Upload

Sketch - Verify/Compile

 

3-1. 스마트폰에서 Bluetooth Terminal 다운로드 및 실행

 

3-2. 블루투스 설정에 들어가서 ESP32 연결

 

3-3. Bluetooth Terminal app으로 돌아가서 Device 연결

 

3-4. 데이터 송신(수신)

 

4. 데이터 수신(송신) 확인

 

 

MCU
ESP32 DevKit V1(ESP-WROOM-32)
IDE
Arduino IDE
목표
ESP32 DevKit V1으로 RGB LED Strip 구동

 

0. SK9822(SPI 방식 RGB LED)

- SK9822는 two-wire 전송 채널 3(RGB) 구동 지능형 제어 회로 및 조명

- 3가지 RGB 출력 제어, 8Bit(256) 색상, 밝기 조절을 위한 5Bit(32);

- 3개의 정전류 구동, 자체 감지 기능별 신호

- 최대 30MHZ 직렬 데이터 입력 주파수

 

1. Arduino IDE

Tools - Board - esp32 - ESP32 Dev module 선택

(이전 사용한 보드가 선택 되어져 있음)

 

2-1. APA102 라이브러리 설치

Sketch - Include Library - Manage Libraries

APA102 검색 - APA102 by Polulu 설치

 

2-2. Rainbow 예제 소스 불러오기

File - Examples - APA102 - Rainbow 선택

 

2-3. 코드 수정

ESP32 DEVKITV1의

- 12번에 data 연결

- 13번에 clock 연결

- LED 갯수가 10개

const uint8_t dataPin = 12;
const uint8_t clockPin = 13;

// Create an object for writing to the LED strip.
APA102<dataPin, clockPin> ledStrip;

// Set the number of LEDs to control.
const uint16_t ledCount = 10;
 

 

3. Compile 및 Upload

Sketch - Verify/Compile

4. 동작 확인

 

 

 

 
MCU
ESP32 DevKit V1(ESP-WROOM-32)
IDE
Arduino IDE
목표
ESP32 DevKit V1의 LED를 ON-OFF

 

0. ESP32 DevKit V1

- Espressif System 뿐만 아니라 ShenzenAV, DFRobot, LILYGO 등 많은 업체에서 ESP32를 이용하여 개발 보드를 만들어 판매함

- 여기서는 ESP32 DevKit V1(ShenzenAV)를 사용함

 

 

1. Arduino IDE

Tools - Board - esp32 - ESP32 Dev module 선택

 

COM 포트 선택

 

2-1. Blink 예제 소스 불러오기

File - Examples - 01.Basics - Blink 선택

 

2-2. 코드 수정

LED_BUILTIN이 define 되지 않았으므로, define 추가

#define LED_BUILTIN 2
 

 

3. Compile 및 Upload

Sketch - Verify/Compile

 

Sketch - Upload(Compile 과정 포함)

 

4. 동작 확인

 

 

+ Recent posts