728x90

반도체, 임베디드 Study 74

STM32 - ADC 구현 (Polling, Interrupt, DMA / 아두이노 Plotter 모드로 그래프 확인)

https://insoobaik.tistory.com/617 STM32 - ADC 이론 (DMA, ADC 함수)보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.com이론에 이어서 ADC를 직접 구현해 볼 것이다.Polling, Interrupt, DMA, 아두이노 Plotter를 통한 그래프 확인을 위해 위와 같이 STM32F429, 가변저항, 아두이노를 연결한다.STM32F429와 아두이노의 경우 Analog 신호를 전달하기 위한 Pin은 A0를 사용하였다. 기본적으로 ADC1,2,3번을 사용 가능하고 ADC1의 IN3을 사용할 것이다. (빨간색으로 표시된 것은 사용할 수 없다.)Parameter Settings를 통해 파라미터 값을 설정할 수 있다.ADC..

STM32 - ADC 이론 (DMA, ADC 함수)

ADC (Analog to Digital Converter) 아날로그 신호를 디지털로 변환해주는 장치다. ADC 특징1. 3개의 ADC 컨트롤러가 있다.2. 각각 최대 12비트의 해상도를 가지고 있다. (0~4095의 디지털 값을 얻을 수 있다.)3. 최대 24개의 채널로 동시에 아날로그 신호를 24개까지 처리할 수 있다.4. 처리 속도는 7.2MSPS(Mega Sampling Per Second)의 속도로 샘플링 가능하다.Vref+, Vref- : 아날로그 신호의 음과 양의 최대 범위인 기준 전압을 입력 받는다.ADCx_IN0~15 : 총 16개의 입력을 받을 수 있다.Temp sensor : 내부에 온도센서가 있어 ADC를 통해 디지털 온도값을 받을 수 있다.ADCCLK : ADC를 동작시키는 클럭에..

STM32 - UART 구현 - (3) (Interrupt, 코드 상세 구현)

https://insoobaik.tistory.com/615  STM32 - UART 구현 - (2) (Echo, Polling 코드 상세 분석)https://insoobaik.tistory.com/614 STM32 - UART 구현 - (1)보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.comUART 통신은 기본적으로 8bit 데이터를 전송하기 때문에 char, uint8_tinsoobaik.tistory.comecho, polling 모드에 이어 interrupt 모드에 대해 알아볼 것이다.Interrupt 모드 Polling 모드의 경우 CPU가 주기적으로 상태를 확인하고 데이터를 처리해야 하기 때문에 사용량이 높은 반면 Interrupt 모드의 경우..

STM32 - UART 구현 - (2) (Echo, Polling 코드 상세 분석)

https://insoobaik.tistory.com/614 STM32 - UART 구현 - (1)보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.comUART 통신은 기본적으로 8bit 데이터를 전송하기 때문에 char, uint8_t와 같이 8bit 이하 데이터 전송만 가능하다.__io_putchar __io_putchar는 printf문을 출력하기 위한 가장 기본적인 함수다.putchar는 printf에 입력된 문자열의 문자 하나하나마다 함수가 실행된다. Transmit() 함수를 이용하여 전달받은 ch값을 UART 통신을 통해 출력한다. echo 모드 Uart의 echo 모드는 송신한 데이터를 수신 측에서 다시 그대로 송신 측으로 되돌려 보내는 모드를..

STM32 - UART 구현 - (1)

https://insoobaik.tistory.com/613 STM32 - UART 이론 - (2)보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.com이론 내용을 바탕으로 UART를 구현해보겠다. Nucleo board에 MCU파트와 ST-Link 파트가 있는데 MCU의 PD8, 9는 ST-Link와 송수신을 담당하는 Pin인 것을 확인할 수 있다.기본적으로 USART3을 사용하며 비동기식 방식을 사용한다. UART 통신에 필요한 Buad Rate, Word Length 등 값을 설정할 수 있다. UART를 Polling mode로 사용할지 Interrupt로 사용할지에 따라 체크를 해주면 된다.DataSheet를 보게되면 USART3은 APB1 Bus를 ..

STM32 - UART 이론 - (2)

https://insoobaik.tistory.com/612 STM32 - UART 이론 - (1)보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.comUART에 대한 기본적인 이론에 이어서 STM32를 통해 UART에 대해 조금 더 자세히 알아보겠다.UART (Universal Asynchronous Receiver/Transmitter) 범용 비동기식 직렬 통신 컨트롤러PC와 타겟 보드가 통신할 때 가장 기본으로 사용하는 통신 포트다. UART는 CPU와 PC등에 기본 장착되어 있어 호환성이 좋지만 1대 1 통신등의 제한이 있어 확장성이 떨어진다. UART는 RS-232형식을 따라 총 9개의 신호선으로 구성되어 있다.그 중 2 - Received Data..

STM32 - UART 이론 - (1)

장비 간의 유선 디지털 통신 방식은 Parallel, Serial 통신이 있다.Parallel 통신은 디지털 데이터의 각 비트 별로 장비 통신 회선을 하나씩 할당하여 한꺼번에 데이터를 전송한다.Serial 통신은 모든 비트들이 공통의 선을 이용하여 순차적으로 데이터를 전송한다. UART는 시리얼 통신을 하기 때문에 시리얼 통신에 대해 자세히 알아보도록 할 것이다.장치와 장치 간의 타이밍을 결정하는 방식은 크게 두가지가 있다.1. 하나의 장치에서 하나의 비트마다 클록 펄스를 생성하고 그 신호를 다른 장치에 함께 전송하는 방법2. 장치 간에 타이밍 길이를 서로 약속한 상태에서 근사적으로 비트를 전송하는 방법 1. 방법은 클록에 의해 시간 동기를 맞추기 때문에 동기식(Synchronous)통신 방식이라하고, ..

STM32 - Error 모음

1. Open Declaration 2. Error in final launch sequence3. DAC LED  1. Open Declaration 위 파일 삭제 후 재시작2. Error in final launch sequence이거 체크해주면 해결된다. Serial Wire Debug SWV가 반드시 체크될 필요는 없지만 SWV는 다음과 같은 상황에서 활성화 해야 한다.3. DAC LED  DAC를 통해 2채널을 사용할 때 같은 값을 전달해도 불이 켜지는 속도가 다른 것을 확인할 수 있다.=> LED 마다 저항이 다르고 불을 켜기 위한 최소 전압 값이 다르기 때문이다.

STM32 - EXTI (External Interrupt) 구현 - (1)

https://insoobaik.tistory.com/609 STM32 - EXTI (External Interrupt 외부 인터럽트) 이론보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.com이전에 학습한 이론을 통해 EXTI를 직접 구현해보도록 하겠다.브레드보드를 이용하여 위와 같이 스위치를 이용한 회로 3개를 통해 EXTI를 구성할 것이다.1. SW1을 누르면 인터럽트가 발생하여 LED 1 -> 2 -> 3이 차례로 하나씩 점멸하도록 구현2. SW2를 누르면 인터럽트가 발생하여 LED 3 -> 2 -> 1이 차례로 하나씩 점멸하도록 구현3. SW3을 누르면  인터럽트가 발생하여 LED 1, 2, 3이 한번에 점멸하도록 구현 3, 5, 10번 Pin 전부..

STM32 - EXTI (External Interrupt 외부 인터럽트) 이론

Interrupt(인터럽트) 인터럽트란 다른 동작을 수행하기 위해 주는 신호를 뜻한다. 일반적으로 Interrupt를 사용하지 않고 신호를 전달하면 (Polling) 실행되고 있던 동작을 완전히 끝낸 후에 새로 받은 신호에 따라 동작을 수행한다.Interrupt를 사용하면 Interrupt가 발생하자마자 수행하고 있는 동작을 잠시 중지하고 Interrupt로 발생된 동작을 수행하고 원래 수행하던 동작을 수행한다.EXTI(External Interrupt) EXTI는 말 그대로 외부에서 발생하는 Interrupt를 의미한다. 스위치를 눌러 수행하는 동작의 경우 EXTI라고 할 수 있다.STM32의 경우 위와 같은 알고리즘을 따른다. 1. Input Line을 통해 인터럽트가 발생하면 Rising 혹은 Fa..

728x90