반응형

Embedded 34

[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형으로 참조하여 값을 가져온..

[C] 선언한 배열의 index 이상을 접근하면 어떻게 될까?

길이가 10인 1차원 배열이 있다고 하겠습니다. 그럼 index의 범위는 0 - 9 입니다. 만약 이를 초과한 10에 접근하면 어떻게 될까요? 우리의 컴파일러는 친절하게도 문제가 있다는것을 밑줄로 알려줍니다. (Debug Mode에서는 프로그램을 실행하면 메모리 접근 에러가 납니다. 정말 친절해서 너무나 고마운나머지 Test는 Release Mode에서 진행했습니다. ) 그런데 에러가 아닌 경고가 메시지가 발생합니다. 컴파일도 아주 잘 되죠. 동작시키면 쓰레기 값이 나오지만요 ^^ 그럼 배열범위를 벗어난 메모리 값을 초기화를 해버리면 어떻게 될까요?? 결과는 에러없이 아주 잘 동작합니다. 경고는 존재하지만요. 이를통해 알 수 있는것! 1. 배열의 크기를 10으로 지정한다고 해서 10만 쓸수 있는것은 아니..

반응형