임베디드 106

FND 모듈제어

모듈 구성 : 메인칩 + 필요한 최소한의 회로   (쪽보드) 제어 단계 1. 칩, 부품 모델명 확인 : TM74HC595 , 7세그먼트  2. 데이터시트 구글링 1) TM74HC595 2) 모듈 자체의 데이터시트 QA , QB, QC ,,, 찾는법  1) 모듈 데이터시트 2) 쇼트테스트 3) 남이 정리한것 찾기 4) 샘플 코드를 구해서, 일단 동작시키고     > 그다음 추리     구글에 칩 sample code 검색.. @ STI 통신 CLK > DI( data )  클럭을 기준으로 데이터를 보냄 GPIO3개 outut > CLK, DATA Input , DATA output @ cpp 코드 > stm 으로 변환 해석 void TM74HC595Display::send(unsigned char X) {..

LED 회로

다이오드 : 긴쪽 + 짧은쪽 - 저항 220R GPIO > 1 ( 3.3v , HIGH ) ,0 ( LOW ) 으로 해서 가운데의 LED가 껏다 켜졌다 할 수 있음 HAL_GPIO_WritePin(GPIOx, GPIO_Pin, PinState); GPIOx : GPIO group   > MX_GPIO_Init();       >  HAL_GPIO_WritePin(PB6_LED1_GPIO_Port, PB6_LED1_Pin, GPIO_PIN_SET); 1,3번 연결2,4번 연결 > s/w : on > 1234 다연결// 테스터기로 1,3 과 2,4를 찾을 수 있음  1. s/w off : PB0_TEMP-SET-UP 으로 전류가 흐름 > HIGH2. s/w on : GND > 다 흐름 , PB0_TEMP-S..

UART로 printf() 구현

리눅스에서 표준출력 바꾸는 방법 있음 printf > 파일에 기록되게 할 수 있다. UART : 장치 관리자 > 포트 > usb serial port(com3) 3.3v 로 스위치 바꾸어 줘야함 모듈                  보드 DTR RX (수신부) - 보드에서는 TX   (PA9), 60번 TX(송신부) - 보드에서는 RX (PA10) ,55번 VCC CTS GND //신호의 기준선 XShell5 세션만들기 > 프로토콜 :serial > serial 설정 : com3 STM32 char senddata[20]= "hello world\r\n"; // 엔터 하려면 \r\n FTDI 모듈 > 컴퓨터 (드라이버)  >Port3 > xshell > hello world   오실로스코프  start 1..

Coprocessor Assembly

Coprocessor:  Co-worker , cpu 혼자 모든걸 처리할 수는 없으니Coprocessor 명령 : 전용 registerData를 전송하는 명령1) Coprocessor 내부의 Register들을 장난 침. (Coprocessor 내부 Register ↔ Coprocessor 내부 Register) 여기에 붙은 모든 것들은 Coprocessor 내부에 정의 된 녀석들(형식)CDP Coprocessor번호, Coprocessor 명령어, CRd, CRnCoprocessor 명령어 : Coprocessor마다 준비된 명령어가 다름CRd: Coprocessor 내부에 있는 Register,, Destination Register로 사용 CRn: Coprocessor 내부에 있는 Register ..

SWI 의 진실

Hardware없이 interrupt를 거는 방법?  SoftWare Interrupt :  Asynchronous(비동기식) 하게 암때나 걸리는 게 Interrupt       Software Interrupt != Interrupt           > Software적으로 Exception을 거는것임.         > User mode에 있던 System > Supervisor mode로 전환,         > Software Interrupt를 거는 순간부터는 Privileged Mode로 전환 System을 마음대로 주무를 수 있는 권한이 생김. 왜 이런 SWI( software interrupt) 사용? : compatibility.      > kernel service를 이용할 때 많이..

vector table의 구현과 실제

Vector Table: 각각의 Exception이 일어 났을 때 정해진 곳으로 branch > 그 용도에 맞는 처리 routine들이 들어 있으면 됨.    Low Vector를 기준 ;----------------------------------------------------------------------------; ; ADDRESS EXCEPTION MODE ON ENTRY ;----------------------------------------------------------------------------; ; 0x00000000   Reset               Supervisor ; 0x00000004   Undefined Exception Undefined ; 0x0000000..

오실로스코프

: 오실레이터 ( 진동 ) 을 스코프 진동파형을 보는 장비 수직 : 전압 수평 : 시간 구조 신호 (아날로그) : 프로브 > 증폭 > ADC ( 표본화 양자화 부호화) > 저장 (시간축에 대해 파형을 쭉 그려나가기 위해)                                   >Triger : 일정 전압이 딱 넘었을때 그 기점의 정보 상단 : 1칸의 전압, 1칸의 초 // 1v/dv : 1칸에 1v , 500nS/div : 1칸에 500ns open ch : 채널 활성화 open FFT : FFT 활성화 // 주파수 분석 coupling : DC / AC  // AC : 신호가 1,0 으로 됐을때 떨리는 그 부분만 볼 수 있음 probe mode : 배율 트리거 :  ex) if(전압 >= x VO..

데이터시트 해석

프로그래머와 하드웨어 다루는 사람의 관점이 다름을 인지 cpu 코어의 성능 : TR 을 얼마나 밀도 있게 넣었냐에 따라 다름하드/Flash > memory (ram) > reg > cpu  >> reg,reg > ALU (연산) > reg mem 1번지 > reg //32bit 만큼 읽어옴 if. 32bit) 메모리, 레지, cpu, 메모리>레지로가는 라인, all 32 bit             : 메모리 주소 최대값 : 2^32 ~= 4gb ARM® 32-bit Cortex®-M3 CPU Core a) 72 MHz maximum frequency : 클럭 ( 명령의 기준점 ) 1 HZ : 파형의 한주기 72,000,000번 / 1초 b)  1.25 DMIPS/MHz (Dhrystone 2.1)  클..

데이터 시트 보는법

데이터 시트 보는법 1. 목적을 세우자 : 목표를 세우고 그에 맞는 지식을 습득한다.   > 오늘의 목표 : Led display driver ic 를 통해 7세그먼트 LED display 제어 2. 장치들의 개념 이해 : 구글링으로 간단 이해     > 1번핀 e , 2번핀 d ..         > led display driver 와 7세그먼트 의 연결          > stm32에 연결되는 핀을 많이 줄일 수 있다. // 32개를 3개로     : sg1 에 전원인가 > a1 ,a2 가 둘다 켜짐 > gr1,gr2 로 둘중 하나 택 하게 할 수 있음 > 이걸 토대로 실제 dataseet 확인 >> stm32 가 어떻게 돌아가도록 코드를 짤것인가?? 3. 백지식 칩과 칩 사이에 통신하는 방법 > ..

GPIO 마무리, 회로도 보기

GPIO 제어과정 power on > startup code(.s) > main __HAL_RCC_GPIOC_CLK_ENABLE();  R/M :  APB2 peripheral clock enable register (RCC_APB2ENR)                 IOPCEN 1: IO port C clock enabled 클럭 > 전류를 더욱 사용        : 전류를 아껴야 하는 상황 : sleep mode + 클럭도 하나 하나 제어 회로도 보는법 ex) FND Module :  1. VCC : 전원에 연결 3.3v  2. SCLK : PB15_FND-SCLK // 28번핀 3. RCLK : PB13_FND-RCLK // 26번핀 4. DIO : PB14_FND-DIO // 27번핀 5. GN..