PIC32MX의 I2S

1864 단어 I2Spic
예전부터 PIC32MX의 I2S 기능에 신경을 많이 썼어요.PIC32MX의 I2S는 SPI와 공유하는 기능이 있으며, SPI 레지스터의 AUDEN을 1로 설정하면 I2S로 사용할 수 있습니다.I2S를 사용할 때는 적절한 시계가 필요한데, 마이크로칩AN1422에는 48K의 샘플링 주파수를 사용하는 경우 USB PLL의 96MHz로 REFCLK를 12.288MHz로 만드는 방법이 적혀 있다.USB PLL이 PIC32MX1XX에 없기 때문에 이 방법을 사용할 수 없습니다.REFCLK를 SPI 시계로 사용하는 설정의 MCLKSEL을 1로, BaudRate Generatr(BRG)를 적절한 값으로 설정하면 올바른 BCLK/LRCLK를 출력합니다.1프레임의 자릿수는 MODE 32=0, MODE 16=1이면 32비트 1장의 64비트, 실제 데이터는 16비트이다.

디지털 오디오 형식에는 I2S 이외에 왼쪽 정렬, 오른쪽 정렬, PCM이 있습니다.I2S 형식은 LRRCLK에서 1fs를 비우고 MSB에서 출력합니다.

AK4382A 출력된 파형

PIC32MX220F032B용 코드가 여기 있습니다.
Pinguiino gcc와 xc32 파일을 사용하면 재현성은 낮지만main.c에 다 있어요.
두 개의 DMA를 사용하여 이중 버퍼에서 처리합니다.빈 중단으로 표지판을 세우고main의 순환으로 다시 채웁니다.
이 URL에서 온 페이지는 매우 참고 가치가 있다.나는 이 사람의 코드를 조금 수정해서 핑키노의 gcc로 구축할 수 있다.
수정된 부분은 PPS가 신호의 출력처를 지정한 핀과 REFCLK 주변이다.오리지널은 MCLK가 필요 없는 DAC에서 시도한 것 같다.
신세 앤플라거드 씨가 다른 방법을 시도한 것 같은데, 이것은 참고이다.
Harmony 기본이지만 마이크로칩 페이지입니다.
당초 마이크로칩 샘플 코드를 쫓아다녔는데 제대로 찾지 못해 많이 찾았어요.마이크로칩의 샘플 코드와 PIC18F 등이 공통으로 돼 있어 전망이 매우 좋지 않다.
하지만 이것은 아주 좋은 흑마술이다.상당히 반했다.
일후보기: 한 DMA도 할 수 있을 것 같은데 하면 못 움직여서 그냥 두려고요.

좋은 웹페이지 즐겨찾기