분류 전체보기 69

STM32 media 보드 - FATFS

◎ FATFS 시스템이번에 정리할 내용은 FATFS 시스템으로 기본적으로 저장 장치 (SD 카드 , USB 디스크 등등..) 외부 메모리 장치와 연동하여 실제로 외부에 메모리를 읽거나 씉때 적용 합니다.Stm32cubeMX를 실행 하면 카테고리 항목에서 Middleware and Software Packs 항목을 실행 합니다.FATFS를 선택하고 FATFS Mode and Configuration 애서 SD Card 항목을 선택 합니다.① Platform Settings 에서 SD 카드 삽입을 확인할수 있는 설정부터 진행 합니다. 이전 글에서 SD 카드 삽입 확인 포트는 PORT E로 설정되어 있는것을 확인할수 있었습니다. GPIO Input 으로 기본적으로 설정하고 Found Solution 에서 ..

STM32 (Cortex-M4) 2025.04.23

STM32 media 보드 - SD CARD

※◎ SD CARD 동작이번 글에서는 stm32f4xx 시리즈에 sd card 동작과 관련하여 정리해 보겠습니다. stm32 에서는 sdcard를 제어하기 위해서는 SDIO 라는 기능을 통해 쉽게 설정할수 있습니다.SDIO 설정을 위해서는 회로도를 먼저 검토해봐야 합니다. 이 회로도에서 보면 회로 구성에서 SDIO_D0 ~ SDIO_D3 까지 데이터 라인이 구성되어 있습니다. 이것은 stm32cubeide 에서 아래의 그림과 같은 설정을 의미 합니다.※ MMC는 Multimedia Card의 약자로, SD 카드와는 핀 형식이나 타입이 다릅니다. 회로도에서 보면 SD 카드에서 Read , Write 에서 동작은 4비트 데이터 라인으로 동작을 하고 CMD 라인은 명령 전송에 사용됩니다. CLK 라인은 통..

STM32 (Cortex-M4) 2025.04.23

STM32 media 보드 - TFT LCD 제어 Part 5

◎ TFT LCD 동작지난 파트 1부터 파트 4까지의 내용을 통해 FSMC를 이용한 TFT LCD 제어에 대한 전반적인 내용을 다뤘습니다. 이번 글에서는 실제로 어떤 방식으로 동작하는지와 그 결과 값을 설명하도록 하겠습니다.우선, 제가 다루는 TFT LCD 드라이버는 RAIO사에서 제작한 RA8875라는 드라이버가 내장된 LCD이며, 데이터시트와 애플리케이션 노트, 그리고 제조사에서 제공하는 API를 활용해 보드 시스템에 맞게 개발을 진행하였습니다. ● 포트 / FSMC 초기화 진행위에서도 정리 했지만 8080 병렬 통신을 위해서는 물리적인 포트와 SRAM 접근을 위한 FSMC 를 초기화 합니다. 아래 내용은 초기화 관련 코드 입니다./*************************************..

카테고리 없음 2025.04.04

STM32 media 보드 - TFT LCD 제어 Part 4

※◎ RA8875 명령어 및 동작 방식을 정리드라이버에 대한 동작 방식을 정리 하기 위해서는 우선적으로 FSMC에 대한 Memory map 에대한 내용을 알아야 합니다.FSMC는 AHB3 ( Advanced High-performance Bus )영역에 속해 있습니다.※ 메모리 뱅크란 FSMC가 관리하는 독립적인 메모리 영역으로,  각각 다른 유형의 외부 메모리 장치를 연결 할수 있는 개별 구역을 말합니다.STM32 마이크로 컨트롤러의 경우 일반적으로 4개의 메모리 뱅크(Bank1 ~ 4) 를 제공 합니다.위 그림에서 STM32F417IGT6 데이터 시트에서 Memory map 항목을 살펴 보면 다음과 같은 내용을 확인 할수 있습니다.이것은 FSMC 가 Bank 1 부터 Bank 4 까지 각 Boundr..

STM32 (Cortex-M4) 2025.04.02

STM32 media 보드 - TFT LCD 제어 Part 3

◎ FSMC LCD 인터페이스에 관련된 마지막 설정을 설명 하겠습니다.마지막 설정 단계는 타이밍 설정을 진행 합니다. FSMC 에서 RA8875에 SRAM 메모리 영역을 제어할 경우 타이밍 설정이 필요 합니다.※ In this case, the FSMC needs three timing parameters: ADDSET, DATAST and ADDHOLD.위의 내용은 데이터 시트에 있는 일부의 내용으로 ADDSET , DATAST, ADDHOLD 이 3가지 파라미터 값이 필요하다고 말합니다.● Write/Read access = ((ADDSET + 1) + (DATAST + 1)) × HCLK = tCYC먼저 공식 계산을 위해서는  tCYC 값을 알아야 합니다. tCYC는 Cycle time 으로 LCD..

STM32 (Cortex-M4) 2025.03.31

STM32 media 보드 - TFT LCD 제어 PART2

◎ LCD 드라이버에 동작 방식을 파악해 보겠습니다.먼저 데이터 시트에 내용을 참고 하겠습니다.1. DescriptionEmbedded 768KB display RAM provides user a flexible solution for display buffer of almost application.2. FeaturesEmbedded 768KB DDRAM.위의 글을 참고해 보면 내장된 DDRAM 을 이용 하여 디스플레이 버퍼에 접근한다는 내용 입니다. RA8875 에 내장된 DDRAM을 STM32에서 연동 하기 위해서 바로 FSMC(Flexible Static Memory Control) 라는 기능을 사용 하면 됩니다.위 그림을 보면 디스플레이 RAM에 데이터를 쓸 때는 데이터 버스 모드 설정에 따라 ..

STM32 (Cortex-M4) 2025.03.31

STM32 media 보드 - delay

◎ 타이머 제어  이번 글은 delay와 관련하여 정리해 보겠습니다. delay 함수는 보통 ms , us 단위로 함수를 만들어 동작 시키고는 합니다. 보통 delay 는 두가지 방식으로 나뉘어 집니다. blocking delay 와 Non blocking delay 입니다.※ 임베디드 시스템을 접근하고 펌웨어를 제작하는데 있어서 이 delay 시스템은 굉장히 필수적이고 중요합니다.1.  blocking delay  ● blocking delay 는 보통 일반적인 delay 입니다.● blocking 이라는 것은 한마디로 delay 함수가 실행 중인 상황에서는 다른 시스템 접근이나 실행이 blocking (막힌다) 라는 것입니다.● 코드를 보면 단순하고 직관적인 구현 방식을 가진것을 알수 있습니다.voi..

STM32 (Cortex-M4) 2025.03.27

STM32 media 보드 - TFT LCD 제어 PART1

◎ TFT LCD 제어이번글에서 제어 해보고 하는 LCD는 4.3 인치 TFT LCD 입니다. LCD 드라이브는 RA8875 라는 칩셋이 적용되고 MCU와 연결되어 TFT LCD 동작을 진행 합니다. STM32F407xx (Cortex-M4) 시리즈 부터는 데이터 시트에 보면 LCD에 병렬 인터페이스(8080/6800 모드)를 기본적으로 지원합니다. 8080과 6800은 주변 장치 간의 병렬 통신 인터페이스 라고 할수 있습니다. 대략 요약을 해보자면 1. 8080 병렬 모드 (Intel 8080 인터페이스)    ● 데이터 버스 : 8비트    ● 제어 신호       - RD (Read) : 데이터 읽기       - WR (Write) : 데이터 쓰기       - CS (Chip Select) : ..

STM32 (Cortex-M4) 2025.03.27

STM32 media 보드 - GPIO 제어

※ 우선은 GPIO 제어 와 구조분석에 앞서서 앞으로 진행될 코드에 구조 부터 간단하게 소개 하겠습니다. 위 그림을 보면 bsp라는 별도의 폴더를 만들었습니다. 이는 앞으로 진행될 외부 드라이브 초기화나 동작 코드를 모두 이곳에 정리할 것임을 의미합니다. 기본 디렉토리에 일반적으로 헤더 파일과 C 파일을 모두 열거할 경우, 시스템이 커질수록 프로그램이 난잡해지고 정리가 안 되는 문제가 발생할 수 있습니다. ◎ GPIO 제어  우선 가장 기본적인 GPIO 제어를 해보겠습니다. 물론 여기서는 HAL 코드로 진행하겠지만, 다른 글에서도 언급했듯이 만약 공부를 한다면 HAL 코드보다는 데이터 시트를 참고하여 레지스터 직접 접근 방식이나 더 나아가 어드레스 접근 방식으로 코드를 작성하고 동작을 분석하는 것이 더 ..

STM32 (Cortex-M4) 2025.03.25

STM32 media 보드 - 개발 환경 설정

◎ 개발 환경 설정● Tool chain 구성1. 컴파일러 - Stm32cubeide프로그램 메모리 용량 제한이 있는 keil 무료 버전에 문제를 극복하기 위해 Stm32cubeide 로 컴파일러 구성우선 프로젝트 파일을 제작하기에 앞서 다음 아래에 4가지 과정은 필수적으로 설정을 해야 합니다. ① MCU 모델 선택MCU 모델은 STM32F407IGT6 입니다.② RCC 설정회로상 외부 오실레이터를 적용하기 때문에 HSE는 Crystal/Ceramic Resonator를 선택합니다.    ③ System mode 설정SWD를 활성화 하며 디버그 모드를 사용하기 위해서는 Serial Wire로 설정 합니다.    ④ System configuration 설정• 외부 오실레이터를 적용하기 때문에 HSE (H..

STM32 (Cortex-M4) 2025.03.24