반응형

Embedded 35

[STM32F7] SAI(Serial audio interface) 구조

들어가기 앞서 이것은 STM32F7 DataSheet에 나온 문서를 기반으로 개인적으로 정리한 자료입니다. 만약, 오정보가 있다면 댓글로 알려주시면 감사하겠습니다. SAI(Serial audio interface)란? 아래 링크박스를 클릭하시면 SAI에 대해 설명합니다. [통신 프로토콜] SAI(Serial Audio Interface)SAI란 무엇인가 SAI(Serial Audio Interface)는 STM32에서 제공하는 오디오 전용 시리얼 통신 인터페이스입니다. 기존의 SPI 기반 I2S보다 더 유연하고 확장성 있는 구조로 설계되어 있어서, 스피커, 마이크,starlighton.com SAI 구조 STM32 데이터시트를 보면 아래 그림과 같이 SAI에 대한 블록다이어그램이 나옵니다. SAI..

Embedded/ST Series 2025.05.16

[STM32F7] I2S(integrated interchip sound) Status, Error flag

[이전 회차] [STM32F7] I2S(integrated interchip sound) 학습하기 (5)[이전 회차] [STM32F7] I2S(integrated interchip sound) 학습하기 (4)[이전 회차] [STM32F7] I2S(integrated interchip sound) 학습하기 (3)[이전 회차] [STM32F7] I2S(integrated interchip sound) 학습하기 (2)[이전 회차] [STM32F7] STM32의starlighton.com I2S Status flag 애플리케이션이 I2S 버스의 상태를 완전히 모니터링할 수 있도록 다음과 같은 세 가지 상태 플래그가 제공됩니다. Busy flag (BSY) BSY 플래그는 하드웨어에 의해 설정되며 클리어되며,..

Embedded/ST Series 2025.05.14

[STM32F7] I2S(integrated interchip sound) Slave Mode

[이전 회차] [STM32F7] I2S(integrated interchip sound) 학습하기 (4)[이전 회차] [STM32F7] I2S(integrated interchip sound) 학습하기 (3)[이전 회차] [STM32F7] I2S(integrated interchip sound) 학습하기 (2)[이전 회차] [STM32F7] STM32의 I2S(integrated interchip sound) 학습하기 (1)들어가기 앞서 이starlighton.com I2S Slave Mode 슬레이브 구성에서는, I2S를 송신 모드 또는 수신 모드로 설정할 수 있습니다.슬레이브 모드의 동작 방식은 기본적으로 I2S 마스터 모드와 동일한 규칙을 따릅니다. 슬레이브 모드에서는 I2S 인터페이스가 클럭..

Embedded/ST Series 2025.05.14

[STM32F7] I2S(integrated interchip sound) Master Mode

[이전 회차] [STM32F7] I2S(integrated interchip sound) 학습하기 (3)[이전 회차] [STM32F7] I2S(integrated interchip sound) 학습하기 (2)[이전 회차] [STM32F7] STM32의 I2S(integrated interchip sound) 학습하기 (1)들어가기 앞서 이것은 STM32F7 DataSheet에 나온 문서를 기반으로 개인적으로starlighton.com I2S Master mode I2S는 마스터 모드로 설정할 수 있으며, 이 경우 클럭(CK) 과 WS(Word Select) 신호는 마스터(STM32)에서 출력하게 됩니다.마스터 클럭(MCK) 신호는 SPIx_I2SPR 레지스터의 MCKOE 비트에 따라 출력되거나 비활성..

Embedded/ST Series 2025.05.14

[STM32F7] I2S(integrated interchip sound) Clock Generator

[이전 회차] [STM32F7] I2S(integrated interchip sound) 학습하기 (2)[이전 회차] [STM32F7] STM32의 I2S(integrated interchip sound) 학습하기 (1)들어가기 앞서 이것은 STM32F7 DataSheet에 나온 문서를 기반으로 개인적으로 정리한 자료입니다. 만약, 오정보가 있다면 댓글로 알려starlighton.com I2S Clock Generator I2S bit rate는 I2S 데이터 라인으로 전송되는 데이터 흐름의 속도와 I2S 클럭(CK) 주파수를 결정합니다. I2S bit rate = 채널당 비트 수 × 채널 수 × 샘플링 오디오 주파수 예) 16bit × 2 채널 (Left/Right) × 44.1kHz = 1.4112..

Embedded/ST Series 2025.05.13

[STM32F7] I2S(integrated interchip sound) 데이터 전송방식

[이전 회차] [STM32F7] STM32의 I2S(integrated interchip sound) 학습하기 (1)들어가기 앞서 이것은 STM32F7 DataSheet에 나온 문서를 기반으로 개인적으로 정리한 자료입니다. 만약, 오정보가 있다면 댓글로 알려주시면 감사하겠습니다. 그럼 STM32에서의 I2S 구조를 파악함에 앞starlighton.com I2S의 데이터 전송 방식 I2S는 주로 오디오 데이터를 전송하는 데 사용되며, 일반적으로 좌/우(L/R) 두 채널의 데이터를 시간 분할(time-multiplexed) 방식으로 처리합니다. 즉, 좌/우 채널 순서로 데이터를 번갈아 전송하는 방식입니다. I2S는 Half-Duplex 방식이 기본이므로 송신과 수신을 동시에 처리할 수 없습니다. 때문에 ..

Embedded/ST Series 2025.05.13

[STM32F7] I2S(integrated interchip sound)의 구조

들어가기 앞서 이것은 STM32F7 DataSheet에 나온 문서를 기반으로 개인적으로 정리한 자료입니다. 만약, 오정보가 있다면 댓글로 알려주시면 감사하겠습니다. 그럼 STM32에서의 I2S 구조를 파악함에 앞서 I2S Protocol이란 무엇인지 간략하게 정리한 내용을 읽어 보시길 바랍니다. [통신 프로토콜] I2S(integrated interchip sound)쓰기에 앞서 이번에 처음으로 오디오 관련 제품을 개발하게 되어, i2S interface를 사용하게 되었습니다.한번도 사용하지 않은 기능인데 이제야 써보네요.그래서 공부하면서 제 블로그에 나름대로starlighton.com STM32F7에서의 I2S 구조 STM32 데이터시트를 보면 아래 그림과 같이 I2S에 대한 블록다이어그램이 나옵니다..

Embedded/ST Series 2025.05.12

[STM32] STM32H7B3I-DK를 사용하여 LVGL 예제 프로젝트 설정하기.

LVGL이란? LVGL은 무료 오픈 소스 그래픽 라이브러리로써 임베디드 시스템에서 사용자 인터페이스(UI)를 사용하고자 할때 사용하는 그래픽 라이브러리중 하나입니다. LVGL 공식 사이트에서 LVGL에 대한 설명을 구체적으로 볼 수 있습니다. https://lvgl.io/ LVGL - Light and Versatile Embedded Graphics Library LVGL is the most popular free and open source embedded graphics library targeting any MCU, MPU and display type to build beautiful UIs. It's boosted by a professional yet affordable drag and d..

Embedded/ST Series 2023.10.18

[C] 가변 인수 (2) : 가변 인수 함수를 꼭 써야 가변인수를 사용할수 있는걸까?

일반 함수 매개변수의 주소값과 가변인수함수의 주소값을 살펴보았습니다. 그 두가지의 주소값 할당은 비슷한점이 많았습니다. 그럼 아래와 같이 가변인수함수를 사용하지 않아도 가변인수의 값을 가져올 수 있지 않을까요? #include int sum(int i, ...); void main() { printf("\n%d\n", sum(3, 1, 2, 3)); } int sum(int i, ...) { int sum = 0, j; int *p = &i + 1; for (j = 0; j

[C] 가변 인수 (1) : 가변 인수 함수의 주소는 어떻게 될까

일반적으로 가변인수를 사용하는 방법은 아래와 같습니다. #include #include //가변 인수를 사용하기 위한 헤더파일 int sum(int i, ...); void main() { printf("\n%d\n", sum(3, 1, 2, 3)); } int sum(int i, ...) { int j, t, sum = 0; va_list sp; //가변 인수들의 주소를 저장할 지역변수 va_list. Type은 char* va_start(sp, i); //가변 인수 바로 앞에있는 고정매개변수를 받는다. 이 함수의 매개변수에서 가변인수(...) 앞에는 int i 이므로 i를 넘긴다. for (j = 0; j < i; j++) { t = va_arg(sp, int); //int형으로 참조하여 값을 가져온..

반응형