scieee Science in your language
[en] (orig)

Music quartet based on a PSoC

Abstract

This report details the migration process of the Quartet code from a Microchip PIC24 microcontroller, which was previously migrated by Pau Mendieta from a Microchip PIC18 microcontroller, to a CY8CKIT-042-BLE PSoC 4 microcontroller manufactured by Cypress Semiconductor. It also explains how several improvements, both in sound quality and program functionality, have been implemented into the final program once the migration was completed. The original Quartet code, developed by Victor Timofeev, synthesized 4 different voices (two guitars, a violin and a bass) coordinated by a conductor task, each of which played from its own music sheet, which was stored in ROM. The sound samples were generated using amplitude modulation: the characteristic waveform of the instrument (also stored in ROM) and its amplitude envelope (generated through software) were multiplied, and later exported through an 8-bit PWM running at 78 kHz. These could later be played on speakers with the help of an RC filter. The project was carried out by continuously testing the software on the actual microcontroller. Moreover, data was extracted from these tests and compared with the simulation of Pere Domenech’s PIC18 code. A great use of the example projects provided by Cypress Semiconductor, which demonstrate the features of the PSoC 4 through simple applications, has also been made. It was also essential to analyze different signals with an oscilloscope at the laboratory. The program obtained after completing the project exports the audio signal through a 16-bit PWM running at 92 kHz and includes an extra voice (a second violin), more accurate characteristic waveforms and improved amplitude envelopes, as well as added functionality, such as an extra octave and a wider note frequency range. The report first presents the basic operation of the original code, which was carefully studied at the beginning of the project. Then, it explains how the OS (FreeRTOS) and the program were migrated, along with the extensive troubleshooting process that followed. Moreover, it details the improvements that were made once the code worked correctly. Finally, suggestions are made for future improvements.

Read accessible full text

Music quartet based on a PSoC

Author: Martinez Garcia, Antonio
Publisher: Universitat Politècnica de Catalunya
Year: 2018
Source: https://upcommons.upc.edu/bitstream/2117/115480/1/tfg-report-antonio-martinez.pdf
Final Deg ee P ojec
Bachelo 's deg ee in Indus ial Technology
Enginee ing
Music Qua e based on a PSoC
REPORT
Au ho : An onio Ma ínez Ga cía
Di ec o : Manuel Mo eno Eguilaz
Submission: Janua y 2017
Escola Tècnica Supe io
d’Enginye ia Indus ial de Ba celona
Music qua e based on a PSoC Page 1
Abs ac
This epo de ails he mig a ion p ocess o he Qua e code om a Mic ochip PIC24
mic ocon olle , which was p e iously mig a ed by Pau Mendie a om a Mic ochip PIC18
mic ocon olle , o a CY8CKIT-042-BLE PSoC 4 mic ocon olle manu ac u ed by Cyp ess
Semiconduc o . I also explains how se e al imp o emen s, bo h in sound quali y and
p og am unc ionali y, ha e been implemen ed in o he inal p og am once he mig a ion was
comple ed.
The o iginal Qua e code, de eloped by Vic o Timo ee , syn hesized 4 di e en oices
( wo gui a s, a iolin and a bass) coo dina ed by a conduc o ask, each o which played
om i s own music shee , which was s o ed in ROM. The sound samples we e gene a ed
using ampli ude modula ion: he cha ac e is ic wa e o m o he ins umen (also s o ed in
ROM) and i s ampli ude en elope (gene a ed h ough so wa e) we e mul iplied, and la e
expo ed h ough an 8-bi PWM unning a 78 kHz. These could la e be played on speake s
wi h he help o an RC il e .
The p ojec was ca ied ou by con inuously es ing he so wa e on he ac ual
mic ocon olle . Mo eo e , da a was ex ac ed om hese es s and compa ed wi h he
simula ion o Pe e Domenech’s PIC18 code. A g ea use o he example p ojec s p o ided
by Cyp ess Semiconduc o , which demons a e he ea u es o he PSoC 4 h ough simple
applica ions, has also been made. I was also essen ial o analyze di e en signals wi h an
oscilloscope a he labo a o y.
The p og am ob ained a e comple ing he p ojec expo s he audio signal h ough a 16-bi
PWM unning a 92 kHz and includes an ex a oice (a second iolin), mo e accu a e
cha ac e is ic wa e o ms and imp o ed ampli ude en elopes, as well as added unc ionali y,
such as an ex a oc a e and a wide no e equency ange.
The epo i s p esen s he basic ope a ion o he o iginal code, which was ca e ully s udied
a he beginning o he p ojec . Then, i explains how he OS (F eeRTOS) and he p og am
we e mig a ed, along wi h he ex ensi e oubleshoo ing p ocess ha ollowed. Mo eo e , i
de ails he imp o emen s ha we e made once he code wo ked co ec ly. Finally,
sugges ions a e made o u u e imp o emen s.
Page 2 Repo
Con en s
ABSTRACT _______________________________________________________ 1
CONTENTS _______________________________________________________ 2
1. GLOSSARY ___________________________________________________ 5
2. PREFACE ____________________________________________________ 6
2.1. P io wo ks ela ed o his p ojec ..............................................................................6
2.2. Mo i a ion ..................................................................................................................7
2.3. P e ious equi emen s ..............................................................................................7
3. INTRODUCTION _______________________________________________ 8
3.1. Objec i es .................................................................................................................8
3.2. Scope o he p ojec ..................................................................................................8
4. BASIC QUARTET OPERATION __________________________________ 10
4.1. The Conduc o ........................................................................................................10
4.2. The Ins umen s ......................................................................................................10
4.3. The Syn hesize ......................................................................................................11
4.4. Pulse Wid h Modula ion ..........................................................................................13
5. SOFTWARE MIGRATION _______________________________________ 14
5.1. F eeRTOS mig a ion...............................................................................................14
5.2. F eeRTOS con igu a ion .........................................................................................14
5.2.1. Co-ope a i e schedule .................................................................................................... 14
5.3. In oducing he TCPWM block ................................................................................15
5.4. Qua e code mig a ion ...........................................................................................16
5.4.1. Changes made o he ampli ude modula ion .................................................................. 16
5.4.2. Changes made o he PWM ............................................................................................ 17
6. QUARTET TROUBLESHOOTING ________________________________ 18
6.1. Adjus ing emp_dac ................................................................................................19
6.2. Inc easing clock speed ...........................................................................................20
6.3. Ex ac ing da a om he PSoC 4 ............................................................................21
6.4. Compa ison be ween PSoC 4 and PIC18 ..............................................................23
6.4.1. Tes ing condi ions ............................................................................................................ 23
6.4.2. S2. ................................................................................................................................... 24
6.4.3. Temp1 .............................................................................................................................. 25
6.4.4. S2. ................................................................................................................................... 25
6.4.5. Temp2 .............................................................................................................................. 26
6.4.6. Temp_dac ........................................................................................................................ 27
Music qua e based on a PSoC Page 3
6.4.7. Compa ison conclusions ................................................................................................. 27
6.5. Tempo al analysis .................................................................................................. 28
6.5.1. PWM equency e i ica ion ............................................................................................ 28
6.5.2. In e up equency .......................................................................................................... 28
6.5.3. Time implemen a ion...................................................................................................... 29
6.5.4. In e up equency e i ica ion ........................................................................................ 30
6.5.5. Tickless idle ..................................................................................................................... 32
6.6. Final co ec ions ..................................................................................................... 33
6.6.1. PWM block a ia ion ....................................................................................................... 33
6.6.2. Sound quali y co ec ion .................................................................................................. 34
7. QUARTET IMPROVEMENTS ___________________________________ 35
7.1. 16-bi PWM ............................................................................................................ 35
7.2. New ampli ude en elopes ...................................................................................... 36
7.3. Wa e o m ables wi h 128 da a poin s ................................................................... 39
7.3.1. Da a in e pola ion ............................................................................................................ 39
7.3.2. Da a eading me hod ....................................................................................................... 40
7.3.3. P og am modi ica ions .................................................................................................... 40
7.4. Wa e o m ables wi h 256 da a poin s ................................................................... 41
7.4.1. In e pola ed da a .............................................................................................................. 41
7.4.2. Code modi ica ions .......................................................................................................... 43
7.5. Wa e o m ables wi h 512 da a poin s ................................................................... 43
7.6. B oadening he no e equency ange ................................................................... 44
7.6.1. Du a ion modi ica ions ..................................................................................................... 44
7.6.2. Change in o he in ege ype ........................................................................................... 44
7.6.3. Command e-s uc u e .................................................................................................... 44
7.7. Adding an ex a oc a e .......................................................................................... 45
7.8. Adding an ex a oice ............................................................................................ 46
7.8.1. No elis and sound channel ............................................................................................. 46
7.8.2. Syn hesize modi ica ions ................................................................................................ 46
7.8.3. F eeRTOS ela ed modi ica ions .................................................................................... 47
8. FINAL QUARTET ANALYSIS ___________________________________ 50
8.1. Resou ce usage (4 oices) .................................................................................... 50
8.2. Tempo al analysis (4 oices) ................................................................................. 50
8.2.1. PWM equency ............................................................................................................... 50
8.2.2. In e up equency .......................................................................................................... 51
8.2.3. Tempo ............................................................................................................................. 51
8.2.4. Compu a ional e o o syn hesizing a sound sample .................................................... 52
8.2.5. Compu a ional e o o adjus ing emp_dac ................................................................... 53
8.2.6. Command p ocessing ..................................................................................................... 54
8.3. Resou ce usage (5 oices) .................................................................................... 55
8.4. Tempo al analysis (5 oices) ................................................................................. 55

Page 4 Repo
8.4.1. In e up du a ion .............................................................................................................. 55
9. FUTURE IMPROVEMENTS _____________________________________ 56
9.1. Blue oo h .................................................................................................................56
9.2. U ilizing ha dwa e blocks ........................................................................................56
9.3. Adding new ins umen s .........................................................................................56
9.4. Mul iple sound ou pu s ............................................................................................57
9.5. Widening he ange o no e du a ions .....................................................................57
10. PLANNING __________________________________________________ 58
11. BUDGET ____________________________________________________ 59
12. ENVIRONMENTAL IMPACT _____________________________________ 60
CONCLUSION ____________________________________________________ 61
BIBLIOGRAPHY __________________________________________________ 62
Music qua e based on a PSoC Page 5
1. Glossa y
BLE: Blue oo h Low Ene gy
BPM: Bea s Pe Minu e
CAN: Con olle A ea Ne wo k
CPU: Cen al P ocessing Uni
DAC: Digi al o Analog Con e e
IDE: In eg a ed De eloping En i onmen
ISR: In e up Se ice Rou ine
LED: Ligh -Emi ing Diode
OS: Ope a ing Sys em
PIC: Pe iphe al In e ace Con olle
PSoC: P og ammable Sys em on a Chip
PWM: Pulse Wid h Modula ion/Modula o
RC: Resis o -Capaci o
RF: Radio F equency
ROM: Read-Only Memo y
RTOS: Real Time Ope a ing Sys em
SCB: Se ial Communica ion Block
SRAM: S a ic Random Access Memo y
TCPWM: Time Coun e Pulse Wid h Modula o
UART: Uni e sal Asynch onous Recei e -T ansmi e
UDB: Uni e sal Digi al Block
USB: Uni e sal Se ial Bus
Page 6 Repo
2. P e ace
2.1. P io wo ks ela ed o his p ojec
The o igin o his p ojec goes back o Vic o Timo ee ’s usage example o he OSA RTOS
[1]. Timo ee designed a p og am, which he named “Qua e ”, ha was able o syn hesize a
4-channel melody and expo i using an 8-bi PWM unning a 78 kHz so ha , wi h he help
o an RC il e , i could be played on speake s o headphones. The o iginal code was w i en
o a PIC16 mic ocon olle and used he OSA RTOS as an ope a ing sys em.
In 2015 Pe e Domenech, a s uden a ETSEIB (Escola Tècnica Supe io d’Enginye ia
Indus ial de Ba celona), succeeded in mig a ing Timo ee ’s code so ha i could be
execu ed using a PIC18 mic ocon olle [2]. He chose his mic ocon olle in pa icula
because i is widely a ailable a he Depa men o Elec onics a said uni e si y.
Two yea s la e ano he s uden , Pau Mendie a, mig a ed Pe e Domenech’s code so ha a
PIC24 could un i [3]. This mean a change om an 8-bi CPU o a 16-bi CPU and,
he e o e, he expec ed o imp o e he sound quali y by inc easing he PWM esolu ion. In
he end, howe e , only a 9-bi PWM unning a 31.25 kHz was achie ed and, hus, he audio
quali y did no imp o e signi ican ly. He also made he necessa y changes so ha he code
could un on F eeRTOS [4], a mo e uni e sal ope a ing sys em which is easie o mig a e.
O he ela ed p ojec s include Juan Gallos a’s RF Music Fes i al: o ques a basada en
mic ocon olado es PIC18 y RF [5] and Joan Cal e ’s CAN Music Fes i al: O ques a
Basada en Mic ocon olado s PIC18 i un bus CAN [6]. The o me designed a musical
o ches a whe e each ins umen was indi idually syn hesized by ou di e en PIC18
mic ocon olle s and he conduc o sen commands o no es o each ins umen h ough RF.
The la e pu sued he same objec i e, bu using a CAN bus ins ead o RF as a means o
communica ion.
Music qua e based on a PSoC Page 7
2.2. Mo i a ion
The easons ha jus i ied he c ea ion o his p ojec a e he ollowing:
 Lea n how o p og am a mic ocon olle in C language.
 Lea n how o use a PSoC and ge amilia ized wi h i s speci ic IDE.
 Unde s and how a RTOS, mo e speci ically F eeRTOS, wo ks.
 Apply he knowledge and skills lea ned in an enginee ing deg ee o a mo e p ac ical
case.
 Upg ade an exis ing code so ha i p oduces an imp o ed esul .
 Lea n a me hod o syn hesizing music.
 Deepen he pe sonal knowledge in he ields o elec onics, p og amming and
music.
2.3. P e ious equi emen s
Since he o iginal code is w i en in C language, i is essen ial o ha e a ce ain deg ee o
unde s anding o his p og amming language be o e he ac ual p ojec can begin. In his
case, an in oduc o y u o ial was consul ed [7]. Knowing he basics o digi al elec onics is
also necessa y.
Mo eo e , one has o amilia ize hemsel es wi h he PSoC speci ic IDE, PSoC C ea o 4.1
[8], in o de o de elop he code, ans e i o he p ocesso and manage he chip’s
con igu able ha dwa e blocks. Wi h ega d o hese componen s, some o hei da ashee s
ha e o be s udied ca e ully, namely he PWM [9], TCPWM [10], SCB [11], Clock [12],
In e up [13] and Pins [14] componen s.
In addi ion, i is impo an o s udy he pin dis ibu ion on he ki [15] whene e cable
connec ions ha e o be made and o unde s and he undamen al beha io and
cha ac e is ics o he F eeRTOS ope a ing sys em [16].
Page 14 Repo
5. So wa e mig a ion
5.1. F eeRTOS mig a ion
The mig a ion p ocess began by es ing an example p ojec p o ided by Cyp ess
Semiconduc o in which F eeRTOS was speci ically implemen ed o he PSoC 4 BLE [17].
The p ojec was buil using PSoC C ea o 4.1 [8].
This example basically de ec s when he SW2 swi ch o he CapSense Slide a e p essed
and sends a message h ough one UART acco dingly. Once es ed co ec ly i was possible
o mo e on o he con igu a ion o he OS.
5.2. F eeRTOS con igu a ion
Fo he Qua e code o wo k co ec ly i is necessa y o change some pa ame e s inside he
F eeRTOS con igu a ion. This is done by edi ing he F eeRTOSCon ig.h heade ile. Apa
om disabling p e-emp ion (see sec ion 5.2.1), a i s all o he op ions we e le a hei
de aul se ing.
5.2.1. Co-ope a i e schedule
F eeRTOS allows he p e-emp ion o asks, which means ha du ing a ick in e up ( he
OS’s own so wa e-gene a ed in e up ) a highe p io i y ask can o ce he unning ask ou
o unning s a e, eplacing i .
In case o he Qua e code, a con ex swi ch (changing which ask is unning) only happens
when he ins umen s en e he blocked s a e o wai o he conduc o o gi e a semapho e
o hem. The e o e, he co-ope a i e ask schedule was chosen, which is equi alen o
disabling p e-emp ion.

Music qua e based on a PSoC Page 15
5.3. In oducing he TCPWM block
The nex logical s ep in he mig a ion p ocess is o es he PSoC 4’s TCPWM block and
unde s and how i wo ks. In o de o do his, a TCPWM example p o ided by Cyp ess
Semiconduc o was consul ed [18].
In his example p ojec , he b igh ness o a LED is con olled using he TCPWM block. Once
i was success ully es ed in sepa a e, all necessa y code and con igu a ion was hen mo ed
o he F eeRTOS example o check i bo h p ojec s we e compa ible. Mo e speci ically, i
was necessa y o:
- Replace all p e iously exis ing blocks in he TopDesign.cysch ile wi h he TCPWM
block (see Fig. 5.2).
- Enable he in e up componen linked o he TCPWM block (TC_ISR). This is done
using he ollowing command in he main() unc ion:
TC_ISR_S a Ex(In e up Handle );
- S a he TCPWM componen and con igu e i s pa ame e s. This is also done in he
main() unc ion, e en hough he la e can also be done by di ec ly edi ing he
block’s p ope ies:
PWM_S a ();
PWM_W i ePe iod(65300u);
- Edi he ISR unc ion so ha i handles he TC_ISR in e up (see Fig. 5.1).
- Remo e unnecessa y code om he i s example.
Figu e 5.1: ISR unc ion ha handles he TCPWM in e up . Sou ce: [18]
Page 16 Repo
Figu e 5.2: TCPWM block, loca ed in he TopDesign.cysch ile, which con ols he b igh ness o a g een
LED. Sou ce: [18]
A e comple ing hese s eps, he TCPWM example wo ked as expec ed inside he
F eeRTOS p ojec . Now ha he ope a ing sys em’s unc ions we e a ailable and he
TCPWM block was implemen ed, all in he same p ojec , i was possible o p oceed o he
mig a ion o he ac ual Qua e code.
5.4. Qua e code mig a ion
The i s s ep in he code mig a ion was o copy all Qua e -speci ic iles (sinus.h,
bach1067.h and elochka.h) in o he p ojec ’s olde . A e doing so, Pau Mendie a’s code [3]
had o be implemen ed in o he p ojec ’s main.c ile. Ne e heless, some modi ica ions we e
s ill necessa y.
5.4.1. Changes made o he ampli ude modula ion
As explained in he p e ious chap e , he inal s ep in he syn hesizing p ocess is o mul iply
wo signals, which was o iginally done using assembly language o mul iply wo a iables.
Since mig a ing his piece o code would no be i ial ( he assembly language would be
d as ically di e en ) and he PSoC 4’s p ocesso is mo e powe ul han he PIC24’s, his
ope a ion was implemen ed as a simple p oduc be ween wo a iables in C language,
which is mo e cos ly (compu a ionally).
Music qua e based on a PSoC Page 17
5.4.2. Changes made o he PWM
All o he code ela ed o he sound syn hesizing had o be in oduced in o he unc ion ha
handles he in e up s while espec ing he s uc u e seen in sec ion 5.3 (see Fig. 5.1). The
main di e ence is ha he in e up has o be clea ed a he s a o he unc ion and ha he
pulse wid h is modula ed wi h he PWM_W i eCompa e( emp_dac) command, whe e
emp_dac is he a iable ha holds he inal syn hesized sample o all 4 oices.
I is also impo an o i he pe iod o he PWM so ha i s equency ma ches he desi ed
alue. In o de o achie e a PWM equency o 78 kHz while using a 24 MHz clock, he
pe iod has o be 300 (see calcula ion below).
Page 18 Repo
6. Qua e oubleshoo ing
The aim o he mig a ion p ocess desc ibed in he p e ious chap e was o achie e he
same acous ic esul wi h he PSoC 4 as he one ob ained wi h he PIC mic ocon olle s.
The mig a ed p og am did p oduce sound, bu i was signi ican ly di e en han wha was
expec ed. The main issues we e:
- The sound was highly sa u a ed.
- The no es played by he p og am we e o a much highe equency han hey should
be.
- The melody could only be dis inguished when playing one ins umen a a ime. I
wo o mo e ins umen s we e played simul aneously hey ell ou o synch oniza ion
and he sound became dis o ed.
- The empo was a slowe han he o iginal.
- The sound had an o e all poo quali y.
In his chap e , he p ocess o de ec ing and sol ing he mis akes ha caused hese aul s
will be explained in de ail. This has been he mos challenging and ime-consuming pa o
he p ojec . Hence, o simpli y i , se e al cha ac e is ics o he esul ing sound (lis ed below)
ha e been e alua ed o e e y possible ix made o he p ojec , in acco dance wi h he
legend p esen ed in able 6.1.
- Cla i y: A highly sa u a ed audio signal has a loud c acking sound added o i
(simila o whi e noise). This makes i bo he some o lis en o and some imes e en
makes i di icul o iden i y he melody ha is being played. High cla i y will imply li le
sa u a ion and ice e sa.
- Accu acy o no e equency: Musical no es ha e a cha ac e is ic equency.
The e o e, a syn hesize ha wo ks co ec ly should gene a e an audio signal wi h
he equency o he desi ed no e.
- Quali y: This is a mo e subjec i e pa ame e . Highe quali y he e will imply a mo e
de ailed and ealis ic sound.
- Co ec in e ac ion be ween ins umen s: T oubleshoo ing is made easie by
analyzing a single oice, bu i is also impo an o check ha he sum o all 4 oices
plays co ec ly.
Music qua e based on a PSoC Page 19
Symbol
Meaning
+
Sligh imp o emen
++
Signi ican imp o emen
+++
C i ical imp o emen
/
No di e ence
-
Sligh wo sening
--
Signi ican wo sening
---
C i ical wo sening
?
No es ed
Table 6.1: Legend o he symbols used o desc ibe he imp o emen /wo sening o he audio esul
E alua ion ables a e always ela i e o he bes con igu a ion ha has been ound a a
pa icula poin . Ob iously, changes ha ha e a posi i e e ec on he esul a e kep and
hose ha do no a e disca ded.
6.1. Adjus ing emp_dac
A i s , i was hough ha emp_dac, he a iable ha holds he inal syn hesized sample,
was no p ope ly adjus ed o he ange o alues accep ed by he PWM. Since he PWM
pe iod was se o 300, any emp_dac alue ou side he ange o 0-300 would p oduce
unexpec ed esul s.
In he o iginal code, once all o he 4 oices we e added he esul was di ided by 4 and,
la e , an o se o 128 was added. This las ope a ion was done because he wa e o m
ables include nega i e alues. Howe e , since he mul iplica ion ope a ion used in his case
is sligh ly di e en , he alues p oduced by he mig a ed code we e o a highe o de , and
hus he a iable had o be di ided by a highe numbe .
Se e al combina ions o di iso and o se we e es ed and e alua ed empi ically. Wi h a
single ac i e oice, he bes esul was achie ed by di iding by 512 (shi ing 9 bi s o he
igh ) and adding an o se o 220. The sound became sligh ly less sa u a ed, bu mos o
he issues pe sis ed (see able 6.2). I was he e o e easonable o assume ha he e was a
mo e se ious p oblem wi h he mig a ed code ha emained unde ec ed and was

Page 20 Repo
esponsible o he poo quali y o he esul .
Cla i y
+
Accu acy
/
Quali y
/
Co ec in e ac ion
?
Table 6.2: Sound e alua ion a e adjus ing he emp_dac a iable
6.2. Inc easing clock speed
Be o e s a ing a mo e de ailed analysis o he mig a ed code’s beha io , i was decided ha
i would be in e es ing o inc ease he equency o he clock ha con ols he TCPWM
block. Un il now, i had been unning a he same equency as he ex e nal clock
(EXTCLK), 24 MHz.
Howe e , he TCPWM block allows clocks o ope a e up o a maximum o 48 MHz [10].
Choosing his clock speed means ha , i he same PWM equency is kep , he PWM pe iod
should now be 600, hus doubling i s esolu ion. In o he wo ds, he emp_dac a iable
would be able o hold double he amoun o di e en alues han i p e iously could. This
would be equi alen o a 9-bi esolu ion.
A e es ing his modi ica ion (see eco ding #1 o he annex), he quali y inc eased sligh ly
bu so did he sa u a ion (see able 6.3). S ill, o e all his e sion o he mig a ed code
sounded be e .
Cla i y
-
Accu acy
/
Quali y
+
Co ec in e ac ion
?
Table 6.3: Sound e alua ion a e inc easing he clock speed o 48 MHz
Music qua e based on a PSoC Page 21
6.3. Ex ac ing da a om he PSoC 4
Once he PWM esolu ion and he adjus men o he emp_dac a iable we e disca ded
om being esponsible o he majo sound issues, a mo e de ailed and comp ehensi e
analysis o he code’s beha io was deemed necessa y.
Up o his poin all da a had been ex ac ed om he PSoC using b eakpoin s in PSoC
C ea o 4.1. This p ocedu e was enough o check he s a e o a iables a ce ain poin s o
execu ion, bu i made sa ing la ge amoun s o da a almos impossible (sa ing da a om
each in e up , o example). The e o e, i was necessa y o ind ano he way o ex ac
in o ma ion.
This was done by ollowing an online u o ial ha demons a ed how o implemen he p in
C unc ion in o he PSoC (by de aul he unc ion compiles wi hou e o s, bu i does no hing
when called) [19].
Fi s , a UART (SCB mode) block was placed in o he TopDesign.cysch ile wi h i s s anda d
con igu a ion. Then, i was assigned o he co ec pins, P1.5 and P1.4 (see Fig. 6.1) and,
a e wa ds, a cable connec ion was made om P1.5 o P12.6 and om P1.4 o P12.7 (see
Fig. 6.2).
Figu e 6.1: Pin assignmen o he UART block. Sc eensho aken om PSoC C ea o 4.1.
Page 22 Repo
Figu e 6.2: PSoC 4 a e making he cable connec ions o he UART block (g een cables). Sou ce: own.
The ollowing s eps consis ed in inc easing he heap size, which is done in he “Sys em” ab
in he .cydw ile, and adding he _w i e() unc ion o he main.c ile (see Fig. 6.3). Mo eo e ,
he UART block has o be s a ed wi h he UART_S a () command.
Figu e 6.3: Addi ional code necessa y o he implemen a ion o he p in unc ion. Sou ce: [19].
Finally, he p og am PuTTY [20] was ins alled in o de o ecei e he in o ma ion ha he
PSoC would be ansmi ing h ough USB.
Music qua e based on a PSoC Page 23
6.4. Compa ison be ween PSoC 4 and PIC18
In o de o disco e wha had gone w ong in he mig a ion p ocess, a comp ehensi e
compa ison o he PSoC and PIC18’s beha io was done. The PSoC’s da a was ex ac ed
using he UART block (as seen in sec ion 6.3), while he PIC18 was analyzed by simula ing
Pe e Domenech’s code [2] wi h he use o MPLAB IDE [21].
6.4.1. Tes ing condi ions
Bo h sys ems we e es ed in he ollowing condi ions:
- Only one oice ( he iolin) was playing.
- The only no e played was b0 (in Qua e no a ion) wi h a base scale o 0 and a
du a ion o 4.
- The a iables whose alues we e s o ed o e e y in e up we e:
 S2. : Wo ks as an index o selec ing alues om he ables in sinus.h.
 emp1: Holds he alue ead om he ables in sinus.h.
 S2. : Inc eases by one e e y 64 in e up s and is used o gene a e he
ampli ude en elope.
 emp2: Holds he alue o he ampli ude en elope.
 emp_dac: Holds he alue a e he ampli ude modula ion and be o e i is
adjus ed.
Page 30 Repo
Some modi ica ions o he code in main.c we e also necessa y:
- The Time block has o be s a ed in main():
Time _S a ();
- The in e up associa ed wi h he ime has o be clea ed a he s a o he in e up
handle unc ion ( eplacing he PWM in e up ):
Time _Clea In e up (Time _INTR_MASK_TC);
The modi ied p ojec was es ed wi h posi i e esul s (see eco ding #2 o he annex): he
no e accu acy imp o ed signi ican ly, e en hough i was no ye co ec , and so did he
sound quali y (see able 6.4). S ill, he p og am did no sound as in ended.
Cla i y
/
Accu acy
++
Quali y
++
Co ec in e ac ion
?
Table 6.4: Sound e alua ion a e changing he in e up equency.
6.5.4. In e up equency e i ica ion
Jus as wi h he PWM, an oscilloscope was used o measu e he equency o in e up s. In
his case, howe e , an ou pu pin had o be con igu ed (see Fig. 6.12). I was ini ialized o 0
and was se o 1 (Ou pu PinSW_W i e(1u)) a he s a o he in e up handle unc ion and
back o 0 (Ou pu PinSW_W i e(0u)) a he end o i .
Figu e 6.12: So wa e ou pu pin in he TopDesign.cysch ile. Sou ce: Own.

Music qua e based on a PSoC Page 31
Figu e 6.13: Oscilloscope cap u e o he in e up signal. Sou ce: own.
In Fig. 6.13 he high le el ep esen s he amoun o ime spen inside an in e up . This
esul is qui e su p ising: No only is he in e up equency w ong (54 kHz), bu also he e is
a second, unexpec ed in e up ha happens almos immedia ely a e he i s .
A e u he es ing, i was concluded ha he OS was esponsible o his, because, i i was
disabled (by ne e s a ing he ask schedule ), he in e up beha io was pe ec ly co ec
(see Fig. 6.14).
Figu e 6.14: Oscilloscope cap u e o he in e up signal while F eeRTOS was disabled. Sou ce: own.
Page 32 Repo
6.5.5. Tickless idle
A e lea ning ha he OS was somehow in e e ing wi h he in e up s, i seemed
easonable o examine he F eeRTOS con igu a ion ile ca e ully. E e y hing seemed o be
in o de , excep o his line:
#de ine con igUSE_TICKLESS_IDLE 2
The F eeRTOS e e ence manual [23] was consul ed so as o lea n mo e abou i .
Appa en ly, i he ickless idle is ac i e (se o 1 o 2), and only he Idle ask ( he ask ha
uns when no o he asks a e able o) is unning, hen he mic ocon olle en e s a low
powe s a e. This means ha he ick in e up , du ing which he OS can selec a new ask o
en e he unning s a e, is s opped. This could explain he wei d beha io expe ienced
be o e.
Tes ing (see able 6.5) e ealed ha he in e ac ion be ween ins umen s was pe ec ly
co ec (see eco ding #3 o he annex): all o hem we e audible and synch onized. Sound
quali y also seemed o imp o e. As a downside, he e was mo e sa u a ion han be o e.
Cla i y
-
Accu acy
+
Quali y
++
Co ec in e ac ion
+++
Table 6.5: Sound e alua ion a e disabling he ickless idle.
The case o no e accu acy bea s special men ion. The oo o his issue lies in a mac o
called ‘Hz’ loca ed in elochka.h:
#de ine Hz *64L*256/10000
This mac o’s pu pose is o ansla e a equency measu ed in He z in o he numbe o
poin s in he sinus.h ables ha ha e o be skipped du ing each in e up . In o he wo ds: he
p og am is designed o be cohe en wi h he no e equencies only when he in e up
equency is 10 kHz. This is why he no es played a e now co ec .
Music qua e based on a PSoC Page 33
6.6. Final co ec ions
6.6.1. PWM block a ia ion
The sa u a ion no ed in he p e ious sec ion became wo ying, as he e was no way o
adjus ing he emp_dac a iable ha comple ely sol ed i . The e o e, a di e en block ha
could also wo k as a PWM was es ed. The TCPWM block ha was being used p e iously
was eplaced by he PWM block [9] (see Fig. 6.15).
Figu e 6.15: TopDesign.cysch ile o he main mig a ed p ojec a e eplacing he TCPWM block wi h a
PWM block. Sou ce: Adap a ion o [18] and [22].
The main disad an adge o his new block is ha he maximum clock equency i allows is
12 MHz. This means ha he PWM esolu ion will be lowe (a ound 7-8 bi s) because he
pe iod will necessa ily be lowe oo.
Page 34 Repo
Cla i y
+++
Accu acy
/
Quali y
---
Co ec in e ac ion
/
Table 6.6: Sound e alua ion a e swi ching he PWM block.
A e e alua ing he esul ing sound (see able 6.6), he sa u a ion disappea ed (see
eco ding #4 o he annex). Howe e , he quali y go signi ican ly wo se.
6.6.2. Sound quali y co ec ion
Fu he analysis o he code e ealed ha he sinus.h ables we e no being ead co ec ly
now. Mo e speci ically, he nega i e alues we e being con e ed in o posi i e ones. To
sol e his, all o he ables in sinus.h, along wi h he emp1 a iable, we e changed in o he
in ege ype (in he o iginal code hey belonged o he cha ac e ype).
Cla i y
/
Accu acy
/
Quali y
+++
Co ec in e ac ion
/
Table 6.7: Sound e alua ion a e changing he sinus.h ables in o he in ege ype.
A e e i ying ha he ables we e now being ead co ec ly, he sound was e-e alua ed
(see able 6.7). I seemed ha , wi h he inc ease in quali y achie ed, he sound esul was
inally equi alen o ha o he p e ious p ojec s (see eco ding #5 o he annex). The e o e,
he mig a ion p ocess had inished.
Music qua e based on a PSoC Page 35
7. Qua e imp o emen s
This chap e will be de o ed o explaining he imp o emen s made o he mig a ed Qua e
p og am. Mos o hem a e designed o imp o e sound quali y, bu some add ex a
unc ionali y o he p og am as well.
7.1. 16-bi PWM
The mos e ec i e way o imp o e sound quali y was o inc ease he PWM bi esolu ion. In
o de o do his, an exis ing p ojec by Ganesh Raaja was consul ed [24]. This p ojec
consis ed in achie ing a high esolu ion PWM by combining lowe esolu ion PWM blocks
(see Fig. 7.1).
Figu e 7.1: Implemen a ion o he 16-bi PWM. Sou ce: Adap a ion o [24].
The PWM1 block has wo 8-bi ou pu s wi h a di e ence in du y cycle o one clock. The
ou pu is selec ed by he ha dwa e cmp_sel signal, which is he ou pu signal o he PWM2
block. A 24 MHz clock is used o he PWM1 block (because i was he maximum equency
i allowed), while he PWM2 clock is he e minal coun ou pu om PWM1.

Page 36 Repo
The e a e also se e al unc ions ha need o be added o he code in main.c. The i s wo
a e he unc ions ha s a and s op he en i e 16-bi PWM (see Fig. 7.2).
Figu e 7.2: Func ions ha s a ( op) and s op (bo om) he 16-bi PWM. Sou ce: [24].
I is also necessa y o implemen he unc ion ha w i es he compa e alue (pulse wid h) o
he 16-bi PWM (see Fig. 7.3).
Figu e 7.3: Func ion ha w i es he compa e alue o he 16-bi PWM. Sou ce: [24].
The sound ha esul ed om in oducing he high esolu ion PWM imp o ed g ea ly when
compa ed o he p e ious e sion o he p og am (see eco ding #6 o he annex).
7.2. New ampli ude en elopes
The nex upg ade consis ed in changing he ampli ude en elopes along wi h he way hey
we e gene a ed. Ins ead o being c ea ed using simple ope a ions du ing in e up s, hey will
be s o ed in ROM, ha ing al eady been calcula ed p e iously. This will allow less linea
en elopes ha will gi e he sound a mo e na u al e olu ion.
Fig. 7.4, 7.5 and 7.6 show he o iginal and new ampli ude en elopes o e e y ins umen .
Music qua e based on a PSoC Page 37
Figu e 7.4: Compa ison be ween he o iginal and new ampli ude en elopes o he bass. Elabo a ed om
Vic o Timo ee ’s code.
Figu e 7.5: Compa ison be ween he o iginal and new ampli ude en elopes o he iolin. Elabo a ed om
Vic o Timo ee ’s code.
Figu e 7.6: Compa ison be ween he o iginal and new ampli ude en elopes o he gui a . Elabo a ed om
Vic o Timo ee ’s code.
Page 38 Repo
These new en elopes we e s o ed in a ays inside he sinus.h ile. Las ly, he code which
p e iously gene a ed he en elope had o be eplaced (see Fig. 7.7).
Figu e 7.7: Compa ison be ween he o iginal (le ) and new ( igh ) code inside he syn hesize ha deals
wi h he bass’s en elope. Adap ed om Vic o Timo ee ’s code.
The change in sound was sub le, bu when lis ening ca e ully i was e i ied ha he
ins umen s sounded mo e na u al (see eco ding #7 o he annex). In ac , he e ec can be
obse ed in he ac ual eco dings (see Fig. 7.8). The o iginal wa e o ms in he audio
eco ding we e mo e linea and a i icial, whe eas he new ones p esen mo e a iabili y.
Figu e 7.8: Compa ison be ween he 16-bi PWM eco ding wi h he o iginal en elopes ( op) and wi h he
new ones (bo om). Sou ce: own.
Music qua e based on a PSoC Page 39
7.3. Wa e o m ables wi h 128 da a poin s
Ano he way o imp o ing he sound quali y o he p og am is o inc ease he numbe o
da a poin s ha make up one pe iod o he cha ac e is ic wa e o m o e e y ins umen .
Mo e speci ically, he o iginal amoun o 64 alues will be doubled. The esul will be mo e
ealis ic sounding ins umen s.
7.3.1. Da a in e pola ion
The i s s ep in his p ocess is o in e pola e he o iginal da a poin s o c ea e a con inuous
unc ion. The o iginal alues we e p e iously ampli ied (mul iplied by 4) so ha he e was
oom o c ea e in e media e poin s. This was done o di e en pieces o he en i e se o
poin s, as inding a unc ion ha desc ibed he en i e wa e o m would be oo complica ed.
Fig. 7.9, 7.10 and 7.11 compa e he o iginal and new wa e o ms o e e y ins umen .
Figu e 7.9: Compa ison be ween he o iginal bass wa e o m and he new one wi h double he amoun o
da a poin s. Elabo a ed om Vic o Timo ee ’s da a in sinus.h.
Figu e 7.10: Compa ison be ween he o iginal iolin wa e o m and he new one wi h double he amoun
o da a poin s. Elabo a ed om Vic o Timo ee ’s da a in sinus.h.
Page 46 Repo
7.8. Adding an ex a oice
The las imp o emen made o he Qua e p og am consis ed in adding ano he oice. The
idea was o in oduce ano he iolin ha played an oc a e lowe han he o iginal one, hus
c ea ing a ha monized e ec be ween bo h (see eco ding #10 o he annex).
7.8.1. No elis and sound channel
The i s s ep was o copy he o iginal iolin no elis , ename i and se he oc a e o 2
ins ead o 3. Also, he swi ch o his new oice was c ea ed:
#de ine pin_ENABLE_VIOLIN2 1 // Swi ch iolin2 channel ON/OFF
Fu he mo e, a new sound channel had o be de ined:
TSound S5; // Fo channel 5 ( iolin2)
7.8.2. Syn hesize modi ica ions
Addi ional code had o be in oduced in o he in e up handle unc ion so ha he new oice
was co ec ly syn hesized (see Fig. 7.18 and 7.19).
Figu e 7.18: F agmen o code ha syn hesizes he sound sample o iolin2. Adap ed om Vic o
Timo ee ’s code.
Figu e 7.19: F agmen o code ha con ols he e olu ion o he indexes o he en elope ables. Adap ed
om Vic o Timo ee ’s code.

Music qua e based on a PSoC Page 47
7.8.3. F eeRTOS ela ed modi ica ions
The nex s eps, which we e mo e ela ed o he OS, consis ed in:
1. C ea ing a lag ha indica es ha iolin2 is playing (see Fig. 7.20). I was assigned o
he nex a ailable bi (0001 0000).
Figu e 7.20: De ini ion o lags o all 5 oices. Adap ed om Pau Mendie a’s code.
2. C ea ing a ask handle and a bina y semapho e o he new iolin2 ask (see Fig.
7.21).
Figu e 7.21: De ini ion o all ask handles and bina y semapho es o all 5 oices. Adap ed om Pau
Mendie a’s code.
3. De ining he new ask in he Task_De s.h ile (see Fig. 7.22).
Figu e 7.22: De ini ion o all asks in Task_De s.h. Adap ed om Pau Mendie a’s code.
Page 48 Repo
4. C ea ing he new ask and bina y semapho e in he main() unc ion (see Fig. 7.23).
The code o he new ask can be seen in Fig. 7.24.
Figu e 7.23: C ea ion o all asks and bina y semapho es. Adap ed om Pau Mendie a’s code.
Figu e 7.24: Violin2 ask. Adap ed om Pau Mendie a’s code.
5. Edi ing he conduc o ask so ha i gi es he semapho e o he iolin2 ask as well
(see Fig. 7.25).
Music qua e based on a PSoC Page 49
Figu e 7.25: Conduc o ask a e adding he ex a oice. Adap ed om Pau Mendie a’s code.
6. Re-adjus ing he emp_dac a iable.
Page 50 Repo
8. Final Qua e Analysis
A de ailed analysis o he inal imp o ed Qua e p og am, wi h and wi hou he ex a oice,
will be p esen ed in his chap e .
8.1. Resou ce usage (4 oices)
SRAM
8.984 KB (54.8%)
Flash
16.720 KB (12.8%)
S ack
1280 by es
Heap
1024 by es
UDB
50%
Table 8.1: Resou ces used by he inal imp o ed 4- oice Qua e p og am.
Table 8.1 shows he amoun o PSoC’s esou ces consumed by he inal p og am. The
SRAM and lash alues show ha he e is enough space o add mo e ins umen s o
imp o emen s. UDB, which measu es he amoun o digi al blocks used, shows ha
addi ional blocks could be included.
8.2. Tempo al analysis (4 oices)
8.2.1. PWM equency
Figu e 8.1: Oscilloscope cap u e o he inal PWM signal. Sou ce: own.
Music qua e based on a PSoC Page 51
The PWM equency, as shown in Fig. 8.1, has inc eased o 91.85 kHz because o he
in oduc ion o he high esolu ion PWM. Since i is highe han he o iginal (78 kHz), he e is
no p oblem wi h i .
8.2.2. In e up equency
Figu e 8.2: Oscilloscope cap u e o he inal in e up signal. Sou ce: own.
The in e up equency is app oxima ely 40 kHz (see Fig. 8.2), as was expec ed. The ime
spen in high le el is he du a ion o an in e up . The es o i is a ailable o he OS o ca y
ou i s own ope a ions, which in his case is mo e han enough.
8.2.3. Tempo
Figu e 8.3: Oscilloscope cap u e ha shows he ime be ween wo consecu i e eigh h no es. Sou ce:
own.

Page 52 Repo
The peaks shown in Fig. 8.3 ep esen he p ocessing o wo consecu i e eigh h no es.
The e o e, using he ime be ween hese wo no es (162.2 ms), he empo o he song can
be calcula ed:
8.2.4. Compu a ional e o o syn hesizing a sound sample
Figu e 8.4: Oscilloscope cap u e ha shows he amoun o ime equi ed o syn hesize a sound sample
o a single oice. Sou ce: own.
Fig. 8.4 shows ha i akes he p ocesso 1.8 µs o syn hesize one sound sample o he
bass. Assuming i akes mo e o less he same o syn hesize e e y oice, he p ocesso
would need a ound 7.2 µs o gene a e he sample o all 4 oices, which accoun s o 60%
o he o al in e up ime (see Fig. 8.2 o he o al in e up ime).
Music qua e based on a PSoC Page 53
8.2.5. Compu a ional e o o adjus ing emp_dac
Figu e 8.5: Oscilloscope cap u e ha shows he amoun o ime equi ed o adjus he emp_dac a iable.
Sou ce: own.
I is in e es ing o s udy he amoun o ime equi ed o adjus he emp_dac a iable
because in he inal p og am his is done using a ma hema ical di ision. This was no
possible in he PIC mic ocon olle s due o he high compu a ional cos o he ope a ion, so
ins ead i was done using he bina y igh shi ope a o (>>), which is equi alen o a di ision
by a powe o 2. The ma hema ical di ision, howe e , gi es mo e eedom when adjus ing
emp_dac, and hus allows mos o he PWM esolu ion o be u ilized.
Fig 8.5 e eals ha he ime spen making his adjus men is a ound 4.5 µs, 37% o he o al
in e up ime. The e o e, i clea ly is a cos ly ope a ion, e en hough in his case his is no a
p oblem due o how much ime is a ailable (in e up s ake only abou 50% o he a ailable
ime, as seen in Fig 8.2).
Page 54 Repo
8.2.6. Command p ocessing
Figu e 8.6: Oscilloscope cap u e showing he amoun o ime du ing which he ins umen s a e wai ing
o a command (high ol age). Sou ce: own.
The ime spen in low ol age in Fig 8.6 ep esen s he momen when he ins umen s a e
ecei ing a command om he conduc o . The es o i is spen wai ing o he command.
This shows how as commands a e p ocessed.
Music qua e based on a PSoC Page 55
8.3. Resou ce usage (5 oices)
SRAM
9.008 KB (55.0%)
Flash
17.624 KB (13.4%)
S ack
1280 by es
Heap
1024 by es
UDB
50%
Table 8.2: Resou ces used by he inal imp o ed 5- oice Qua e p og am.
As i can be seen in able 8.2, he addi ion o an ex a oice ba ely has an impac on he
esou ces consumed by he p og am.
8.4. Tempo al analysis (5 oices)
8.4.1. In e up du a ion
Figu e 8.7: Oscilloscope cap u e showing he in e up signal ( op, CH1) and he PWM signal (down,
CH2). Sou ce: own.
Fig. 8.7 shows ha an en i e in e up now las s 13.53 µs, which is 1.37 µs mo e han he 4-
oice e sion. The e is s ill enough ime o he OS o ca y ou i s asks.
Page 62 Repo
Bibliog aphy
[1] Vic o Timo ee , OSA RTOS, [h p://www.picosa.na od. u/].
[2] Pe e Domenech, Aplicaciones musicales del sis ema ope a i o en iempo eal OSA
RTOS, Ba celona 2015.
[3] Pau Mendie a, Audio applica ion based on F eeRTOS Ope a ing Sys em, Ba celona
2017.
[4] Real Time Enginee s L d., F eeRTOS O icial Websi e,
[h p://www. ee os.o g/RTOS.h ml]
[5] Juan Gallos a, RF Music Fes i al: o ques a basada en mic ocon olado es PIC18 y
RF, Ba celona 2015.
[6] Joan Cal e , CAN Music Fes i al: o ques a basada en mic ocon olado es PIC18 y
bus CAN, Ba celona 2016.
[7] Tu o ials Poin , C p og amming, [h ps://www. u o ialspoin .com/cp og amming/,
consul ed on Augus 2017].
[8] Cyp ess Semiconduc o Co po a ion, O icial PSoC C ea o Websi e,
[h p://www.cyp ess.com/p oduc s/psoc-c ea o -in eg a ed-design-en i onmen -ide]
[9] Cyp ess Semiconduc o Co po a ion, Pulse Wid h Modula o (PWM) 3.30 Componen
Da ashee , 2016.
[10] Cyp ess Semiconduc o Co po a ion, PSoC 4 Time Coun e Pulse Wid h Modula o
(TCPWM) 2.10 Componen Da ashee , 2016.
[11] Cyp ess Semiconduc o Co po a ion, PSoC 4 Se ial Communica ion Block (SCB) 4.0
Componen Da ashee , 2017.
[12] Cyp ess Semiconduc o Co po a ion, Clock 2.20 Componen Da ashee , 2017.
[13] Cyp ess Semiconduc o Co po a ion, In e up 1.70 Componen Da ashee , 2017.
[14] Cyp ess Semiconduc o Co po a ion, Pins 2.20 Componen Da ashee , 2017.
[15] Cyp ess Semiconduc o Co po a ion, CY8CKIT-042-BLE Quick S a Guide, 2015.
[16] Real Time Enginee s L d., Mas e ing he F eeRTOS™ Real Time Ke nel, 2016.
[17] Cyp ess Semiconduc o Co po a ion, F ee RTOS wi h PSoC 4 BLE,
[h ps://cyp ess.hacks e .io/42177/ ee- os-wi h-psoc-4-ble-82a61e, consul ed on
Augus 2017]
[18] Cyp ess Semiconduc o Co po a ion, TCPWM (PWM mode) example p ojec 2.0,

Music qua e based on a PSoC Page 63
2016.
[19] Alan Hawse, Implemen ing PSoC P in ,
[h ps://io expe .com/2017/05/10/implemen ing-psoc-p in /, consul ed on Oc obe
2017]
[20] Simon Ta ham, PuTTY, [h p://www.pu y.o g/, consul ed on Oc obe 2017]
[21] MICROCHIP TECHNOLOGY INC. MPLAB IDE.
[h p://www.mic ochip.com/pagehandle /en-us/ amily/mplabx/].
[22] Cyp ess Semiconduc o Co po a ion, TCPWM (Time /Coun e mode) example p ojec
3.0, 2016.
[23] Real Time Enginee s L d., The F eeRTOS™ Re e ence Manual, 2016.
[24] Ganesh Raaja, HIGH RESOLUTION HIGH FREQUENCY PWM IN PSOC4 BLE,
[h p://www.cyp ess.com/blog/psoc-hacke -blog/high- esolu ion-high- equency-pwm-
psoc4-ble, consul ed on No embe 2017].
[25] Cyp ess Semiconduc o Co po a ion, AN69133 - PSoC® 3 / PSoC 5LP Easy
Wa e o m Gene a ion wi h he Wa eDAC8 Componen ,
[h p://www.cyp ess.com/documen a ion/applica ion-no es/an69133-psoc-3-psoc-5lp-
easy-wa e o m-gene a ion-wa edac8-componen , consul ed on Janua y 2018].
[26] Cyp ess Semiconduc o Co po a ion, AN62582 - AM Modula ion and Demodula ion,
[h p://www.cyp ess.com/documen a ion/applica ion-no es/an62582-am-modula ion-
and-demodula ion, consul ed on Janua y 2018].
[27] Vic o K emin, Analog Mul iplica ion wi h PSoC, 2010.
[28] Cyp ess Semiconduc o Co po a ion, High Resolu ion DAC in PSoC 3/5,
[h ps://communi y.cyp ess.com/docs/DOC-12231, consul ed on Janua y 2018].
[29] Cyp ess Semiconduc o Co po a ion, RoHS, G een and En i onmen al In o ma ion,
[h p://www.cyp ess.com/suppo / ohs, consul ed on Janua y 2018].