ALINX - logoAudio modul AX415
Uživatelská příručkaAudio modul ALINX AX415Audio modul AN831

Část 1: Příprava před experimentem

Tento návod k použití uvádí, jak implementovat experiment s hlasem a přehráváním a přehrávání hudby z SD karty na sériové vývojové sadě ALINX. Před experimentem si uživatel musí připravit následující vývojové desky a příslušenství.

  1. Sériová vývojová sada ALINX: Obrázek 1-1: Vývojová deska FPGA AX415 nebo Obrázek 1-2: Vývojová deska FPGA AX301.Audio modul ALINX AX415 – obrázek 1
  2. Audio modul: Obrázek 1-3: Audio modul AN831Audio modul ALINX AX415 – obrázek 2
  3. SD karta:karta SD HC(Dodaný program nepodporuje F SD kartu se starou verzí standardu 1.0)Audio modul ALINX AX415 – obrázek 3
  4. Sluchátka s mikrofonem

Část 2: Rutinní experiment s nahráváním a přehráváním

Audio modul AN831 je připojen k 40pinovým rozšiřujícím IO na vývojových sadách FPGA řady ALINX pro implementaci audio datové komunikace.
Obrázek 2-1 podrobně popisuje spojení mezi audio modulem a vývojovou sadou FPGA AX301.Audio modul ALINX AX415 – obrázek 4

Na audio modulu AN831 jsou tři audio konektory, růžové rozhraní je vstup pro mikrofon; zelené rozhraní je výstup pro sluchátka; modré rozhraní je audio vstup, který se používá pro připojení audio výstupního portu, jako je DVD. Tento experiment bude realizovat datovou komunikaci mezi audio modulem a FPGA. Vstup hlasových dat z mikrofonu se ukládá do paměti SDRAM na vývojové desce prostřednictvím audio modulu, poté se audio data odešlou do audio modulu a přehraje hlas z rozhraní sluchátek, čímž se realizuje funkce nahrávání a přehrávání.
Část 2.1: Představení hardwaru zvukového modulu AN831
Poté AN831 Audio Module, použijte čip WM8731 od WOLFSON, realizujte A/D a D/A konverzi zvukového signálu. Obrázek 2-2 podrobně popisuje hardwarový návrh zvukového modulu AN831:Audio modul ALINX AX415 – obrázek 5

Tabulka 2-1 podrobně popisuje konfiguraci 9134pinového modulu AN40

PIN J3 Název PIN PIN J3 Název PIN
1 Země 2 NAPÁJENÍ 5V
3 VM_I2C_SCLK 4 VM_I2C_SDAT
5 VM_DACDAT 6 VM_BCLK
7 VM_ADCDAT 8 VM_DACLRC
9 VM_ADCLRC 10 NC
11 NC 12 NC
13 NC 14 NC
15 NC 16 NC
17 NC 18 NC
19 NC 20 NC
21 NC 22 NC
23 NC 24 NC
25 NC 26 NC
27 NC 28 NC
29 NC 30 NC
31 NC 32 NC
33 NC 34 NC
35 NC 36 NC
37 Země 38 Země
39 Napájení 3.3V 40 Napájení 3.3V

Tabulka 2-1: Konfigurace 831pinového modulu AN40

Část 2.2: Konfigurace a časování WM8731
Zde stručně představíme audio kódovací/dekódovací čip WM8731 použitý v audio modulu AN831, který provádí především A/D a D/A konverzi zvukového signálu během nahrávání a přehrávání. WM8731, stereo 24bitové multibitové sigma delta ADC a DAC se používají s oversampdigitální interpolační a decimační filtry. Délka digitálního zvukového vstupního slova od 16 do 32 bitů a sampjsou podporovány frekvence od 8 kHz do 96 kHz. K dispozici je 11 registrů se 16 bity na registr (7 bitová adresa + 9 bitů dat). Inicializace čipu, pracovní stav a funkce za provozu jsou realizovány konfigurací 11 vnitřních registrů v režimu sběrnice I2C. V tomto označení audio modulu AN831 pracuje WM8731 v hlavním režimu, sampfrekvence je nastavena na 48 kHz a bitová délka převedených dat je 16 bitů. Audio rozhraní WM8731 lze naprogramovat na režim I2S nebo DSP/PCM v režimu.Audio modul ALINX AX415 – obrázek 6V tomto experimentu bude řízení a datová komunikace FPAG a WM8731 využívat sběrnicové rozhraní I2C a I2S. FPGA konfiguruje registry WM8731 přes rozhraní I2C a komunikuje zvuková data přes rozhraní sběrnice I2S. O rozhraní I2C, krátce představíme dříve. Zde jsme představili především audio komunikační rozhraní I2S.

Audio rozhraní I2S
Na čipu WM5 je 8731 digitálních audio rozhraní: BCLK (Digital Audio Bit Clock), DACDAT (DAC Digital Audio Data Input), DACLRC (DAC Sample Rate Left/Right Clock), ADCDAT (ADC Digital Audio Data On Put), ADCLRC (ADC Sample Rate Left/Right Clock).
V tomto provedení je FPGA zařízení slave a WM8731 je zařízení master. ADCDAT, DACDAT, ADCLRC a DACLRC jsou synchronizovány s bitovými hodinami BCLK, přenos dat na sestupné hraně každého BCLK. BCLK, DACDAT, DACLRC, ADCLRC jsou vstupní signály WM8731. ADCDAT je výstupní signál WM8731. Obrázek 2-4 zobrazuje zarovnaný režim komunikace I2S mezi FPGA a čipem WM8731 na audio modulu AN831.Audio modul ALINX AX415 – obrázek 7

Část 2.3: Programování
Experiment detekuje, zda je stisknuto tlačítko KEY1. Pokud stisknete KEY1, spustí se nahrávání; pokud je KEY1 uvolněno, nahrávání skončí a vysílání začne. Stejně jako WeChat používaný na našem mobilním telefonu, stisknutím a podržením začněte mluvit a uvolněním ukončíte nahrávání. Tento program obsahuje čtyři části: řízení čtení a zápisu SDRAM, ovládání a komunikace zvuku, detekce tlačítek a modul zpoždění resetu hodin. Obrázek 2-5 je projektový navigátor vývojové desky FPGA AX301.Audio modul ALINX AX415 – obrázek 8

  1. Scram Read and Write Control Program
    Program pro řízení čtení a zápisu SDRAM obsahuje dva podprogramy: jeden je řídicí dokument SDRAM pro čtení a zápis (sdram_top .v)a další je řídicí dokument FIFO (FIFO)
    Popis řídicího dokumentu pro čtení a zápis SDRAM:
    Dokument pro řízení čtení a zápisu SDRAM (sdram_top .v) a 3 dílčí moduly (dram, dram, dram) inicializovaly scram, analyzovaly příkaz pro čtení a zápis uživatelského rozhraní, shlukové čtení a zápis dram a řízení operace předběžného nabíjení.
    Dram modul implementuje inicializaci SDRAM, 60 ms samoobnovení,
    uživatelská analýza příkazů pro čtení a zápis a používá stavové stroje a čítače ke generování stavových bitů pro různé operace SDRAM.
    Modul dram generuje různé řídicí nebo shlukové příkazy čtení a zápisu SDRAM na základě stavového stroje init_state a work_state generovaných v modulu dram. Modul dram je obousměrný modul pro řízení dat SDRAM pro čtení/zápis. Při zápisu SDRAM se data přenášejí na datovou sběrnici SDRAM. Při čtení SDRAM jsou data na SDRAM sběrnici přenesena do uživatelského rozhraní.
    Popis kontrolního dokumentu FIFO:
    Modul FIFO se používá k řízení čtení FIFO, zápisu FIFO a generování příkazů pro čtení a zápis a čtení a zápisu adres SDRAM. V tomto experimentu se data zapsaná do SDRAM nejprve uloží do zapisovacího FIFO a data načtená z SDRAM se nejprve uloží do čteného FIFO.Audio modul ALINX AX415 – obrázek 9Generujte příkaz pro zápis Scram, když jsou data v FIFO pro zápis větší než délka shluku SDRAM (256).Audio modul ALINX AX415 – obrázek 10
  2. Program pro ovládání zvukové komunikace
    Program pro řízení zvukové komunikace se skládá z hlavního programu (mywav.v) a čtyř podprogramů. Čtyři podprogramy jsou audio přijímač (sin wave), audio přehrávač (sin wave), konfigurační program registru WM8731 (reg_config.v) a program zpoždění resetu (reset_delay.v). Kromě toho program pro konfiguraci registru (reg_config.v) také volá komunikační program i2c_com.v z IIIc.
    Audio Receiver Program sin wave Popis
    Program sampdata vložená audio addaxem podle náběžné hrany vstupních hodin balk. Sériová data jsou převedena na 16bitová paralelní data a je generován signál požadavku zápisu SDRAM.
    Popis programu audio přehrávače sin wave
    Program posouvá výstup 64bitových zvukových dat na dukátový kolík posouzením sestupné hrany vstupních hodin balk. Protože zvuková data 1fs jsou 64 bitů, program potřebuje generovat čtyři signály pro čtení SDRAM.
    Program pro inicializaci registru WM8731 reg_config.v Popis Po zapnutí programu proběhne inicializace registru čipu WM8731 přes sběrnici I2C. Podrobný popis registru čipu WM8731 naleznete v datovém listu čipu.
    Komunikační program IIC i2c_com.v Popis
    Komunikační program IIC odesílá externí data do externího zařízení
    Sběrnice IIC v časové řadě, čímž se realizuje funkce zápisu dat IIC.
    Reset Delay Module reset_delay.v popis
    Toto je metoda resetování po zapnutí softwaru. Účelem je počkat určitou dobu po zapnutí a poté nakonfigurovat registr WM8731.
  3. Program detekce tlačítek
    Program zjistí, zda je stisknuto tlačítko KEY1 nebo puštěno. Pokud je stisknuto tlačítko KEY1, signál povolení nahrávání je vysoký a adresa pro zápis SDRAM se vymaže na 0. Pokud je detekováno uvolnění tlačítka KEY1, signál povolení přehrávání je vysoký a adresa pro čtení SDRAM se vymaže.
  4. Řídicí modul systému
    Program system_ctrl.v volá PLL ke generování 100MHz SDRAM hodin. Kromě toho je zavolán modul system_delay, který generuje signál resetování na systémové úrovni

Část 2.4: Stažení a testování
Připojte sluchátka a audio moduly. Dávejte pozor, abyste nevložili nesprávné rozhraní sluchátek. Růžový konektor sluchátek se zasune do růžového rozhraní zvukového modulu a zelený konektor sluchátek se zasune do zeleného rozhraní zvukového modulu.
Zkompilujte projekt a vygenerujte soubor audio_test.sof file a stáhněte si bit file do FPGA. V tomto okamžiku stiskneme KEY1 na vývojové desce a řekneme slovo do mikrofonu. Po uvolnění KEY1 slyšíme, co jste řekli ve sluchátku.

Část 3: Rutina přehrávače hudby na SD kartě

Část 3.1: Hudební dokumenty
Před tímto experimentem musíme uložit několik hudby ve formátu wav files na SD kartě. Všimněte si, že hudba .wav file formát musí být 16 bitů a sampfrekvence je 48 kHz, což souvisí s nastavením registru WM8731. Klikněte pravým tlačítkem na soubor .wav file a vyberte Vlastnosti view to.Audio modul ALINX AX415 – obrázek 11

Pro hudbu fileUživatelé si mohou stáhnout hudbu ve formátu wav z internetu a poté ji převést do 16bitové, wav files s jakoampling frekvenci 48 Kho formátu, nebo přímo použít hudbu wav files zajišťujeme pro experimenty. Připravili jsme dvě písně pro experimentální laboratoře, které jsme poskytli.Audio modul ALINX AX415 – obrázek 12Nejprve pomocí počítače naformátujte kartu SD a poté zkopírujte dvě skladby do kořenového adresáře karty SD, Obrázek 3-3 podrobně popisuje dvě skladby. filed v kořenovém adresáři karty SD takto:Audio modul ALINX AX415 – obrázek 13Poté zkontrolujte adresu Sec dvou skladeb na SD kartě pomocí nástroje win hex, což je počáteční adresa Sec, když píšeme program SD karty níže:Audio modul ALINX AX415 – obrázek 14V hexadecimálním okně Win vidíme, že adresa Sec kořenového adresáře SD karty je 8192. Adresa Sec moře písně je 8256, data můžeme číst z adresy 8192+8256=16488 v naprogramovat.
Část 3.2: Programování
Celý projekt sd_audio se skládá z modulu nejvyšší úrovně sd_audio program a několika dílčích modulů (program pro inicializaci SD karty sd_initial.v, program pro čtení SD karty sd_read.v, audio program WM8731 mywav.v, program pro řízení ukládání dat ram raw_rw_control. v). Obrázek 3-5 je projektový navigátor vývojové desky FPGA AX301.Audio modul ALINX AX415 – obrázek 15

Pokud jde o konfiguraci registru I8731C WM2 a přehrávání hlasu I2S, které vám bylo představeno v „rutinách nahrávání a přehrávání“, uživatelé mohou tyto programy kopírovat přímo v tomto experimentu.
V tomto experimentu jsou data načtená SD kartou uložena v poli RAM definovaném programem. V programu raw_porw_control.v byly dokončeny adresy paměti RAM, čtení a zápis dat. Níže stručně představíme a vysvětlíme programování SD karty a ovládání RAM.
1) Návrh inicializačního programu SD
Po zapnutí SD karty je třeba ji inicializovat. Proces inicializace a související příkazy karty SD naleznete ve standardu protokolu karty SD 2.0. Proces inicializace je následující:Audio modul ALINX AX415 – obrázek 16

Konkrétní popis procesu je následující:

  • Chip select CS low level pro výběr SD karty
  • Chip select CS high level release SD karta
  • Odešlete příkaz CMD0 na SD kartu a potvrďte, zda je návrat 0x01.
  • Odeslat příkaz CMD8 na kartu SD, CMD8 je příkaz, který je dostupný pouze v SD2.0. Zkontrolujte také, zda je [bit19:bit16] vráceno na 0001 (2.7V-3.6V).
  • Odešlete příkaz CMD55 na kartu SD, abyste potvrdili, zda je návrat 0x01CMD55
  • Odešlete příkaz ACMD41 na SD kartu pro potvrzení, zda je návrat 0x00.
  • Pokud je inicializace úspěšná, proměnná init je nastavena na 1. Pokud není inicializace úspěšná, znovu odešlete příkazy CMD8, CMD55 a ACMD41

2) Návrh programu pro čtení SD
Když je karta SD úspěšně inicializována, data obrázku se načtou do SDRAM. Program odešle příkaz CMD17 pro čtení jednoho bloku na SD kartu a nepřetržitě čte 512 bajtů, dokud se nepřečte jeden obrázek.

  •  Konkrétní popis procesu je následující:
  • Odešlete příkaz pro čtení jednoho bloku CMD17 na SD kartu a počkejte na odpověď
  • Čekání na příjem dat z SD karty, pokud je detekován počáteční bit (0) dat, začněte přijímat data
  • Přijímá 512 bajtů dat, převádí sériová data přijatá z SPI na 8bitové datové bajty a vydává jeden datový bajt platný signál na bajt.
  • Po obdržení 512 bajtů dat určete, zda jsou načtena poslední data obrázku.

1) Návrh programu ovládání berana
Program definuje registr Myriam o délce 8192 pro ukládání hudebních dat načtených z SD karty. Program čte a zapisuje strukturu ping-pongu. Při čtení dat předchozí mezery 4096 může program zapsat data následující mezery 4096. Podobně při zápisu dat do prvního prostoru 4096 může program číst datový program dalšího prostoru 4096. Protože rychlost čtení SD karty je mnohem vyšší než rychlost přehrávání hudby, může struktura ping-pongu uspokojit funkci čtení a současného přehrávání hudebních dat SD karty.
Po zapnutí se nejprve načte 4096 dat a uloží se do registru ram.
Po obdržení požadavku na čtení dat z audio programu WM8731 mywav.v program odešle 2bajtová data v registru ram do programu mywav.v a čtená adresa ram se zvýší. Kromě toho program posuzuje čtenou adresu. Když je adresa čtené paměti 2 nebo 4096, SD karta se čte a čte se 4096 dat.
Následující dva řádky hudby files v kódu jsou počáteční adresa sektoru SD karty a délka sektoru.Audio modul ALINX AX415 – obrázek 17

Část 3.3: Stažení a testování
Vložte SD kartu s hudbou file do vývojové desky FPGA a zapojte audio modul AN831, poté připojte sluchátka k zelenému audio výstupnímu rozhraní audio modulu. Po stažení .sofa file v softwaru Quartus můžeme slyšet nádhernou hudbu ve sluchátkách.

ALINX - logowww.alinx.com

Dokumenty / zdroje

Audio modul ALINX AX415 [pdfUživatelská příručka
AX415 audio modul, AX415, audio modul, modul

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *