본문 바로가기

목록

(199)
타이머 설정 - STM32F030F4P6 MCU는 STM32F030F4P6을 사용하였고 관련 데이터 시트는 아래 첨부했습니다. STM32CubeMX 설정 1) 타이머 선택 및 활성화 범용 타이머인 TIM14를 선택한 뒤 Activated를 체크한다. 2) Prescaler(PSC) 타이머에 공급하는 입력 클럭의 속도를 조절한다. 분주기라고도 하는데 분주기라는 말 자체가 의미하듯이 클럭을 쪼갠다는, 즉 속도를 느리게 한다는 의미이다. 위 그림1처럼 1000을 나누려고 한다면 -1을 해줘야 한다. 그 이유는 0부터 시작이기 때문이다(0~999). 그리고 이 말은 클럭을 1000번 보내면 카운터를 1개 올리겠다는 뜻이 된다. 3) Counter Mode 여기서는 카운터의 값이 증가하면서 카운팅을 하는 업 카운팅 모드를 선택했다. 범용 카운터의 모드 ..
타이머 설정 - NUC029SGE MCU는 NUC029SGE를 사용하였고 관련 데이터 시트는 아래 첨부했습니다. 코드 분석 static void sSysTimer_Init(void) { /* Enable TIMER0 module clock */ CLK_EnableModuleClock(TMR0_MODULE); /* Select TIMER module clock source */ CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HIRC, MODULE_NoMsk); TIMER_Open(TIMER0, TIMER_PERIODIC_MODE, 1000); TIMER_EnableInt(TIMER0); /* Enable Timer0 NVIC */ NVIC_EnableIRQ(TMR0_IRQn); } 1) CLK..
Clock 설정 - STM32F030F4P6 MCU는 STM32F030F4P6을 사용하였고 관련 데이터 시트는 아래 첨부했습니다. 1. 핀 설정 1) 회로도 확인 회로도에서 외부에 8MHz의 crystal oscillator가 있는 것을 확인한다. 그리고 PF0, PF1핀에 XIN, XOUT으로 연결되는 것을 확인한다. 2) 데이터 시트 확인 위 그림에서 표시된 clock source 중 빨간색으로 표시된 clock source를 사용한다. ※ 용어 정리 HSI RC(8 MHz): High Speed Internal RC oscillator HSE OSC(4~32 MHz): High Speed External OSCillator LSE OSC(32.168 kHz): Low Speed External OSCillator LSI RC(40 kHz): ..
클럭과 주파수 클럭: 컴퓨터에서 연산을 조정하는 타이밍 신호 클럭 속도(=주파수): 클럭 신호가 반복되는 속도 10Hz는 1초에 10번 신호가 반복되는 것을 말하며, 이는 1초에 10번의 클럭이 발생하는 것을 의미한다. 만약 1초에 1개의 명령어처리가 가능한 CPU라면 10Hz의 클럭 속도를 지닌 CPU는 1초에 10개의 명령어 처리가 가능하다는 것을 의미한다. 예를 들어 시스템 클럭(HCLK)이 약 22MHz이고, 이 CPU는 1클럭에 1개의 명령어 처리가 가능하다면 1초에 2천2백만개의 명령어를 처리할 수 있다.
Clock 설정 - NUC029SGE MCU는 NUC029SGE를 사용하였고 관련 데이터 시트는 아래 첨부했습니다. 코드 분석 static void sSysClk_Init(void) { //Unlock protected registers SYS_UnlockReg(); /*Disable clock source*/ CLK_DisableXtalRC(CLK_PWRCTL_HXTEN_Msk); if(!(CLK->STATUS & CLK_STATUS_HXTSTB_Msk)) { SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF3MFP_Msk | SYS_GPF_MFPL_PF4MFP_Msk); SYS->GPF_MFPL |= (SYS_GPF_MFPL_PF3MFP_GPIO | SYS_GPF_MFPL_PF4MFP_GPIO); } /* Enable HIR..
STM32CubeMX에서 STM32CubeIDE로 코드 생성하기 1. STM32CubeIDE, STM32CubeMX 설치한다. 여기서는 STM32CubeIDE 1.13.2, STM32CubeMX 6.9.2를 설치하였다. 2. 프로젝트를 저장할 폴더를 생성한다. 여기서는 D:\project에 ITTH 폴더를 생성했다. 3. STM32CubeMX에서 작업한 파일을 위에서 생성한 폴더에 저장한다. 여기서는 ITTH라는 이름으로 저장했다. 여기까지 하면 아래 그림과 같이 D:\project\ITTH\ITTH에 ITTH.ioc 파일이 있다. 4. STM32CubeMX로 ITTH_CT.ioc 파일을 열고 Project Manager를 선택한다. Toolchain / IDE 에서 STM32CubeIDE로 변경한다. 5. GENERATE CODE를 누른다. 6. 생성이 되면 아래와..
동기(Synchronous)와 비동기(Asynchronous) 방식 비동기(Asynchronous) 방식 송신 측과 수신 측의 clock에 상관없이 시간을 쪼개서 서로 송수신 속도를 Baud rate을 정해서 맞춘다. 이때 한 번에 한 문자씩 송수신하며 아래 그림1과 같이 데이터 길이, 시작 비트, 정지 비트를 포함하여 보내는 방법을 사용한다. 시작 비트와 정지 비트 사이의 간격이 가변적이므로 불규칙적인 전송에 적합하며, 필요한 접속장치와 기기들이 간단하므로 동기 방식보다 장비가 싸다. 비동기 방식 사용 예는 UART가 있다. ※ Baud rate Clock을 사용하지 않는 대신에 시간을 동기화(시간을 맞춘다)한다. 그래서 시간을 정확하게 쪼개서 데이터의 송수신 속도를 Baud rate으로 정한다. 만약 정보의 기본 단위가 bit이고 Baud rate이 115200이면 ..
Baud rate과 Bit rate 1. 개념 Baud rate 초당 얼마나 많은 심볼(의미 있는 데이터 묶음)을 전송할 수 있는가? Bit rate 초당 얼마나 많은 데이터 비트를 전송할 수 있는가? 2. 정보의 기본 단위에 따른 예시 1) 정보의 기본 단위: ASCII Code ASCII Code는 1character로 8bit를 사용하므로 이를 하나의 심볼이라고 할 수 있다. 여기서 2400 Baud rate이란 초당 2400개의 심볼, 즉 ASCII Code를 전송할 수 있다는 뜻이며 이를 Bit rate로 표현하면 19200bps가 된다. 2) 정보의 기본 단위: Bit Bit가 하나의 심볼이므로 여기서 2400 baud rate이란 초당 2400개의 심볼, 즉 bit를 전송할 수 있다는 뜻이며 이를 Bit rate로 표현하면 2..