logo HOLTEK Pustaka HT32 CMSIS-DSP
Pandhuan pangguna
D/N: AN0538EN

Pambuka

CMSIS minangka antarmuka standar piranti lunak sing dikembangake dening ARM kanthi jeneng lengkap Cortex Microcontroller Software Interface Standard. Kanthi antarmuka standar iki, pangembang bisa nggunakake antarmuka sing padha kanggo ngontrol mikrokontroler saka macem-macem supplier saengga bisa nyepetake wektu pangembangan lan sinau. Kanggo informasi luwih lengkap, waca pejabat CMSIS websitus: http://www.keil.com/pack/doc/CMSIS/General/html/index.html. Tèks iki utamané njlèntrèhaké aplikasi CMSIS-DSP ing seri HT32 mikrokontroler sing kalebu persiyapan lingkungan, arah panggunaan, lsp.

Deskripsi Fungsional

Fitur CMSIS-DSP
CMSIS-DSP, sing minangka salah sawijining komponen CMSIS kalebu fitur ing ngisor iki.

  1. Nyedhiyani sakumpulan fungsi pangolahan sinyal umum khusus kanggo Cortex-M.
  2. Pustaka fungsi sing diwenehake dening ARM nduweni luwih saka 60 fungsi.
  3. Ndhukung q7, q15, q31
    (Cathetan) lan tipe data floating-point (32-bit).
  4. Implementasine dioptimalake kanggo set instruksi SIMD sing kasedhiya kanggo Cortex-M4 / M7 / M33 / M35P.

Cathetan: Penamaan q7, q15, lan q31 ing perpustakaan fungsi masing-masing makili titik tetep 8, 16, lan 32bit.
Item Pustaka Fungsi CMSIS-DSP
Pustaka fungsi CMSIS-DSP dipérang dadi kategori ing ngisor iki:

  1. Fungsi matematika dhasar, fungsi matematika cepet, lan fungsi matematika kompleks
  2. Fungsi nyaring sinyal
  3. Fungsi matriks
  4. Fungsi transformasi
  5. Fungsi kontrol motor
  6. Fungsi statistik
  7. Dhukungan fungsi
  8. Fungsi interpolasi

Setelan Lingkungan

Bagean iki bakal ngenalake hardware lan piranti lunak sing digunakake ing aplikasi example.
Hardware
Sanajan CMSIS-DSP ndhukung seri HT32 lengkap, disaranake nggunakake MCU kanthi kapasitas SRAM luwih gedhe tinimbang 4KB minangka aplikasi CMSIS-DSP.ample mbutuhake ukuran SRAM luwih gedhe. Teks iki njupuk ESK32-30501 minangka mantanample kang nggunakake HT32F52352.
Piranti lunak
Sadurunge nggunakake aplikasi exampPisanan, priksa manawa Pustaka Firmware Holtek HT32 paling anyar wis diundhuh saka resmi Holtek. websitus. Lokasi download ditampilake ing Gambar
Dekompres ing file sawise ngundhuh.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar

Download kode aplikasi CMSIS-DSP liwat link ing ngisor iki. Kode aplikasi dikemas minangka zip file kanthi jeneng HT32_APPFW_xxxxx_CMSIS_DSP_vn_m.zip.
Download path: https://mcu.holtek.com.tw/ht32/app.fw/CMSIS_DSP/
Ing file aturan jeneng ditampilake ing Gambar 2.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 2

Minangka kode aplikasi ora ngemot perpustakaan perangkat kukuh files, kedhaftar kudu nyeleh kode aplikasi unzipped lan perpustakaan perangkat kukuh files menyang dalan sing bener sadurunge miwiti kompilasi. Kode aplikasi file ngemot rong folder, yaiku aplikasi lan perpustakaan sing lokasine ditampilake ing Gambar 3. Selehake rong folder kasebut menyang direktori root perpustakaan perangkat kukuh kanggo ngrampungake file konfigurasi path minangka ditampilake ing Figure 4. Pangguna uga bisa decompress kode aplikasi lan perpustakaan perangkat kukuh teken files menyang dalan sing padha kanggo entuk efek sing padha. Kanggo mantan ikiample, direktori kanggo CMSIS_DSP bakal katon ing folder aplikasi sawise decompression.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 3

File Struktur

Loro folder utama kalebu ing kode aplikasi file, library\CMSIS, lan application\CMSIS_DSP, diterangake ing ngisor iki.
Isi folder perpustakaan\CMSIS kaya ing ngisor iki.

Jeneng Folder Katrangan
DSP_Lib Kode sumber aplikasi FW
DSP_Lib\Examples Ngandhut sawetara standar examples saka perpustakaan fungsi CMSIS-DSP sing diwenehake dening ARM. Setelan kanggo proyek kasebut dieksekusi kanthi cara simulasi tanpa mbutuhake MCU. Pangguna bisa cepet sinau carane nggunakake mantan ikiamples dening kaleksanan mau.
DSP_Lib\Sumber Kode sumber perpustakaan fungsi CMSIS-DSP
kalebu Header sing dibutuhake file nalika nggunakake perpustakaan fungsi CMSIS-DSP
Kalebu \ arm_common_tables.h Deklarasi variabel array eksternal (eksternal)
Kalebu \ arm_const_structs.h Pranyatan saka konstanta njaba
Kalebu\arm_math.h Iki file penting banget minangka antarmuka kanggo nggunakake perpustakaan fungsi CMSIS-DSP. Telpon kanggo sembarang API perpustakaan fungsi dipun ginakaken liwat arm_math.h.
Lib\ARM Pustaka fungsi CMSIS-DSP kanggo ARMCC l arm_cortexM3l_math.lib (Cortex-M3, Little ndian) l arm_cortexM0l_math.lib (Cortex-M0 / M0+, Little endian)
Lib\GCC Pustaka fungsi CMSIS-DSP kanggo GCC l libarm_cortexM3l_math.a (Cortex-M3, Little ndian) l libarm_cortexM0l_math.a (Cortex-M0 / M0+, Little endian)

Folder aplikasi\CMSIS_DSP ngemot pirang-pirang CMSIS_DSP examples, sing nggunakake seri HT32 saka MCU lan ndhukung seri HT32 lengkap. Proyek kasebut dikembangake nggunakake Keil MDK_ARM.

Jeneng Folder Katrangan
arm_class_marks_example Nduduhake carane entuk nilai maksimum, nilai minimal, nilai samesthine, standar deviasi, varian lan fungsi matriks.
arm_convolution_example Nduduhake teorema konvolusi liwat FFT kompleks lan fungsi dhukungan.
arm_dotproduct_example Nuduhake carane entuk produk titik liwat perkalian lan tambahan vektor.
arm_fft_bin_example Nuduhake carane ngetung jendhela energi maksimum (bin) ing domain frekuensi sinyal input nggunakake FFT Komplek, magnitudo Komplek, lan fungsi modul maksimum.
arm_fir_example Nuduhake carane ngleksanakake low-pass nyaring nggunakake FIR.
arm_graphic_equalizer_example Nuduhake carane ngganti kualitas swara nggunakake ekualiser grafis.
arm_linear_interp_example Nuduhake panggunaan modul interpolasi linear lan modul matematika cepet.
arm_matrix_example Nuduhake petungan korelasi matriks kalebu transformasi matriks, perkalian matriks, lan invers matriks.
arm_signal_converge_example Nduduhake filter pass-low FIR sing bisa diatur dhewe nggunakake NLMS (Normalised Least Mean Square), FIR, lan modul matematika dhasar.
arm_sin_cos_example Nuduhake petungan trigonometri.
arm_variance_example Nuduhake carane ngetung varians liwat matematika dhasar lan fungsi dhukungan.
filter_iir_high_pass_example Nuduhake carane ngleksanakake high-pass nyaring nggunakake IIR.

Tes
Teks iki bakal nggunakake aplikasi\CMSIS_DSP\arm_class_marks_example minangka test example. Sadurunge miwiti testing, priksa manawa ESK32-30501 wis disambungake utawa ora lan priksa manawa kode aplikasi lan perpustakaan perangkat kukuh wis diselehake ing lokasi sing bener. Buka aplikasi\CMSIS_DSP\arm_class_marks_example folder lan nglakokaké _CreateProject.bat  file, kaya sing kapacak ing ngisor iki. Sawise iki, bukak MDK_ARMv5 (utawa MDK_ARM kanggo Keilv4), kanggo nemokake yen mantan ikiample ndhukung seri HT32 lengkap. Bukak proyek Project_52352.uvprojx amarga ESK32-30501 digunakake.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 4

Sawise mbukak proyek, kompilasi (tombol trabasan "F7"), download (tombol trabasan "F8"), debug (tombol trabasan "Ctrl + F5") lan banjur jalanake (tombol trabasan "F5"). Asil eksekusi bisa diamati nggunakake variabel ing ngisor iki.

Variabel jeneng Arah Data Katrangan Hasil eksekusi
testMarks_f32 Input Siji 20 × 4 array
testUnity_f32 Input Siji 4 × 1 array
output test Output Produk testMarks_f32 lan testUnity_f32 {188…}
max_marks Output Nilai maksimum saka unsur ing array output test 364
min_tandha Output Nilai minimal saka unsur ing array output test 156
tegese Output Nilai samesthine saka unsur ing Uploaded test output 212.300003
std Output Panyimpangan standar saka unsur ing array output test 50.9128189
var Output Varian saka unsur ing array output test 2592.11523

Pandhuan kanggo Gunakake 

Integrasi
Bagean iki bakal ngenalake carane nggabungake CMSIS-DSP menyang proyek pangguna.
Langkah 1
Pisanan, nambah simbol Netepake anyar nalika nyetel project, "ARM_MATH_CM0PLUS" kanggo M0 + lan "ARM_MATH_CM3" kanggo M3. Prosedur setelan: (1) Pilihan tombol trabasan Target "Alt+F7"), (2) Pilih kaca C/C++, (3) Tambah definisi anyar ing pilihan Define, kaya sing kapacak ing ngisor iki.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 5

Langkah 2
Kanggo nambah path Include, klik tombol ing jejere pilihan "Include Paths" ing kaca C/C++. Banjur jendhela Folder Setup bakal muncul, ing ngendi path anyar ..\..\..\..\library\CMSIS\Include” bisa ditambahake, kaya ing ngisor iki.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 6

Langkah 3 (Opsional)
Kanggo nambah perpustakaan fungsi, klik tombol "Ngatur Project Items" minangka kapacak ing ngisor iki. Yen tombol ora katon, klik "Jendela → Reset View menyang Defaults → Reset", supaya konfigurasi jendhela IDE bali menyang setelan gawan. Sawise iki, tombol "Ngatur Item Proyek" bakal ditampilake.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 7

Tambah folder CMSIS-DSP nggunakake tombol minangka ditampilake ing kothak abang ngisor lan pindhah ing folder CMSIS nggunakake tombol "Pindhah Up". Nutup jendhela Manage Project tems yen wis rampung.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 8

Langkah 4
Klik kaping pindho folder CMSIS-DSP ing sisih kiwa (yen Langkah 3 dilewati, pilih folder apa wae kayata Panganggo utawa CMSIS, lsp.), banjur tambahake perpustakaan fungsi CMSIS-DSP. Pilih \library\CMSIS\Lib\ARM\arm_cortexM0l_math.lib kanggo M0+ utawa \library\CMSIS\Lib\ARM \arm_cortexM3l_math.lib kanggo M3. Sawise rampung, perpustakaan fungsi arm_cortexMxl_math.lib bakal ditampilake ing folder CMSIS-DSP, minangka kapacak ing ngisor iki.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 9

Langkah 5
Tambah sirah file "arm_math.h" menyang main.c, minangka kapacak ing ngisor iki. Saiki kabeh setelan integrasi wis rampung

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 10

Filter Low-Pass - FIR

Bagean iki, kanthi ngenalake aplikasi\CMSIS_DSP\arm_fir_example, bakal nduduhake carane nyetel Filter FIR lan mbusak sinyal frekuensi dhuwur nggunakake FIR. Sinyal input dumadi saka gelombang sinus 1kHz lan 15kHz. Sinyal sampfrekuensi ling punika 48 kHz. Sinyal ing ndhuwur 6kHz disaring dening FIR lan sinyal 1kHz minangka output. Kode aplikasi dipérang dadi sawetara bagéan.

  1. Initialization. Kanggo miwiti FIR, API ing ngisor iki digunakake.
    void arm_fir_init_f32 (arm_fir_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize);
    S: struktur filter FIR
    angka: Jumlah Filter stages (jumlah koefisien saringan). Ing mantan ikiample, numTaps=29.
    Coffs: Koefisien Filter. Ana 29 koefisien panyaring ing ex ikiample kang diwilang dening MATLAB.
    status: Indikator status
    blockSize: Nggantosi nomer samples diproses ing siji wektu.
  2. Filter low pass. Kanthi nelpon API saka FIR, 32 samples diproses saben wektu lan ana 320 samples ing total. API sing digunakake kapacak ing ngisor iki.
    void arm_fir_f32 (const arm_fir_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: struktur filter FIR
    pSrc: sinyal input. Sinyal campuran 1kHz lan 15kHz minangka input ing ex ikiample. pDst: Sinyal output. Sinyal output sing dikarepake yaiku 1kHz. blockSize: Nggantosi nomer samples diproses ing siji wektu.
  3. Verifikasi data. Asil nyaring sing dipikolehi MATLAB dianggep minangka referensi lan asil nyaring sing dipikolehi CMSIS-DSP minangka nilai sing nyata. Bandingake loro asil kanggo verifikasi apa asil output bener utawa ora. float arm_snr_f32(float *pRef, float *pTest, uint32_t buffSize)
    Pref: Nilai referensi digawe dening MATLAB.
    kirim: Nilai nyata kui dening CMSIS-DSP.
    blockSize: Nggantosi nomer samples diproses ing siji wektu.
    Kaya sing dituduhake ing ngisor iki, Data Input nuduhake yen sinyal durung disaring lan Data Output nuduhake asil sing disaring. Sumbu Y nuduhake amplitude sinyal lan sampfrekuensi ling punika 48kHz, supaya X-sumbu nomer plus siji nggantosi wektu plus 20.833μs. Bisa ditemokake saka Gambar 12 lan Gambar 13 yen sinyal 15kHz diilangi lan mung sinyal 1kHz sing isih ana.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 11

Filter High-Pass - IIR
Bagean iki, kanthi ngenalake aplikasi\CMSIS_DSP\filter_iir_high_pass_example, bakal nduduhake carane nyetel Filter IIR lan mbusak sinyal frekuensi kurang nggunakake IIR. Sinyal input dumadi saka gelombang sinus 1Hz lan 30Hz. Sinyal sampfrekuensi ling punika 100Hz lan total 480 TCTerms sampLED. Sinyal ngisor 7Hz dibusak dening IIR.
Kode aplikasi dipérang dadi sawetara bagéan. 

  1.  Ana 480 samples. Sample 0~159 punika 30Hz gelombang sinus, sample 160~319 yaiku gelombang sinus 1Hz lan sample 320~479 yaiku gelombang sinus 30Hz.
  2. Initialization. Kanggo miwiti IIR, API ing ngisor iki digunakake. void arm_biquad_cascade_df1_init_f32 (arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *state));
    S: struktur filter IIR
    jumlah stages: Jumlah urutan kapindho stages ing saringan. Ing mantan ikiample, numtages=1.
    Coffs: Koefisien Filter. Ana 5 koefisien panyaring ing ex ikiample.
    status: Indikator status
  3. Filter dhuwur-pass. Kanthi nelpon API saka IIR, 1 sample diproses saben wektu lan ana 480 samples ing total. API sing digunakake kapacak ing ngisor iki. void arm_biquad_cascade_df1_f32 (const arm_biquad_casd_df1_inst_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: struktur filter IIR
    pSrc: sinyal input. Sinyal campuran 1Hz lan 30Hz minangka input ing ex ikiample.
    pDst: Sinyal output. Sinyal output sing dikarepake yaiku 30Hz.
    blockSize: Nggantosi nomer samples diproses ing siji wektu.
  4. Output asil. Sinyal input lan output dikirim menyang PC liwat print. Kaya sing dituduhake ing ngisor iki, Data Input nuduhake yen sinyal durung disaring lan Data Output nuduhake asil sing disaring. Sumbu Y nuduhake amplitude sinyal lan sampfrekuensi ling punika 100Hz, supaya X-sumbu nomer plus siji nggantosi wektu plus 10ms. Bisa ditemokake saka Gambar 14 lan Gambar 15 yen sinyal 1Hz diilangi lan mung sinyal 30Hz sing isih ana.

Pustaka HOLTEK HT32 CMSIS-DSP - Gambar 12

Pertimbangan

Pangguna kudu mbayar manungsa waé khusus kanggo ukuran memori sawise kompilasi nalika nggunakake perpustakaan fungsi CMSIS-DSP. Priksa manawa ora ana kebanjiran memori sadurunge nyoba.
Kesimpulan
CMSIS-DSP nduweni kabisan gedhe ing pangolahan sinyal lan pitungan matematika lan layak kanggo dipikirake kanthi serius dening pangguna.
Materi Referensi
Referensi websitus: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
Versi lan Informasi Modifikasi

Tanggal Pengarang Jeksa Agung bisa ngetokake Informasi Modifikasi
2022.06.02 Nulis, Liu V1.10 Ngowahi path download
2019.09.03 Allen, Wang V1.00 Versi Pertama

Penafian

Kabeh informasi, merek dagang, logo, grafis, video, klip audio, pranala lan item liyane katon ing iki websitus ('Informasi') mung kanggo referensi lan bisa diganti sawayah-wayah tanpa kabar sadurunge lan ing discretion saka Holtek Semiconductor Inc. lan perusahaan sing gegandhengan (sabanjuré 'Holtek', 'perusahaan', 'kita', ' kita' utawa 'kita'). Nalika Holtek ngupayakake akurasi Informasi babagan iki websitus, ora babar pisan Express utawa diwenehake dening Holtek kanggo akurasi Informasi. Holtek ora tanggung jawab kanggo kesalahan utawa bocor. Holtek ora bakal tanggung jawab kanggo karusakan apa wae (kalebu nanging ora winates ing virus komputer, masalah sistem utawa mundhut data) apa wae sing kedadeyan nalika nggunakake utawa gegayutan karo panggunaan iki. websitus dening pihak sembarang. Bisa uga ana pranala ing wilayah iki, sing ngidini sampeyan ngunjungi websitus perusahaan liyane. Iki websitus ora kontrol dening Holtek. Holtek ora tanggung jawab lan ora njamin apa wae Informasi sing ditampilake ing situs kasebut. Hyperlinks menyang liyane websitus ing resiko dhewe.
Watesan Tanggung Jawab
Ing kasus apa wae, Perusahaan ora perlu tanggung jawab kanggo kerugian utawa karusakan sing disebabake nalika ana sing ngunjungi websitus langsung utawa ora langsung lan nggunakake isi, informasi utawa layanan ing websitus.
Hukum Panguwasa
Penafian iki tundhuk marang hukum Republik China lan miturut yurisdiksi Pengadilan Republik China.
Nganyari saka Penafian
Holtek nduweni hak kanggo nganyari Penafian sawayah-wayah kanthi utawa tanpa kabar sadurunge, kabeh owah-owahan efektif langsung sawise dikirim menyang websitus.

logo HOLTEK

Dokumen / Sumber Daya

Pustaka HOLTEK HT32 CMSIS-DSP [pdf] Pandhuan pangguna
HT32, Pustaka CMSIS-DSP, Pustaka HT32 CMSIS-DSP, Pustaka

Referensi

Ninggalake komentar

Alamat email sampeyan ora bakal diterbitake. Kolom sing dibutuhake ditandhani *