본문 바로가기

Study_Embedded/[오제이 튜브의 임베디드 실전 강의]

(12)
[오제이 튜브의 임베디드 실전 강의] 11강 데이터 시트 읽어주는 남자 - 11강 목표 : 데이터 시트를 읽으며 단어의 의미 등을 설명. 데이터시트 분석시 도움이 많이 될 것프로그래머와 회로 설계자가 데이터시트를 보는 관점은 다름회로 설계자는 전기적 특성들을 주로 고려프로그래머는 칩의 사용법을 고려데이터 시트에도 여러 종류가 있음. (ex) 소자 하나를 설명하는 / 모듈을 제어하는 데이터시트)우리는 ARM Core의 설계도를 토대로 칩을 직접 만든 회사인 STM의 제품군을 사용위는 STM32F103x8, STM32F103xB에 대한 데이터시트. 중복되는 내용이 많으면 위처럼 둘 이상을 하나로 묶어서 같이 설명- 데이터 시트 분석 시작Medium-density performance line ARMCPU(코어)의 성능을 크게 좌우하는 것중에 하나가 트랜지스터를 얼마나 많이 집약..
[오제이 튜브의 임베디드 실전 강의] 10강 데이터 시트 보는 꼼수 - 10강 목표 : 데이터 시트 보는 요령 공부 데이터 시트 : 어떤 부품에 대한 사용 설명부터 특징등을 나열한 것을 의미함 데이터 시트를 보는 요령은 논문이나 책을 잘 읽는 요령과 비슷하다 : 방법의 많이 보는 것 말고는 없다 한글로 된 데이터 시트는 거의 없으므로 영어를 잘 하면 유리함 전문 용어와 논리 영역의 내용들이 있어 단순히 영어를 잘 한다고만 해서는 잘 보기 힘듦. 사전 정보, 배경 지식 필요 목표하는 물건을 만들기 위해 시간을 단축하는 방법은 있다. 오늘은 이 방법을 공부 1) 목적을 세우자 : 내가 해야되는 정확한 목표를 세우고, 그 목표에 맞는 지식을 습득 ARM Core 데이터시트는 1500장으로, 다 읽기에는 무리가 있음. 그리고 그 중에는 내게 필요하지 않았던 정보들도 많음 우선 ..
[오제이 튜브의 임베디드 실전 강의] 9강 회로도 딱 필요한 만큼만 배우자! 필요한 만큼 회로도 공부 : 임베디드 소프트웨어 개발자가 최소한으로 알아야 할 만큼 참고 서적 : 전자공학 만능 레시피, 짜릿짜릿 전자회로 DIY 전자공학 분야는 프로그래밍과는 달리 새로운 기능들이 자주 나오지 않는다 - 회로도 : 약속된 기호로 그려진 전기회로. 실제로 보이는 모양과는 차이가 있다 ex) 화장실에서 남녀 그림 -> 언어의 장벽을 뛰어넘어 국적 상관없이 모두가 이해할 수 있음 - 임베디드 소프트웨어 개발자는 회로도를 어느정도로 알아야 하는가 회로도를 보고 내가 제어할 부품이 무엇인지, 어떻게 제어해야 하는지 (어떤게 올바른 동작인지) 알아야 함 회로도 상의 부품을 실제 보드에서 찾을 수 있어야 함 전원 (Vcc)와 GND의 위치를 찾을 수 있어야 함 하드웨어 debugging시 어디에 멀..
[오제이 튜브의 임베디드 실전 강의] 8강 지금까지 배운 것을 큰 그림에 저장하기 - GPIO 제어 과정 Power On -> Startup Code -> main() 예전에는 Stack Pointer를 코드로 (어셈블리만 이용가능했었음) 설정해줬어야 했으나 요즘에는 하드웨어에서 자동으로 설정해줌 (바로 C코드로 접근 가능) SP, PC 설정 후 전원 공급 -> Startup Code로 이동 Stack Pointer : 현재 연산에 필요한 stack 영역에 저장되어있는 memory의 주소 저장. 저장시 자동으로 memory address가 바뀜 Program Counter : 다음에 실행될 program code의 memory의 address 저장 1) Power On 보드의 동작 전원은 3.3V 가정에 AC로 들어오는 220V를 3.3V로 전환해줌 2) Startup Code mai..
[오제이 튜브의 임베디드 실전 강의] 7강 GPIO제어 고아 먹기 - GPIO 수동 제어 2 지난 시간에 공부했던 MX_GPIO_Init( ) 중 static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIO_LED_GPIO_Port, GPIO_LED_Pin, GPIO_PIN_SET); /*Configure GPIO pin : GPIO_LED_Pin */// 이부분 공부 GPIO_InitStruct.Pin = GPIO_LED_Pin; GP..
[오제이 튜브의 임베디드 실전 강의] 6강 GPIO제어 뿌셔 먹기 0. Cube IDE의 IOC 화면에서 각 GPIO 설정값들의 의미 1) GPIO output level (High / Low) 최초 동작시의 GPIO Output값 설정High 설정 시 Low 설정 시 GPIO_PIN_RESET = 0GPIO_PIN_SET = 1 2) GPIO mode (Output Push Pull / Output Open Drain) 회로의 방식을 설정Push Pull : MCU에서 제공하는 3.3V를 통해 장치를 제어함 Open Drain : 단순히 Ground를 열고 닫음 A. Push - PullPush - Pull 방식의 기본적인 회로도 sw1이 연결되면 3.3V가 연결되며 Output에 High가 출력 sw2가 연결되면 Ground(0V)가 연결되어 Low가 출력 (어떠한..
[오제이 튜브의 임베디드 실전 강의] 5강 혼자서 임베디드 고수 되는 법 1. 강의 목표WritePin부분을 HAL Driver를 사용하지 않고 순수 코딩만으로 만들어보기 HAL Driver의 코드를 분석하고 Datasheet를 보며 필요한 것들만 뽑아 코드를 만들 것MX_GPIO_Init();HAL_GPIO_WritePin(GPIO_LED_GPIO_Port, GPIO_LED_Pin, 0);위 두개의 코드 분석Data Sheet를 보며 해당하는 주소값을 보며 코딩을 해야 함Embedded Programming은 Source Code는 몇 줄 안되나 이해하고 코드로 표현을 하기까지 수많은 공부가 필요회로, 컴퓨터 등의 알아야 할 배경 지식이 너무 많음코드를 분석하기 쉬운 방법소스가 어떤 환경에서 작동하는지 이해 후 환경 구성Breakpoint를 찍어가며 Debugging 진행 ..
[오제이 튜브의 임베디드 실전 강의] 3-1강 개발 환경 구축하기, 4강 Hello!! GPIO!! 1. 개발 환경 구축1.1. 개발 환경 구축이란- 개발을 할 수 있는 환경을 구축하는 준비과정보통 컴파일 + "Hello World"가 출력되는 상황 + 디버깅이 되는 상황을 환경구축이 완료되었다고 한다임베디드 분야는 환경 구축이 유난히 어려움임베디드 계열의 "Hello World" 는 GPIO 제어 : 이번 강의의 목적  1.2. IDE란- IDE (Integrated Development Environment) : 통합 개발 환경을 의미Coding, Debugging, Compile, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리할 수 있는 환경을 제공하는 SoftwareEx) Visual Studio, JupyterIDE = Source code editor + Compi..