SeeeduinoXIAO로 I2S 출력
2202 단어 전자 공작Seeeduino_XIAOSeeeduinoI2S
개요
SeeeduinoXIAO는 공식적으로 I2S 출력을 할 수 없게 되어 있지만 SoC의 데이터 시트를 잘 보면 I2S 출력이 가능하다.
PinNo를 녹색, I2S 부분을 노란색으로 묶으면 다음과 같다.
코드 수정
초기 상태에서는 I2S가 무효화되어 있으므로 아래와 같이 수정할 필요가 있다.
C:/Users/(YourName)/Documents/ArduinoData/packages/Seeeduino/hardware/samd/1.7.9/variants/XIAO_m0/variant.h
variant.h// I2S Interfaces
// --------------
#define I2S_INTERFACES_COUNT 2
#define I2S_DEVICE 0
#define I2S_CLOCK_GENERATOR 3
#define PIN_I2S_SD (8u) // PA07:I2S/SD[0]
#define PIN_I2S_SCK (2u) // PA10:I2S/SCK[0]
#define PIN_I2S_FS (3u) // PA11:I2S/FS[0]
샘플 코드 실행
I2S 출력 샘플이 제공되므로 실행.
C:/Users/(YourName)/Documents/ArduinoData/packages/Seeeduino/hardware/samd/1.7.9/libraries/I2S/examples/SimpleTone
실행 결과
PCM5102a로 들렸다.
기타
초기 상태에서는 I2S가 무효화되어 있으므로 아래와 같이 수정할 필요가 있다.
C:/Users/(YourName)/Documents/ArduinoData/packages/Seeeduino/hardware/samd/1.7.9/variants/XIAO_m0/variant.h
variant.h
// I2S Interfaces
// --------------
#define I2S_INTERFACES_COUNT 2
#define I2S_DEVICE 0
#define I2S_CLOCK_GENERATOR 3
#define PIN_I2S_SD (8u) // PA07:I2S/SD[0]
#define PIN_I2S_SCK (2u) // PA10:I2S/SCK[0]
#define PIN_I2S_FS (3u) // PA11:I2S/FS[0]
샘플 코드 실행
I2S 출력 샘플이 제공되므로 실행.
C:/Users/(YourName)/Documents/ArduinoData/packages/Seeeduino/hardware/samd/1.7.9/libraries/I2S/examples/SimpleTone
실행 결과
PCM5102a로 들렸다.
기타
주파수마다 오차를 정리하면 다음과 같다.
44.1kHz와 48kHz의 16bit라면 충분히 사용할 수 있는 영역.
SamplingFreq
BitDepth
분주율
실제 주파수
오류율
44100
16
34
44118
0.000400
44100
32
17
44118
0.000400
88200
16
17
88235
0.000400
88200
32
9
83333
-0.055178
48000
16
31
48387
0.008065
48000
32
16
46875
-0.023438
96000
16
16
93750
-0.023438
96000
32
8
93750
-0.023438
Reference
이 문제에 관하여(SeeeduinoXIAO로 I2S 출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/blue-7/items/52295ab526348945c07b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)