SPI 통신을 이용하여 MPU9250과 통신
·
과제 및 프로젝트/flight controller
1. 들어가며이 프로젝트에서는 기존에 교수님 연구실에 있던 Flight controller 위에 rtos를 이용한 쿼드콥터 비행 제어 시스템을 만들어 올리는 것을 목표로 하고 있다. 이를 위해 차근차근 FC 내부에 있는 센서들을 다뤄보고 있다. 2. CubeMx 설정이 FC에서는 MPU9250을 IMU로 사용하고 있었다. 회로도에서 stm32l432kc6 mcu와 MPU9250이 spi 통신을 하고 있었고, 이것을 소프트웨어로 지원하기 위해 cubemx에서 spi 인터페이스 설정을 해주었다.MPU9250으로부터 들어오는 interrupt를 위해서, PA4번 핀을 GPIO input pin으로 설정해주고, CS_MPU, CS_BMP 핀은 GPIO output pin으로 설정해주었다.이 사진은 MPU9250..
Polled I/O를 이용한 Calculator
·
과제 및 프로젝트/임베디드 시스템 설계
글에 틀린 부분이 있을 수도 있습니다. 피드백은 언제나 환영입니다. 감사합니다.1. IntroLEDR(RED LED)에 값을 출력하는 프로그램이나 banner scroll이나 모두 주어진 입력을 출력시키는 프로그램이다. 그러나 입력을 받아서 출력하는 프로그램을 만들기 위해서는 Interrupt 방식을 이용할지 polled I/O 방식을 사용할지 결정해야 한다. Interrupt 방식을 이용하면, CPU는 다른 작업을 처리하고 있다가 context switching을 통해 interrupt request를 처리해주고 그것이 끝나면 다시 원래 작업을 재시작하거나 아니면 다른 작업을 시작하거나 한다. polled I/O 는 busy-waiting을 이용한다. 그렇기 때문에 CPU Idle time은 inter..
Memory-Mapped IO in Linux-Based Systems(3)
·
과제 및 프로젝트/임베디드 시스템 설계
글에 틀린 부분이 있을 수도 있습니다. 피드백은 언제나 환영입니다. 감사합니다.1. Intro이번 포스트에서는 mmio를 통해 FPGA 영역의 Slide Switch와 Hex Display를 이용하여 학번을 출력하는 banner scroll 프로그램을 어떻게 만들었는지 적어보려고 한다.2. 동작원리de1-soc에는 총 10개의 slide switch가 있고 6개의 hex display가 존재한다. Banner Scroll을 구현하기 위해 slide switch 한 개와 hex display 6개를 사용하였다. slide switch를 켜면 banner scroll이 왼쪽으로 이동하고, slide switch를 끄면 banner scroll이 오른쪽으로 이동한다.2.1 선언된 변수들Memory-Mapped..
Memory-Mapped IO in Linux-Based Systems(2)
·
과제 및 프로젝트/임베디드 시스템 설계
글에 틀린 부분이 있을 수도 있습니다. 피드백은 언제나 환영입니다. 감사합니다.1. Intro지난 포스트에서는 MPU system의 MPcore가 FPGA 영역의 peripheral에 접근하기 위해 어떤 경로를 거치게 되는지 알아봤었다. MP core에서 출발한 데이터와 명령어는 L2 cache → L3 interconnect → Lightweight HPS to FPGA bridge를 통해 전달되고 결국에 FPGA의 peripheral들을 제어할 수 있게 된다. 이번 포스트에서는 리눅스 운영체제에서 LED를 제어하는 C 프로그램을 통해, mmap함수를 사용했을 때 내부적으로 어떤 동작이 발생하는지 운영체제 입장에서 작성하려고 한다. LED 제어 소스 코드는 source code 에서 확인할 수 있다.2..
Memory-Mapped IO in Linux-Based Systems(1)
·
과제 및 프로젝트/임베디드 시스템 설계
글에 틀린 부분이 있을 수도 있습니다. 피드백은 언제나 환영입니다. 감사합니다.1. 들어가며이번 포스트에서는 de1 soc board에 대한 소개와 hps address space에 대해 적어보려고 한다.2. DE1-SOC board 소개Cyclone V는 두 개의 구역 - HPS(hard processor system)과 FPGA 두 개의 영역으로 구성된 soc이다. DE1-soc board는 이 Cyclone V soc 의 기능을 테스트하고 개발할 수 있는 하드웨어 플랫폼 중 하나이다. HPS는 dual ARM Cortex-A9 MPcore processors를 가진 microprocessor unit(MPU) subsystem, flash memory controller, SDRAM controll..