HOLTEK logo Bibliyotèk HT32 CMSIS-DSP
Gid itilizatè
D/N: AN0538EN

Entwodiksyon

CMSIS se yon koòdone estanda lojisyèl devlope pa ARM ki gen non konplè Cortex Microcontroller Software Interface Standard. Avèk koòdone estanda sa a, devlopè yo ka itilize menm koòdone pou kontwole mikrokontwolè ki soti nan diferan founisè, kidonk diminye tan devlopman ak aprantisaj yo. Pou plis enfòmasyon, al gade nan ofisyèl CMSIS la websit: http://www.keil.com/pack/doc/CMSIS/General/html/index.html. Tèks sa a sitou dekri aplikasyon CMSIS-DSP nan seri mikro HT32 ki gen ladan konfigirasyon anviwònman, direksyon pou itilize, elatriye.

Deskripsyon Fonksyonèl

Karakteristik CMSIS-DSP
CMSIS-DSP, ki se youn nan konpozan CMSIS yo gen ladan karakteristik sa yo.

  1. Bay yon seri fonksyon pwosesis siyal jenerik dedye a Cortex-M la.
  2. Bibliyotèk fonksyon ARM bay gen plis pase 60 fonksyon.
  3. Sipòte q7, q15, q31
    (Remak) ak kalite done k ap flote (32-bit).
  4. Aplikasyon yo optimize pou seri enstriksyon SIMD ki disponib pou Cortex-M4/M7/M33/M35P.

Nòt: Nonmen q7, q15, ak q31 nan bibliyotèk fonksyon an reprezante 8, 16, ak 32bit pwen fiks yo.
Atik Bibliyotèk Fonksyon CMSIS-DSP
Bibliyotèk fonksyon CMSIS-DSP divize an kategori sa yo:

  1. Fonksyon matematik debaz, fonksyon matematik rapid, ak fonksyon matematik konplèks
  2. Fonksyon filtraj siyal
  3. Fonksyon matris
  4. Transfòme fonksyon
  5. Fonksyon kontwòl motè
  6. Fonksyon estatistik
  7. Fonksyon sipò
  8. Fonksyon entèpolasyon

Enstalasyon Anviwònman

Seksyon sa a pral prezante pyès ki nan konpitè ak lojisyèl yo itilize nan aplikasyon anample.
Materyèl
Malgre ke CMSIS-DSP sipòte seri HT32 konplè a, li sijere pou itilize yon MCU ki gen yon kapasite SRAM ki pi gwo pase 4KB kòm aplikasyon CMSIS-DSP ansyen.ample mande pou yon pi gwo gwosè SRAM. Tèks sa a pran ESK32-30501 kòm yon ansyenample ki itilize HT32F52352 la.
Lojisyèl
Anvan w itilize aplikasyon an examppremyèman, asire ke pi nouvo Holtek HT32 Firmware Bibliyotèk la te telechaje nan men ofisyèl Holtek. websit. Kote download yo montre nan Figi a
Dekonprese a file apre telechaje.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig

Telechaje kòd aplikasyon CMSIS-DSP atravè lyen ki anba a. Kòd aplikasyon an chaje kòm yon postal file ak non HT32_APPFW_xxxxx_CMSIS_DSP_vn_m.zip.
Download chemen: https://mcu.holtek.com.tw/ht32/app.fw/CMSIS_DSP/
La file règ nonmen yo montre nan Figi 2.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 2

Kòm kòd aplikasyon an pa gen bibliyotèk firmwèr files, itilizatè yo bezwen mete kòd aplikasyon an dekonprese ak bibliyotèk firmwèr files nan chemen ki kòrèk la anvan ou kòmanse konpilasyon. Kòd aplikasyon an file gen de dosye, ki se aplikasyon an ak bibliyotèk kote yo montre nan Figi 3. Mete de dosye sa yo nan anyè rasin bibliyotèk firmwèr la pou konplete. file konfigirasyon chemen jan yo montre nan Figi 4. Itilizatè yo kapab tou dekonprese kòd aplikasyon an ak bibliyotèk firmwèr konprese files nan menm chemen pou reyalize menm efè. Pou ansyen sa aample, anyè a pou CMSIS_DSP yo pral wè anba katab aplikasyon an apre dekonpresyon.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 3

File Estrikti

De dosye prensipal yo enkli nan kòd aplikasyon an file, bibliyotèk\CMSIS, ak aplikasyon\CMSIS_DSP, yo dekri endividyèlman anba a.
Sa ki nan katab bibliyotèk\CMSIS la se jan sa a.

Non Dosye Deskripsyon
DSP_Lib Kòd sous aplikasyon FW
DSP_Lib\Examples Gen plizyè estanda examples nan bibliyotèk fonksyon CMSIS-DSP ki bay ARM. Anviwònman yo pou pwojè sa yo egzekite nan yon fason simulation san yo pa bezwen yon MCU. Itilizatè yo ka byen vit aprann kijan pou yo itilize ansyen sa yoamples pa egzekite yo.
DSP_Lib\Sous Kòd sous bibliyotèk fonksyon CMSIS-DSP
Mete ladan l Tèt ki nesesè file lè w ap itilize bibliyotèk fonksyon CMSIS-DSP
Mete\arm_common_tables.h Deklarasyon varyab etalaj ekstèn (ekstèn)
Mete\arm_const_structs.h Deklarasyon konstan ekstèn
Mete\arm_math.h Sa a file trè enpòtan kòm koòdone pou itilize bibliyotèk fonksyon CMSIS-DSP. Apèl nan nenpòt API bibliyotèk fonksyon yo aplike atravè arm_math.h.
Lib\ARM Bibliyotèk fonksyon CMSIS-DSP pou ARMCC l arm_cortexM3l_math.lib (Cortex-M3, Little ndian) l arm_cortexM0l_math.lib (Cortex-M0 / M0+, Little endian)
Lib\GCC Bibliyotèk fonksyon CMSIS-DSP pou GCC l libarm_cortexM3l_math.a (Cortex-M3, Little ndian) l libarm_cortexM0l_math.a (Cortex-M0 / M0+, Little endian)

Dosye aplikasyon\CMSIS_DSP la gen plizyè CMSIS_DSP egzanpamples, ki sèvi ak seri HT32 MCU yo ak sipòte seri HT32 plen. Pwojè yo devlope lè l sèvi avèk Keil MDK_ARM.

Non Dosye Deskripsyon
arm_class_marks_example Demontre kijan pou jwenn valè maksimòm, valè minimòm, valè espere, devyasyon estanda, divèjans ak fonksyon matris.
arm_convolution_example Demontre teyorèm konvolusyon an atravè FFT konplèks ak fonksyon sipò.
arm_dotproduct_example Demontre kijan pou jwenn pwodwi pwen atravè miltiplikasyon ak adisyon vektè yo.
arm_fft_bin_example Demontre kijan pou kalkile fennèt enèji maksimòm (bin) nan domèn frekans siyal antre yo lè l sèvi avèk FFT konplèks, mayitid konplèks ak fonksyon modil maksimòm.
arm_fir_example Demontre kijan pou aplike filtraj pas ba lè l sèvi avèk FIR.
arm_graphic_equalizer_example Demontre kijan pou chanje kalite son lè l sèvi avèk regalis grafik la.
arm_linear_interp_example Demontre itilizasyon modil entèpolasyon lineyè ak modil matematik rapid.
arm_matrix_example Demontre kalkil korelasyon matris ki gen ladan transfòmasyon matris, miltiplikasyon matris, ak envès matris.
arm_signal_converge_example Demontre filtè pase-ba FIR oto-reglabl lè l sèvi avèk NLMS (Normalised Least Mean Square), FIR, ak modil matematik debaz yo.
arm_sin_cos_example Demontre kalkil trigonometrik.
bra_variance_egample Demontre kijan pou kalkile divèjans atravè matematik debaz ak fonksyon sipò.
filter_iir_high_pass_example Demontre kijan pou aplike filtraj pas-wo lè l sèvi avèk IIR.

Tès
Tèks sa a pral sèvi ak aplikasyon\CMSIS_DSP\arm_class_marks_example kòm tès la example. Anvan ou kòmanse tès la, tcheke si ESK32-30501 la te konekte oswa ou pa epi asire ke kòd aplikasyon an ak bibliyotèk firmwèr yo te mete nan bon kote. Louvri aplikasyon an\CMSIS_DSP\arm_class_marks_example katab epi egzekite _CreateProject.bat la  file, jan yo montre anba a. Apre sa, louvri MDK_ARMv5 la (oswa MDK_ARM pou Keilv4), pou jwenn ansyen sa a.ample sipòte seri a plen HT32. Louvri pwojè Project_52352.uvprojx paske yo itilize ESK32-30501.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 4

Apre ouvèti pwojè a, konpile (rakoursi kle "F7"), telechaje (rakoursi kle "F8"), debug (rakoursi kle "Ctrl + F5") epi egzekite (rakoursi kle "F5"). Rezilta ekzekisyon yo ka obsève lè l sèvi avèk varyab ki nan lis anba a.

Varyab Non Direksyon Done Deskripsyon Rezilta Egzekisyon
testMarks_f32 Antre Yon etalaj 20 × 4
testUnity_f32 Antre Yon etalaj 4 × 1
pwodiksyon tès la Sòti Pwodwi testMarks_f32 ak testUnity_f32 {188,229,210…}
mak_max Sòti Valè maksimòm eleman yo nan etalaj pwodiksyon tès la 364
min_marks Sòti Valè minimòm eleman yo nan etalaj pwodiksyon tès la 156
vle di Sòti Valè espere eleman yo nan etalaj pwodiksyon tès la 212.300003
std Sòti Devyasyon estanda eleman yo nan etalaj pwodiksyon tès la 50.9128189
var Sòti Divèjans eleman yo nan etalaj pwodiksyon tès la 2592.11523

Direksyon pou itilize 

Entegrasyon
Seksyon sa a pral prezante kijan pou entegre CMSIS-DSP nan pwojè itilizatè yo.
Etap 1
Premyèman, ajoute yon nouvo senbòl Defini lè mete pwojè a, "ARM_MATH_CM0PLUS" pou M0+ ak "ARM_MATH_CM3" pou M3. Anviwònman pwosedi: (1) Opsyon kle rakoursi sib "Alt+F7"), (2) Chwazi paj C/C++, (3) Ajoute yon nouvo definisyon nan opsyon Definisyon an, jan yo montre anba a.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 5

Etap 2
Pou ajoute yon chemen enkli, klike sou bouton an akote opsyon "Enkli Chemen" nan paj C/C++ la. Lè sa a, yon fenèt Enstalasyon Dosye ap parèt, kote yon nouvo chemen ..\..\..\..\library\CMSIS\Include” ka ajoute, jan yo montre anba a.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 6

Etap 3 (Si ou vle)
Pou ajoute bibliyotèk fonksyon an, klike sou bouton "Jere Pwojè Atik" jan yo montre anba a. Si bouton an pa wè, klike sou "Fenèt → Reyajiste View nan Default → Reyajiste”, pou konfigirasyon fenèt IDE a ap retounen nan paramèt default li yo. Apre sa, bouton "Jere Pwojè Atik" yo pral parèt.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 7

Ajoute katab CMSIS-DSP a lè l sèvi avèk bouton yo jan yo montre nan bwat wouj ki anba a epi deplase li anba katab CMSIS la lè l sèvi avèk bouton "Deplase moute". Fèmen fenèt Jere Pwojè tèm yo lè fini.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 8

Etap 4
Double-klike sou katab CMSIS-DSP sou bò gòch la (si etap 3 yo sote, chwazi nenpòt katab tankou Itilizatè oswa CMSIS, elatriye), epi ajoute bibliyotèk fonksyon CMSIS-DSP nan li. Chwazi \library\CMSIS\Lib\ARM\arm_cortexM0l_math.lib pou M0+ oswa \library\CMSIS\Lib\ARM \arm_cortexM3l_math.lib pou M3. Lè yo fini, yo pral montre bibliyotèk fonksyon arm_cortexMxl_math.lib nan katab CMSIS-DSP, jan yo montre anba a.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 9

Etap 5
Ajoute tèt la file "arm_math.h" nan main.c, jan yo montre anba a. Koulye a, tout paramèt entegrasyon yo te konplete

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 10

Filtre Low-Pass - FIR

Seksyon sa a, lè w prezante aplikasyon\CMSIS_DSP\arm_fir_example, pral demontre ki jan yo mete filtè a FIR epi retire siyal segondè-frekans lè l sèvi avèk FIR la. Siyal opinyon an konpoze de ond sinis 1kHz ak 15kHz. Siyal la sampfrekans ling se 48kHz. Siyal ki pi wo a 6kHz yo filtre pa FIR la ak siyal 1kHz yo pwodiksyon. Kòd aplikasyon an divize an plizyè pati.

  1. Inisyalizasyon. Pou inisyalize FIR, yo itilize API sa a.
    void arm_fir_init_f32 (arm_fir_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize);
    S: FIR filtre estrikti
    chif: Kantite filtre stages (kantite koyefisyan filtre). Nan ansyen sa aample, numTaps=29.
    Coffs: koyefisyan filtre. Gen 29 koyefisyan filtre nan ansyen sa aample ki kalkile pa MATLAB.
    eta: Endikatè estati
    blockSize: Reprezante kantite samples trete nan yon sèl fwa.
  2. Filtre pase ba. Lè w rele API nan FIR, 32 samples yo trete chak fwa epi gen 320 samples an total. API yo itilize yo montre anba a.
    void arm_fir_f32 (const arm_fir_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: FIR filtre estrikti
    pSrc: Siyal Antre. Yon siyal melanje nan 1kHz ak 15kHz se opinyon nan ansyen sa aample. pDst: Siyal Sòti. Siyal pwodiksyon espere se 1kHz. blockSize: Reprezante kantite samples trete nan yon sèl fwa.
  3. Verifikasyon done. Rezilta filtraj ke MATLAB te jwenn yo konsidere kòm referans epi rezilta filtraj CMSIS-DSP jwenn se valè aktyèl la. Konpare de rezilta yo pou verifye si rezilta pwodiksyon an kòrèk oswa ou pa. float arm_snr_f32(float *pRef, float *pTest, uint32_t buffSize)
    Pref: Valè referans ki te pwodwi pa MATLAB.
    pòs: Valè aktyèl ki te pwodwi pa CMSIS-DSP.
    blockSize: Reprezante kantite samples trete nan yon sèl fwa.
    Jan yo montre anba a, Done Antre montre ke siyal la poko filtre ak Done Sòti montre rezilta filtre a. Aks Y a reprezante amplititid nan siyal la ak s laampfrekans ling se 48kHz, kidonk nimewo a aks X plis youn reprezante tan plis 20.833μs. Li ka jwenn nan Figi 12 ak Figi 13 ke siyal la 15kHz elimine epi sèlman siyal la 1kHz rete.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 11

Filtè High-Pass– IIR
Seksyon sa a, lè w prezante aplikasyon\CMSIS_DSP\filter_iir_high_pass_example, pral demontre ki jan yo mete filtè a IIR epi retire siyal frekans ba lè l sèvi avèk IIR la. Siyal la antre konpoze de ond sinis 1Hz ak 30Hz. Siyal la sampfrekans ling se 100Hz ak yon total de 480 pwen yo se sampdirije. Siyal ki anba a 7Hz yo retire pa IIR la.
Kòd aplikasyon an divize an plizyè pati. 

  1.  Gen 480 samples. Sample 0 ~ 159 se 30Hz vag sinis, sample 160 ~ 319 se vag sinis 1Hz ak sample 320 ~ 479 se vag sinis 30Hz.
  2. Inisyalizasyon. Pou inisyalize IIR a, yo itilize API sa a. void arm_biquad_cascade_df1_init_f32 (arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *eta));
    S: estrikti filtre IIR
    sòm stages: Nimewo a nan dezyèm lòd stages nan filtè a. Nan ansyen sa aample, numStages=1.
    Coffs: koyefisyan filtre. Gen 5 koyefisyan filtre nan ansyen sa aample.
    eta: Endikatè estati
  3. High-pass filtè. Lè w rele API IIR a, 1 sample ap trete chak fwa epi gen 480 samples an total. API yo itilize yo montre anba a. void arm_biquad_cascade_df1_f32 (const arm_biquad_casd_df1_inst_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: estrikti filtre IIR
    pSrc: Antre siyal. Yon siyal melanje nan 1Hz ak 30Hz se opinyon nan ansyen sa aample.
    pDst: Siyal Sòti. Siyal pwodiksyon espere se 30Hz.
    blockSize: Reprezante kantite samples trete nan yon sèl fwa.
  4. Pwodiksyon rezilta. Antre ak pwodiksyon siyal yo soti nan PC a atravè enprime. Jan yo montre anba a, Done Antre montre ke siyal la poko filtre ak Done Sòti montre rezilta filtre a. Aks Y a reprezante amplititid nan siyal la ak s laampfrekans ling se 100Hz, kidonk nimewo a aks X plis youn reprezante tan plis 10ms. Li ka jwenn nan Figi 14 ak Figi 15 ke siyal la 1Hz elimine epi sèlman siyal la 30Hz rete.

Bibliyotèk HOLTEK HT32 CMSIS-DSP - Fig 12

Konsiderasyon

Itilizatè yo ta dwe peye atansyon espesyal sou gwosè memwa a apre konpile lè w ap itilize bibliyotèk fonksyon CMSIS-DSP la. Asire w ke pa gen okenn debòde memwa rive anvan tès la.
Konklizyon
CMSIS-DSP a gen gwo kapasite nan pwosesis siyal ak kalkil matematik epi li merite pou itilizatè yo konsidere seryezman.
Materyèl referans
Referans websit: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
Vèsyon ak enfòmasyon modifikasyon

Dat Otè Pwoblèm Enfòmasyon sou modifikasyon
2022.06.02 Ekri, Liu V1.10 Modifye chemen download la
2019.09.03 Allen, Wang V1.00 Premye vèsyon

Limit responsabilite nou

Tout enfòmasyon, mak, logo, grafik, videyo, klip odyo, lyen ak lòt bagay ki parèt sou sa a. websit ("Enfòmasyon") yo se pou referans sèlman epi yo ka chanje nenpòt ki lè san avètisman alavans ak nan diskresyon Holtek Semiconductor Inc. ak konpayi ki gen rapò ak li yo (ki aprè 'Holtek', 'konpayi an', 'nou', '. nou' oswa 'nou'). Pandan ke Holtek fè efò asire presizyon nan Enfòmasyon sou sa a websit, pa gen okenn garanti eksprime oswa enplisit pa Holtek bay presizyon nan enfòmasyon an. Holtek pa dwe pote okenn responsablite pou nenpòt ki kòrèk oswa flit. Holtek pa dwe responsab pou nenpòt domaj (ki gen ladan men pa limite a viris òdinatè, pwoblèm sistèm oswa pèt done) kèlkeswa sa ki rive nan itilize oswa an koneksyon avèk itilizasyon sa a. websit pa nenpòt pati. Ka gen lyen nan zòn sa a, ki pèmèt ou vizite a websit lòt konpayi yo. Sa yo websit yo pa kontwole pa Holtek. Holtek p ap pote okenn responsablite ak okenn garanti pou nenpòt enfòmasyon ki parèt nan sit sa yo. Hyperlinks nan lòt websit yo sou pwòp risk ou.
Limitasyon Responsablite
Nan nenpòt ka, Konpayi an pa gen okenn bezwen pran responsablite pou nenpòt pèt oswa domaj ki te koze lè nenpòt moun vizite la websit dirèkteman oswa endirèkteman epi sèvi ak sa ki, enfòmasyon oswa sèvis sou la websit.
Lwa k ap dirije
Limit responsabilite nou sa a sibi lwa yo nan Repiblik Lachin nan ak anba jiridiksyon Tribinal la nan Repiblik Lachin nan.
Mizajou nan Limit responsabilite nou
Holtek rezève dwa pou mete ajou Limit responsabilite nou an nenpòt ki lè avèk oswa san avètisman davans, tout chanjman yo efektif imedyatman apre yo fin poste nan websit.

HOLTEK logo

Dokiman / Resous

Bibliyotèk HOLTEK HT32 CMSIS-DSP [pdfGid Itilizatè
HT32, CMSIS-DSP Bibliyotèk, HT32 CMSIS-DSP Bibliyotèk, Bibliyotèk

Referans

Kite yon kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo make *