ម៉ូឌុលអូឌីយ៉ូ AX415
សៀវភៅណែនាំអ្នកប្រើប្រាស់ម៉ូឌុលអូឌីយ៉ូ AN831
ផ្នែកទី 1: ការរៀបចំមុនពេលពិសោធន៍
សៀវភៅណែនាំណែនាំនេះណែនាំពីរបៀបអនុវត្តការសាកល្បងសំឡេង និងការចាក់សារថ្មី និងការលេងតន្ត្រីកាត SD នៅលើឧបករណ៍អភិវឌ្ឍន៍សៀរៀល ALINX មុនពេលការពិសោធន៍ អ្នកប្រើប្រាស់ត្រូវរៀបចំក្រុមប្រឹក្សាអភិវឌ្ឍន៍ និងគ្រឿងបន្ថែមខាងក្រោម។
- កញ្ចប់អភិវឌ្ឍន៍សៀរៀល ALINX៖ រូបភាព១-១៖ ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ AX1 FPGA ឬរូបភាពទី 1-415: ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ AX1 FPGA ។
- ម៉ូឌុលអូឌីយ៉ូ៖ រូបភាព ១-៣៖ ម៉ូឌុលអូឌីយ៉ូ AN1
- កាតអេសឌី៖ កាត SD HC (កម្មវិធីដែលបានផ្តល់មិនគាំទ្រកាតអេសឌីអេសអេសដែលមានស្តង់ដារកំណែចាស់ ១.០)
- កាសស្តាប់ត្រចៀកជាមួយមីក្រូហ្វូន
ផ្នែកទី 2៖ ការថតនិងការចាក់សារថ្មីពិសោធន៍ទម្លាប់
ម៉ូឌុលអូឌីយ៉ូ AN831 ត្រូវបានភ្ជាប់ទៅ IOs ពង្រីក 40-pin នៅលើ ALINX Series FPGA development Kits ដើម្បីអនុវត្តការទំនាក់ទំនងទិន្នន័យអូឌីយ៉ូ។
រូបភាពទី 2-1 បានរៀបរាប់លម្អិតអំពីការតភ្ជាប់រវាងម៉ូឌុលអូឌីយ៉ូ និងឧបករណ៍អភិវឌ្ឍន៍ AX301 FPGA ។
មានឧបករណ៍ភ្ជាប់អូឌីយ៉ូបីនៅលើម៉ូឌុលអូឌីយ៉ូ AN831 ចំណុចប្រទាក់ពណ៌ផ្កាឈូកគឺជាការបញ្ចូលមីក្រូហ្វូន។ ចំណុចប្រទាក់ពណ៌បៃតងគឺជាទិន្នផលកាស។ ចំណុចប្រទាក់ពណ៌ខៀវគឺជាការបញ្ចូលអូឌីយ៉ូ ដែលត្រូវបានប្រើដើម្បីភ្ជាប់ច្រកទិន្នផលអូឌីយ៉ូ ដូចជាឌីវីឌី។ ការពិសោធន៍នេះនឹងដឹងពីទំនាក់ទំនងទិន្នន័យរវាងម៉ូឌុលអូឌីយ៉ូ និង FPGA ។ ការបញ្ចូលទិន្នន័យសំឡេងដោយមីក្រូហ្វូនត្រូវបានរក្សាទុកក្នុងអង្គចងចាំ SDRAM នៅលើបន្ទះអភិវឌ្ឍន៍តាមរយៈម៉ូឌុលអូឌីយ៉ូ បន្ទាប់មកបញ្ជូនទិន្នន័យអូឌីយ៉ូទៅម៉ូឌុលអូឌីយ៉ូ ហើយចាក់សំឡេងពីចំណុចប្រទាក់កាសស្តាប់ត្រចៀក ដោយហេតុនេះអាចដឹងពីមុខងារនៃការថត និងចាក់។
ផ្នែកទី 2.1៖ ការណែនាំផ្នែករឹង AN831 ម៉ូឌុលអូឌីយ៉ូ
បន្ទាប់មក AN831 Audio Module ប្រើបន្ទះឈីប WM8731 របស់ WOLFSON ដឹងពីការបំប្លែង A/D និង D/A នៃសញ្ញាសំឡេង។ រូបភាពទី 2-2 លម្អិតអំពីការរចនាផ្នែករឹងនៃម៉ូឌុលអូឌីយ៉ូ AN831៖
តារាង 2-1 លម្អិតអំពីការកំណត់រចនាសម្ព័ន្ធ 9134-pin ម៉ូឌុល AN40
J3 កូដ PIN | ឈ្មោះកូដ PIN | J3 កូដ PIN | ឈ្មោះកូដ PIN |
1 | ដី | 2 | ថាមពល 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 | ដី | 38 | ដី |
39 | ថាមពល 3.3V | 40 | ថាមពល 3.3V |
តារាង 2-1: AN831 Module 40-pin Configuration
ផ្នែកទី 2.2៖ ការកំណត់រចនាសម្ព័ន្ធ WM8731 និងពេលវេលា
នៅទីនេះសូមណែនាំដោយសង្ខេបនូវបន្ទះឈីបបំប្លែង/ឌិកូដអូឌីយ៉ូ WM8731 ដែលប្រើក្នុងម៉ូឌុលអូឌីយ៉ូ AN831 ដែលអនុវត្តមុខងារបំប្លែង A/D និង D/A នៃសញ្ញាសំឡេងកំឡុងពេលថត និងចាក់។ WM8731, stereo 24-bit multi-bit sigma delta delta ADCs និង DACs ត្រូវបានប្រើជាមួយ oversampលីង តម្រងអន្តរប៉ូលឌីជីថល និងតម្រងទសភាគ។ ការបញ្ចូលសំឡេងឌីជីថលប្រវែងពាក្យពី 16-32 ប៊ីត និង sampអត្រា ling ពី 8 kHz ដល់ 96 kHz ត្រូវបានគាំទ្រ។ មានការចុះឈ្មោះចំនួន 11 ដែលមាន 16 ប៊ីតក្នុងមួយចុះឈ្មោះ (អាសយដ្ឋាន 7 ប៊ីត + ទិន្នន័យ 9 ប៊ីត) ។ ការចាប់ផ្តើមនៃបន្ទះឈីប ស្ថានភាពការងារ និងមុខងារកំឡុងពេលប្រតិបត្តិការត្រូវបានដឹងដោយកំណត់រចនាសម្ព័ន្ធការចុះឈ្មោះខាងក្នុងចំនួន 11 នៅក្នុងរបៀបឡានក្រុង I2C ។ នៅក្នុងការរចនានៃម៉ូឌុលអូឌីយ៉ូ AN831 នេះ WM8731 ដំណើរការនៅក្នុងរបៀបមេ។ampប្រេកង់ ling ត្រូវបានកំណត់ទៅ 48KHZ ហើយប្រវែងប៊ីតទិន្នន័យដែលបានបម្លែងគឺ 16 ប៊ីត។ ចំណុចប្រទាក់អូឌីយ៉ូនៃ WM8731 អាចត្រូវបានកម្មវិធីទៅជារបៀប I2S ឬ DSP/PCM នៅក្នុងរបៀប។នៅក្នុងការពិសោធន៍នេះ ការគ្រប់គ្រង និងទំនាក់ទំនងទិន្នន័យរបស់ FPAG និង WM8731 នឹងប្រើ I2C និង I2S bus interface។ FPGA កំណត់រចនាសម្ព័ន្ធការចុះឈ្មោះរបស់ WM8731 តាមរយៈចំណុចប្រទាក់ I2C និងទំនាក់ទំនងទិន្នន័យអូឌីយ៉ូតាមរយៈចំណុចប្រទាក់ឡានក្រុង I2S ។ អំពីចំណុចប្រទាក់ I2C យើងណែនាំដោយសង្ខេបពីមុន។ នៅទីនេះយើងបានណែនាំជាចម្បងនូវចំណុចប្រទាក់ទំនាក់ទំនងអូឌីយ៉ូ I2S ។
ចំណុចប្រទាក់សំឡេង I2S
មានចំណុចប្រទាក់អូឌីយ៉ូឌីជីថលចំនួន 5 នៅលើបន្ទះឈីប WM8731:BCLK(Digital Audio Bit Clock), DACDAT(DAC Digital Audio Data Input), DACLRC(DAC Sample វាយតម្លៃនាឡិកាឆ្វេង/ស្តាំ), ADCDAT(ADC Digital Audio Data On put), ADCLRC(ADC Sample វាយតម្លៃនាឡិកាឆ្វេង/ស្តាំ)។
នៅក្នុងការរចនានេះ FPGA គឺជាឧបករណ៍ទាសករ ហើយ WM8731 គឺជាឧបករណ៍មេ។ ADCDAT, DACDAT, ADCLRC និង DACLRC ត្រូវបានធ្វើសមកាលកម្មជាមួយនឹងនាឡិកាប៊ីត BCLK ការផ្ទេរទិន្នន័យនៅលើគែមធ្លាក់ចុះនៃ BCLK នីមួយៗ។ BCLK, DACDAT, DACLRC, ADCLRC គឺជាសញ្ញាបញ្ចូលរបស់ WM8731។ ADCDAT គឺជាសញ្ញាទិន្នផលនៃ WM8731 ។ រូបភាពទី 2-4 បានរៀបរាប់លម្អិតអំពីរបៀបត្រឹមត្រូវនៃការទំនាក់ទំនង I2S រវាងបន្ទះឈីប FPGA និង WM8731 នៅលើម៉ូឌុលអូឌីយ៉ូ AN831 ។
ផ្នែកទី 2.3៖ ការសរសេរកម្មវិធី
ការពិសោធន៍រកឃើញថាតើប៊ូតុង KEY1 ត្រូវបានចុចឬអត់។ ប្រសិនបើ KEY1 ត្រូវបានចុច ការថតនឹងចាប់ផ្តើម។ ប្រសិនបើ KEY1 ត្រូវបានចេញផ្សាយ ការថតនឹងបញ្ចប់ ហើយការផ្សាយចាប់ផ្តើម។ ដូចគ្នានឹង WeChat ដែលប្រើនៅលើទូរស័ព្ទដៃរបស់យើងដែរ ចុចឱ្យជាប់ ដើម្បីចាប់ផ្តើមនិយាយ និងបញ្ចេញដើម្បីបញ្ចប់ការថត។ កម្មវិធីនេះមានបួនផ្នែក៖ ការគ្រប់គ្រងការអាន និងសរសេរ SDRAM ការគ្រប់គ្រងសំឡេង និងការទំនាក់ទំនង ការរកឃើញប៊ូតុង និងម៉ូឌុលពន្យាពេលកំណត់នាឡិកាឡើងវិញ។ រូបភាពទី 2-5 គឺជាអ្នករុករកគម្រោងនៃក្រុមប្រឹក្សាអភិវឌ្ឍន៍ AX301 FPGA ។
- កម្មវិធីត្រួតពិនិត្យការអាន និងសរសេរ Scram
កម្មវិធីគ្រប់គ្រងការអាន និងសរសេរ SDRAM រួមមានទម្រង់ការរងពីរ៖ មួយគឺឯកសារគ្រប់គ្រង SDRAM អាន និងសរសេរ (sdram_top .v) និងមួយទៀតគឺឯកសារគ្រប់គ្រង FIFO (FIFO)
SDRAM អាន និងសរសេរការពិពណ៌នាឯកសារត្រួតពិនិត្យ៖
ឯកសារគ្រប់គ្រង SDRAM អាន និងសរសេរ (sdram_top .v) និង 3 ម៉ូឌុលរង (dram, dram, dram) បានចាប់ផ្តើម scram ញែកពាក្យបញ្ជាអាន និងសរសេរនៃចំណុចប្រទាក់អ្នកប្រើ ការអាន និងសរសេរ burst នៃ dram និងការត្រួតពិនិត្យប្រតិបត្តិការជាមុន។
ម៉ូឌុល dram អនុវត្តការចាប់ផ្តើម SDRAM, 60ms ធ្វើឱ្យស្រស់ដោយខ្លួនឯង,
អ្នកប្រើអាននិងសរសេរការញែកពាក្យបញ្ជានិងប្រើម៉ាស៊ីនស្ថានភាពនិងបញ្ជរដើម្បីបង្កើតប៊ីតស្ថានភាពសម្រាប់ប្រតិបត្តិការ SDRAM ផ្សេងគ្នា។
ម៉ូឌុល dram បង្កើតការគ្រប់គ្រង SDRAM ផ្សេងៗ ឬ burst read and write commands ដោយផ្អែកលើ state machine init_state និង work_state ដែលបានបង្កើតនៅក្នុង dram module ។ ម៉ូឌុល dram គឺជាម៉ូឌុលត្រួតពិនិត្យទិន្នន័យទ្វេទិស SDRAM ។ នៅពេលសរសេរ SDRAM ទិន្នន័យត្រូវបានផ្ទេរទៅឡានក្រុងទិន្នន័យ SDRAM ។ នៅពេលដែល SDRAM ត្រូវបានអាន ទិន្នន័យនៅលើឡានក្រុង SDRAM ត្រូវបានបញ្ជូនទៅចំណុចប្រទាក់អ្នកប្រើ។
ការពិពណ៌នាឯកសារត្រួតពិនិត្យ FIFO៖
ម៉ូឌុល FIFO ត្រូវបានប្រើដើម្បីគ្រប់គ្រងការអាន FIFO សរសេរ FIFO និងបង្កើតពាក្យបញ្ជាអាន និងសរសេរ និងអាន និងសរសេរអាសយដ្ឋានរបស់ SDRAM ។ នៅក្នុងការពិសោធន៍នេះ ទិន្នន័យដែលសរសេរទៅ SDRAM ត្រូវបានរក្សាទុកដំបូងនៅក្នុងការសរសេរ FIFO ហើយទិន្នន័យដែលបានអានពី SDRAM ត្រូវបានរក្សាទុកជាលើកដំបូងនៅក្នុងការអាន FIFO ។បង្កើតពាក្យបញ្ជា Scram write នៅពេលទិន្នន័យក្នុង FIFO ធំជាង SDRAM ប្រវែងផ្ទុះ (256)។
- កម្មវិធីគ្រប់គ្រងទំនាក់ទំនងអូឌីយ៉ូ
កម្មវិធីគ្រប់គ្រងការទំនាក់ទំនងជាសំឡេងមានកម្មវិធីសំខាន់មួយ (mywav.v) និងទម្រង់ការរងចំនួនបួន។ កម្មវិធីរងទាំងបួនគឺអ្នកទទួលអូឌីយ៉ូ (រលកអំពើបាប) កម្មវិធីចាក់អូឌីយ៉ូ (រលកអំពើបាប) កម្មវិធីកំណត់រចនាសម្ព័ន្ធចុះឈ្មោះ WM8731 (reg_config.v) និងកម្មវិធីពន្យាពេលកំណត់ឡើងវិញ (reset_delay.v) ។ លើសពីនេះ កម្មវិធីកំណត់រចនាសម្ព័ន្ធចុះឈ្មោះ (reg_config.v) ក៏ហៅកម្មវិធីទំនាក់ទំនង i2c_com.v នៃ IIIc ផងដែរ។
កម្មវិធីទទួលសំឡេង sin wave Description
កម្មវិធី សamples ការបញ្ចូលទិន្នន័យដោយ audio addax ដោយវិនិច្ឆ័យគែមកើនឡើងនៃនាឡិកាបញ្ចូល balk ។ ទិន្នន័យសៀរៀលត្រូវបានបំប្លែងទៅជាទិន្នន័យប៉ារ៉ាឡែល 16 ប៊ីត ហើយសញ្ញាស្នើសុំសរសេរ SDRAM ត្រូវបានបង្កើត។
កម្មវិធីចាក់អូឌីយ៉ូ sin wave Description
កម្មវិធីនេះផ្លាស់ប្តូរលទ្ធផលនៃទិន្នន័យអូឌីយ៉ូ 64 ប៊ីតទៅម្ជុល ducat ដោយវិនិច្ឆ័យគែមធ្លាក់ចុះនៃនាឡិកាបញ្ចូល balk ។ ដោយសារទិន្នន័យអូឌីយ៉ូនៃ 1fs គឺ 64 ប៊ីត កម្មវិធីត្រូវការបង្កើតសញ្ញាចំនួនបួនសម្រាប់ការអាន SDRAM ។
WM8731 Register Initialization Program reg_config.v ការពិពណ៌នា បន្ទាប់ពីកម្មវិធីត្រូវបានបើក ការចាប់ផ្តើមនៃការចុះឈ្មោះនៃបន្ទះឈីប WM8731 នឹងត្រូវបានអនុវត្តតាមរយៈ I2C bus។ សម្រាប់ការពិពណ៌នាលំអិតនៃការចុះឈ្មោះនៃបន្ទះឈីប WM8731 សូមយោងទៅលើតារាងទិន្នន័យរបស់បន្ទះឈីប។
កម្មវិធីទំនាក់ទំនង IIC i2c_com.v ការពិពណ៌នា
កម្មវិធីទំនាក់ទំនង IIC បញ្ចេញទិន្នន័យខាងក្រៅទៅខាងក្រៅ
ឡានក្រុង IIC នៅក្នុងស៊េរីពេលវេលា ដោយហេតុនេះដឹងពីមុខងារសរសេរទិន្នន័យ IIC ។
កំណត់ការពន្យារពេលម៉ូឌុលឡើងវិញ reset_delay.v ការពិពណ៌នា
នេះគឺជាវិធីសាស្រ្តនៃការកំណត់ឡើងវិញបន្ទាប់ពីការបើកដំណើរការកម្មវិធី។ គោលបំណងគឺដើម្បីរង់ចាំរយៈពេលមួយបន្ទាប់ពីការបើកថាមពលហើយបន្ទាប់មកកំណត់រចនាសម្ព័ន្ធការចុះឈ្មោះ WM8731 ។ - កម្មវិធីស្វែងរកប៊ូតុង
កម្មវិធីនឹងរកឃើញប្រសិនបើប៊ូតុង KEY1 ត្រូវបានចុច ឬខ្ញុំបញ្ចេញ។ ប្រសិនបើប៊ូតុង KEY1 ត្រូវបានចុច សញ្ញាបើកការថតគឺខ្ពស់ ហើយអាសយដ្ឋានសរសេរ SDRAM ត្រូវបានជម្រះទៅ 0។ ប្រសិនបើប៊ូតុង KEY1 ត្រូវបានរកឃើញថាត្រូវបានបញ្ចេញ នោះសញ្ញាបើកដំណើរការគឺខ្ពស់ ហើយអាសយដ្ឋានអាន SDRAM ត្រូវបានជម្រះ។ - ម៉ូឌុលត្រួតពិនិត្យប្រព័ន្ធ
កម្មវិធី system_ctrl.v ហៅ PLL ដើម្បីបង្កើតនាឡិកា SDRAM 100Mhz ។ លើសពីនេះទៀត ម៉ូឌុល system_delay ត្រូវបានហៅដើម្បីបង្កើតសញ្ញាកំណត់កម្រិតប្រព័ន្ធឡើងវិញ
ផ្នែកទី 2.4៖ ទាញយក និងសាកល្បង
ភ្ជាប់កាស និងម៉ូឌុលអូឌីយ៉ូ។ សូមប្រយ័ត្នកុំបញ្ចូលចំណុចប្រទាក់ខុសនៃកាសស្តាប់ត្រចៀក។ ដោតពណ៌ផ្កាឈូកនៃកាសស្តាប់ត្រចៀកត្រូវបានបញ្ចូលទៅក្នុងចំណុចប្រទាក់ពណ៌ផ្កាឈូកនៃម៉ូឌុលអូឌីយ៉ូ ហើយដោតពណ៌បៃតងនៃកាសស្តាប់ត្រចៀកត្រូវបានបញ្ចូលទៅក្នុងចំណុចប្រទាក់ពណ៌បៃតងនៃម៉ូឌុលអូឌីយ៉ូ។
ចងក្រងគម្រោងដើម្បីបង្កើត audio_test.sof file ហើយទាញយកប៊ីត file ទៅ FPGA ។ នៅពេលនេះ យើងចុច KEY1 នៅលើបន្ទះអភិវឌ្ឍន៍ ហើយនិយាយពាក្យមួយទៅកាន់មីក្រូហ្វូន។ បន្ទាប់ពីបញ្ចេញ KEY1 យើងអាចឮអ្វីដែលអ្នកបាននិយាយនៅក្នុងកាសស្តាប់ត្រចៀក។
ផ្នែកទី 3៖ ទម្លាប់កម្មវិធីចាក់តន្ត្រី SD កាត
ផ្នែកទី 3.1៖ ឯកសារតន្ត្រី
មុនពេលពិសោធន៍នេះ យើងត្រូវរក្សាទុកតន្ត្រីទ្រង់ទ្រាយ wav ជាច្រើន។ files នៅក្នុងកាតអេសឌី។ ចំណាំថាតន្ត្រី .wav file ទ្រង់ទ្រាយត្រូវតែមាន 16 ប៊ីត និង sampប្រេកង់ ling គឺ 48 kHz ដែលទាក់ទងទៅនឹងការកំណត់ចុះឈ្មោះនៃ WM8731 ។ ចុចកណ្ដុរស្ដាំលើ .wav file ហើយជ្រើសរើស Properties ទៅ view វា។
សម្រាប់តន្ត្រី files អ្នកប្រើអាចទាញយកតន្ត្រីក្នុងទម្រង់ wav ពីអ៊ីនធឺណិត ហើយបន្ទាប់មកបំប្លែងវាទៅជា 16-bit, wav files ជាមួយដូចជាampលីងប្រេកង់នៃទ្រង់ទ្រាយ 48 Kho ឬប្រើតន្ត្រី wav ដោយផ្ទាល់ files យើងផ្តល់ជូនសម្រាប់ការពិសោធន៍។ បានរៀបចំបទចម្រៀងពីរសម្រាប់បន្ទប់ពិសោធន៍ដែលយើងផ្តល់ជូន។ដំបូង ប្រើកុំព្យូទ័រដើម្បីធ្វើទ្រង់ទ្រាយ SD card បន្ទាប់មកចម្លងបទចម្រៀងទាំងពីរទៅថត root នៃ SD card រូបភាពទី 3-3 លម្អិតអំពីបទចម្រៀងទាំងពីរ។ filed នៅក្នុងថត root នៃកាត SD ដូចខាងក្រោម៖
បន្ទាប់មកពិនិត្យមើល Sec address នៃបទចម្រៀងទាំងពីរនៅលើ SD card ដោយប្រើ win hex tool ដែលជា Sec address ចាប់ផ្តើមនៅពេលយើងសរសេរកម្មវិធី SD card ខាងក្រោម៖
នៅក្នុងបង្អួច Win hex យើងអាចឃើញថា Sec address នៃ root directory នៃ SD card គឺ 8192។ Sec address of the song sea គឺ 8256 យើងអាចអានទិន្នន័យពី address 8192+8256=16488 នៅក្នុង កម្មវិធី។
ផ្នែកទី 3.2៖ ការសរសេរកម្មវិធី
គម្រោងទាំងមូល sd_audio ត្រូវបានផ្សំឡើងពីកម្មវិធី sd_audio ម៉ូឌុលកម្រិតកំពូល និងម៉ូឌុលរងជាច្រើន (កម្មវិធីចាប់ផ្ដើមកាតអេសឌី sd_initial.v កម្មវិធីអានកាតអេសឌី sd_read.v កម្មវិធីអូឌីយ៉ូ WM8731 mywav.v កម្មវិធីគ្រប់គ្រងការផ្ទុកទិន្នន័យ ram raw_rw_control ។ v) រូបភាពទី 3-5 គឺជាអ្នករុករកគម្រោងនៃក្រុមប្រឹក្សាអភិវឌ្ឍន៍ AX301 FPGA ។
អំពីការកំណត់រចនាសម្ព័ន្ធការចុះឈ្មោះ I8731C របស់ WM2 និងការចាក់សារជាសំឡេង I2S ដែលបានណែនាំដល់អ្នកនៅក្នុង "ទម្លាប់នៃការថត និងការចាក់សារថ្មី" ដែលអ្នកប្រើប្រាស់អាចចម្លងកម្មវិធីទាំងនេះដោយផ្ទាល់នៅក្នុងការពិសោធន៍នេះ។
នៅក្នុងការពិសោធន៍នេះ ទិន្នន័យដែលអានដោយកាត SD ត្រូវបានរក្សាទុកក្នុងអារេ ram ដែលកំណត់ដោយកម្មវិធី។ អាស័យដ្ឋានរបស់ ram ការត្រួតពិនិត្យទិន្នន័យ អាន និងសរសេរដែលបានបញ្ចប់នៅក្នុងកម្មវិធី raw_porw_control.v ។ ខាងក្រោមសូមណែនាំ និងពន្យល់យ៉ាងខ្លីអំពីការសរសេរកម្មវិធីរបស់ SD card និង ram control ។
1) ការរចនាកម្មវិធីចាប់ផ្ដើម SD
បន្ទាប់ពីកាតអេសឌីត្រូវបានបើកវាត្រូវតែចាប់ផ្តើម។ សម្រាប់ដំណើរការចាប់ផ្តើម និងពាក្យបញ្ជាដែលពាក់ព័ន្ធនៃកាត SD សូមយោងទៅលើស្តង់ដារពិធីការរបស់ SD card 2.0។ ដំណើរការចាប់ផ្តើមមានដូចខាងក្រោម៖
ការពិពណ៌នាអំពីដំណើរការជាក់លាក់មានដូចខាងក្រោម៖
- បន្ទះឈីបជ្រើសរើសកម្រិតទាប CS ដើម្បីជ្រើសរើសកាតអេសឌី
- បន្ទះឈីបជ្រើសរើស CS កម្រិតខ្ពស់ចេញផ្សាយកាតអេសឌី
- ផ្ញើពាក្យបញ្ជា CMD0 ទៅកាត SD ហើយបញ្ជាក់ប្រសិនបើការត្រឡប់មកវិញគឺ 0x01 ។
- ផ្ញើពាក្យបញ្ជា CMD8 ទៅកាត SD, CMD8 គឺជាពាក្យបញ្ជាដែលមានតែនៅក្នុង SD2.0 ប៉ុណ្ណោះ។ ពិនិត្យមើលផងដែរថាតើ [bit19:bit16] ត្រូវបានត្រលប់ទៅ 0001 (2.7V-3.6V) ដែរឬទេ។
- ផ្ញើពាក្យបញ្ជា CMD55 ទៅកាត SD ដើម្បីបញ្ជាក់ថាតើការត្រឡប់មកវិញគឺ 0x01CMD55
- ផ្ញើពាក្យបញ្ជា ACMD41 ទៅកាត SD ដើម្បីបញ្ជាក់ប្រសិនបើការត្រឡប់មកវិញគឺ 0x00 ។
- ប្រសិនបើការចាប់ផ្តើមដំណើរការបានជោគជ័យ អថេរ init ត្រូវបានកំណត់ទៅ 1។ ប្រសិនបើការចាប់ផ្តើមមិនជោគជ័យ សូមផ្ញើពាក្យបញ្ជា CMD8, CMD55 និង ACMD41 ឡើងវិញ
2) ការរចនាកម្មវិធីអាន SD
នៅពេលដែលកាត SD ត្រូវបានចាប់ផ្តើមដោយជោគជ័យ ទិន្នន័យនៃរូបភាពត្រូវបានអានទៅក្នុង SDRAM ។ កម្មវិធីនេះផ្ញើពាក្យបញ្ជាអានប្លុកតែមួយ CMD17 ទៅកាន់កាត SD ហើយអាន 512 បៃបន្តរហូតដល់រូបភាពមួយត្រូវបានអាន។
- ការពិពណ៌នាអំពីដំណើរការជាក់លាក់មានដូចខាងក្រោម៖
- ផ្ញើពាក្យបញ្ជាអានប្លុកតែមួយ CMD17 ទៅកាន់កាត SD ហើយរង់ចាំការឆ្លើយតប
- កំពុងរង់ចាំទទួលទិន្នន័យពីកាតអេសឌី ប្រសិនបើប៊ីតចាប់ផ្តើម (0) នៃទិន្នន័យត្រូវបានរកឃើញ ចាប់ផ្តើមទទួលទិន្នន័យ
- ទទួលទិន្នន័យ 512 បៃ បំប្លែងទិន្នន័យសៀរៀលដែលទទួលបានពី SPI ទៅជាបៃទិន្នន័យ 8 ប៊ីត ហើយបញ្ចេញទិន្នន័យមួយបៃទិន្នន័យត្រឹមត្រូវមួយបៃ។
- បន្ទាប់ពីទទួលបានទិន្នន័យ 512 បៃ កំណត់ថាតើទិន្នន័យចុងក្រោយនៃរូបភាពត្រូវបានអានឬអត់។
1) ការរចនាកម្មវិធីគ្រប់គ្រង ram
កម្មវិធីនេះកំណត់ការចុះឈ្មោះ Myriam ប្រវែង 8192 សម្រាប់រក្សាទុកទិន្នន័យតន្ត្រីដែលអានដោយកាត SD ។ កម្មវិធីអាន និងសរសេររចនាសម្ព័ន្ធ ping-pong ។ នៅពេលអានទិន្នន័យនៃទំហំ 4096 មុន កម្មវិធីអាចសរសេរទិន្នន័យនៃទំហំ 4096 បន្ទាប់។ ស្រដៀងគ្នានេះដែរ នៅពេលសរសេរទិន្នន័យក្នុងចន្លោះ 4096 ដំបូង កម្មវិធីអាចអានកម្មវិធីទិន្នន័យនៃចន្លោះ 4096 បន្ទាប់។ ដោយសារល្បឿនអានកាត SD លឿនជាងល្បឿននៃការចាក់តន្ត្រី រចនាសម្ព័ន្ធ ping-pong អាចបំពេញមុខងារនៃការអាន និងចាក់ទិន្នន័យតន្ត្រី SD កាតក្នុងពេលដំណាលគ្នា។
បន្ទាប់ពីបើកដំណើរការ ទិន្នន័យ 4096 នឹងត្រូវបានអានជាមុន ហើយរក្សាទុកក្នុង ram register។
បន្ទាប់ពីទទួលបានសំណើអានទិន្នន័យពីកម្មវិធីអូឌីយ៉ូ WM8731 mywav.v កម្មវិធីនឹងបញ្ជូនទិន្នន័យ 2-byte ក្នុង ram register ទៅកាន់កម្មវិធី mywav.v ហើយអាសយដ្ឋានអានរបស់ ram កើនឡើង។ លើសពីនេះទៀតកម្មវិធីវិនិច្ឆ័យអាសយដ្ឋានអាន។ នៅពេលអាសយដ្ឋានរបស់ RAM អានគឺ 2 ឬ 4096 កាតអេសឌីត្រូវបានអានហើយទិន្នន័យ 4096 ត្រូវបានអាន។
ពីរជួរ's musically followings files ក្នុងកូដគឺជាអាសយដ្ឋានផ្នែកចាប់ផ្ដើមនៃកាត SD និងប្រវែងនៃវិស័យ។
ផ្នែកទី 3.3៖ ទាញយក និងសាកល្បង
បញ្ចូលកាត SD ជាមួយតន្ត្រី file ចូលទៅក្នុងក្រុមប្រឹក្សាអភិវឌ្ឍន៍ FPGA ហើយដោតម៉ូឌុលអូឌីយ៉ូ AN831 បន្ទាប់មកភ្ជាប់កាសស្តាប់ត្រចៀកទៅចំណុចប្រទាក់លទ្ធផលអូឌីយ៉ូពណ៌បៃតងនៃម៉ូឌុលអូឌីយ៉ូ។ បន្ទាប់ពីទាញយក .sofa file នៅក្នុងកម្មវិធី Quartus យើងអាចស្តាប់តន្ត្រីដ៏អស្ចារ្យនៅក្នុងកាស។
ឯកសារ/ធនធាន
![]() |
ម៉ូឌុលអូឌីយ៉ូ ALINX AX415 [pdf] សៀវភៅណែនាំអ្នកប្រើប្រាស់ ម៉ូឌុលអូឌីយ៉ូ AX415, AX415, ម៉ូឌុលអូឌីយ៉ូ, ម៉ូឌុល |