오제이 튜브 - 임베디드 실전 강의 https://www.youtube.com/watch?v=qiEqkPlMgt0&list=PLz--ENLG_8TNjRg1OtyFBvUyV4PHaKwmu강의를 보며 공부할 예정이다.
전기, 전자, 양자역학원자 주위에 전자가 있고 -> 전자가 이동할 때 에너지가 발생한다 -> 인위적으로 자석으로 전기 발생발전소에서 석유, 석탄을 태워서 증기 발생 -> 터빈을 돌려서 자석이 왔다갔다 하게끔 하고 전기 발생시킴 -> 전기 축적 -> 변압기를 통해 각 집
양산용 VS 샘플용(과제용) 에 따라 고려사항이 달라진다단가수급이 원활한가수급이 원활하지 않으면 비싸질 수 있음안정성사람들이 많이 사용해 본 칩조건성능소비전력구현의 용이성샘플보드가 있는가만들어진 회로도가 있는가쉽게 구현가능 한 지샘플 보드가 있는지모듈이 구하기 쉬운지사

아프지 않기 위해보드 태워먹지 않기 위해실무에서 전기 알아야 고생을 덜 함: 부품이 견딜 수 없는 높은 전압이 가해지면, 부품은 타버림 \- 부품마다 견딜 수 있는 전압이 있음 \- 하나의 공급 전원을 시작으로 모든 부품이 동작할 수 있게 맞추는 작업을 해야 함발
\* fluke 제품 추천전류 측정소비 전력 측정배터리로 구동할 경우 특히(몇 년 쓸 수 있는지)비싼 것이 정확히 측정됨(작은 전류일 수록)전압 측정회로도 구간구간마다, 올바른 전압이 공급되었는가어댑터 출력 전압 체크, +- 찾기gpio 동작 확인 등저항 측정각 구

컴파일 + Hello World 가 출력되는 상황 + 디버깅 되는 상황 + 단축키 설정 + UI 설정IDE 설치 + 컴파일러 설치 + 디버거 설치 + 라이브러리 설치 + 프레임워크 설치 + 운영체제 설치 + 하드웨어 연결 등등통합 개발 환경 \* STM32 Cube I

LED, Button 을 제어LED : PC13 제어LED 위치 : D2Button : PA0 제어Button 위치 : S2Label 을 설정해주면 핀위치가 바뀌어도 코드를 다 바꿀 필요 없이 쉽게 핀위치를 바꿀 수 있다

소스가 어떤 환경에서 돌아가는 지 이해하기소스가 돌아갈 수 있는 환경 만들기디버거를 할수있는 상황 만들기브레이크 포인트 걸고 디버깅HAL_Init(); 코드 분석하기브레이크 포인트 걸기defined(STM32F103XB) 에 해당해서 브레이크 포인트가 걸린다분석할 코드

PC13이 low가 되어야 전류가 흐름 = LED onPC13이 High면 전류가 흐르지 않음 = LED offGPIO output level : high, low설정한 핀의 초기 출력 값GPIO mode : Push Pull, open DrainGPIO Pull-up

- GPIO C포트 클럭 활성화, GPIO 동작(Write Pin)

- GPIO 옵션 설정

GPIO 제어 정리

실무에서 필요한 만큼만 배워보자 약속된 기호로 그려진 전기회로회로도를 보고 내가 제어할 부품이 무엇인지, 어떻게 제어해야 할 지를 알면 된다회로도상의 부품을 실제 보드에서 찾을 수 있어야 함어디가 전원이고 그라운드가 어디인지 알아야 함하드웨어 디버깅시, 어디에 멀티미
내가 해야되는 정확한 목표를 세우고 그 목표에 맞는 지식을 습득한다.예) LED Display Driver IC를 통해 7세그먼트 LED Display를 제어해보자일단 데이터 시트 없이 장치를 대충 파악해보고 상상해본다.회로도와 데이터시트의 description을 읽어

회로를 꾸미는 용도7 Segment 4칸 모듈Single Potentionmeter(10K)USB to UART 모듈RS232 통신, 디버깅, 모니터링 용E/C 100uF 25vlcd 패널, i2c용2N3904 NPN Transistor2.54mm 2x3 Pin Hea

FTDI 모듈, UART , printf(), live expressions, ...
1. LED 회로 구성하기 저항보는 방법 1.1 GPIO 대신 그라운드로 연결해보기 LED ON 상태 1.2 GPIO - PB6 과 연결하기

: 메인 칩 + 필요한 최소한의 회로쪽보드라고도 한다뒷면을 확인해 보면 메인 칩이 2개 있음메인칩(TM74HC595) + 7세그먼트메인칩 없이 7세그먼트를 다루려면 LED를 제어한 것처럼 하나당 한 개의 GPIO를 연결하여 제어해야한다\-> 7세그먼트 하나 당 GPIO

SPI(Serial Peripheral Interface)는 주로 칩과 칩, 소자 간과 같이 근거리에서 많이 사용된다클럭 제한이 없다플래쉬 메모리에 데이터를 기록하는 용도로도 사용한다일단 A와 B가 통신하려면 선이 있어야 한다.통신하는 방법에는 반이중, 전이중이 있다반

보내고 싶은 한 바이트의 데이터를 보냄선 2개 사용(DIO, SCLK)SCLK의 한 주기마다 보내고 싶은 데이터를 HIGH, LOW로 보냄만약 1001 1100 이면 HLLH HHLL 로 보낼 수 있다\-> 오실로스코프로 찍어보면 파형 확인 가능함소프트웨어적으로 만든

\- 개발보드 회로도개발보드에 있는 SW를 PAO에, LED를 PC13에 설정해주었다.SW: GPIO INPUT MODELED: GPIO OUTPUT MODE설정을 해주면 코드가 알아서 생성된다.or 연산을 하는 코드이다.클럭

Power ON (3.3V) -> Startup Code -> main()주변장치 리셋, 플래쉬 인터페이스 초기화, systick 설정시스템 클럭 설정\*참고:클럭을 키면 전류를 더욱 사용한다. 극한으로 전류를 아껴야 하는 상황에는 SLEEP 모드 뿐만아니라 클럭도 하

1. printf()란? printf()는 표준 출력을 사용하는 출력함수이다. 임베디드 환경에서는 printf()를 UART 등으로 리디렉션 하여 사용할 수 있다. 따라서, UART를 이용해서 출력을 콘솔 창이 아닌 다른 파일에 하는 것을 할 것이다. 2. 시리얼 통

GPIO(General Purpose Input/Output)는 마이크로컨트롤러(MCU)나 임베디드 시스템에서 범용적으로 사용할 수 있는 입출력 핀을 의미합니다."범용(General Purpose)"이라는 의미처럼 특정한 기능이 정해져 있지 않고, 소프트웨어적으로 제어

Flexible Numeric Display의 약자로, LED를 사용하여 숫자 모양을 하나로 만들어 놓은 것이다.7개의 LED를 아래와 같이 배치하고 그 몇개를 선택하여 조광함으로써 0 ~ 9까지를 표시할 수 있도록 한다.메인칩 이름 확인(TM74HC595)7-SEGM

: 고속직렬통신 방식 중 하나로, 칩과 칩 간에(근거리) 데이터를 주고 받기 위한 통신방법이다.하나의 마스터 기기와 하나 이상의 슬레이브 기기를 연결하여 사용한다.TIME 베이스 : BPS 를 이용하여 클럭을 구분한다. (R485, RS232)CLK : 기준 클럭을 이

digit4showZero_replay를 사용해서 FND에 온도형식을 표현할 것이다.
핸들러는 특정 이벤트나 인터럽트가 발생했을 때 실행되는 콜백 함수입니다.마이크로컨트롤러에서 SPI 통신 중 특정 상태(데이터 전송 완료, 수신 완료 등)가 발생하면 SPI 인터럽트가 발생할 수 있는데, 이때 해당 인터럽트를 처리하는 역할을 핸들러가 수행합니다.SPI 핸

프로브 - 선(3개) - 모듈(VCC, GND, DAT) - 보드 (온도를 FND에 표현)프로브에 열이 가해지면 저항값이 변함 \-> 저항이 변하면서 전압이 변함 \-> 변한 수치를 가지고 온도를 측정해냄핀을 input 모드로 세팅핀이 하나뿐인데 읽고 쓰고를 다할 수

1-Wire 통신은 하나의 데이터 라인과 하나의 접지(그라운드) 라인만을 사용해 데이터를 송수신하는 직렬 통신 방식입니다. 이 방식은 Dallas Semiconductor(현재 Maxim Integrated, Analog Devices에 인수)에서 개발했습니다. 1-W
Dallas Semiconductor Corp. 에서 만든 통신 방식장점 : 딱 2개의 선으로 전원 공급과, 양방향 통신 가능장거리 힘들겠다(노이즈에 약함) ex)RS232주소 체계 방식을 쓰겠군 ex)RS485빠른 속도 불가능(클럭선 x -시간 Base)간단해서 많이

7segment : 온도표현온도센서 : 온도정보드라이기(릴레이 이용) : 온도 조절드라이기로 껐다 켰다하면서 원하는 온도에 맞추기릴레이 : GPIO 신호를 주면 회로가 연결됨(스위치같은 동작)스위치를 HIGH로 두면 - 기본적으로 LOW로 있다가 HIGH신호에 동작함스

동시에 불이 들어올 수 없을까? While문 안에서 계속 FND를 점유하는 문제점이 생김해결방법 :타이머 인터럽트 사용타이머(Timer) 인터럽트를 사용해 일정 주기마다 7세그먼트를 갱신하면 메인 루프에서 다른 작업을 수행 가능7세그먼트 갱신 작업은 인터럽트에서 수행하