Upload
khaledbenamor
View
58
Download
3
Embed Size (px)
Citation preview
2
Programmable System on Chip
Un composant associant un microcontrôleuret des fonctions logiques et analogiques configurables
3
Architecture PSoC : les atouts essentiels
Intégrer dans un composant des fonctions analogiques et logiques externes
avant PSoC(~90 composants)
avec PSoC(~20 composants)
Définir une plateforme hardware unique pour applications multiples
Reconfigurer/adapter les fonctionnalités en temps réel
4
La solution PSoCTM
Regroupés dans un même composant :Un coeur Microcontrôleur 8-bits, avec
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
Interrupt Contr
Configurable I/Os
8-bitMicrocontroller
Core (M8C)
Multiplier/Accumulator
Glo
bal C
onne
ct M
atrix
Decimator
FlashMemory
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
I2C Controller
8-bitMicrocontroller
Core (M8C)
Multiplier/Accumulator
Decimator
FlashMemory
Mémoire FlashOscillateurs internes (pas de quartz externe)Multiplieur/accumulateurContrôleur d'interruptions, Sleep Timer, Watchdog TimerContrôleur I2C
5
La solution PSoCTM
Regroupés dans un même composant :Un coeur Microcontrôleur 8-bitsDes blocs logiques et analogiques banalisés configurables
Blocs Logiques configurables en Compteurs, Timers, UARTs, PWMs, SPI, Générateurs CRC, etc.Blocs Analogiques configurables en amplis-op simples, comparateurs, filtres, CNAs, CANs, modem, etc.
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
Interrupt Contr
Configurable I/Os
8-bitMicrocontroller
Core (M8C)
Multiplier/Accumulator
Glo
bal C
onne
ct M
atrix
Decimator
FlashMemory
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
Interrupt Contr
8-bitMicrocontroller
Core (M8C)
Multiplier/Accumulator
Decimator
FlashMemory
Configurable I/Os
Glo
bal C
onne
ct M
atrix
DigitalPSoC
Blocks
AnalogPSoC
Blocks
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
Interrupt Contr
8-bitMicrocontroller
Core (M8C)
Multiplier/Accumulator
Decimator
FlashMemory
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
Interrupt Contr
Configurable I/Os
8-bitMicrocontroller
Core (M8C)
Multiplier/Accumulator
Glo
bal C
onne
ct M
atrix
Decimator
FlashMemory
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
Interrupt Contr
8-bitMicrocontroller
Core (M8C)
Multiplier/Accumulator
Decimator
FlashMemory
Configurable I/Os
Glo
bal C
onne
ct M
atrix
DigitalPSoC
Blocks
AnalogPSoC
Blocks
6
Les solutions traditionnelles
Traditionnellement, le choix d'un microcontrôleur consiste à sélectionner dans unefamille celui disposant des ressources nécessaires à l'application visée : UART, Timer, PWM, convert. A/N ou N/A, vitesse CPU, etc.
Le plus souvent le choix final résulte d'un compromis
le microcontrôleur choisi possède toutes les ressources nécessaires, plus d'autressuperflues
le microcontrôleur recherché n'existe pas, il faut accepter un sacrifice sur la fonctionnalité ou la performance, ou implanter les fonctions manquantes (par ex. analogiques) a l'extérieur
La multiplicité des applications entraine la multiplicité des versions et des choix : standardisation difficile, volumes plus faibles, gestion plus complexe, etc.
7
beaucoup,beaucoup de variantes
8
PSoC : une approche radicalement nouvelle
DigitalPSoCBlocks
AnalogPSoCBlocks
SPI PWM
UART Timer PWMTimer
Comp Ampli Comp
Filtre
CNA CAN
Par opposition l'architecture PSoCPSoC intègre des blocs numnuméérriqiquesues et analogiquesanalogiques banalisbanalisééss, configurables au gré de l'utilisateur : UART, SPI, timer, PWM, SPI, amplis op., filtres,convertisseurs, etc.
un seul modèle peut répondre à une multitude d'applications
le microcontrôleur ne se retrouve pas encombré de fonctions superflues
Les blocs sont configurables et reconfigurables en reconfigurables en fonctionnementfonctionnement, permettant d'adapter, de modifier, d'optimiser dynamiquement les fonctions réalisées
!
9
Sélection/configuration des blocs (PSoC Designer)
10
En résumé
PSoC : une approche radicalement nouvelle PSoC : une approche radicalement nouvelle des applications microcontrdes applications microcontrôôleursleurs
Microcontrôleur
Driver H.P.
Driver LED
AmpliFiltrage
Micro traditionnel
PSoC
Capteur
LED
LED
!!
11
En résumé
PSoC : une approche radicalement nouvelle PSoC : une approche radicalement nouvelle des applications microcontrdes applications microcontrôôleursleurs
Microcontrôleur
Driver H.P.
Driver LED
AmpliFiltrage
Micro traditionnel
PSoC
...et si nécessaire :reconfiguration dynamique
Modem
Capteur
LED
LED
12
La famille PSoC
Les principaux membres de la famille et leur différentiationLes principaux membres de la famille et leur différentiation
Program Memory (Kbytes)
Data Memory (Bytes)
Digital Blocs
Analog Blocs
I/O pins
16 4/16
256/512
8 4
12 6
6-44
256
6-48
32
2K
16
12
24-64Availability Now Now
4/8
256/512
4
2
6-28
CY8C27xxx CY8C24xxxCY8C29xxx CY8C21xxx
Now Now
13
PSoC CY8C27xxx
16k
Flas
h M8C
BandGap Out. Amp
PLL/Osc32K Osc
Int CtrlAnalog IF
GPIO
POR
RAM
DecimatorLe coeur CPU occupe moins
de 5% de la surface de la
puce...
SMP
SROM
MAC
14
Architecture Microcontrôleur
Coeur 8 bits M8C (24MHz)
Mémoire Flash ISR
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
I2C Controller
Configurable I/Os
8-bitMicrocontroller
Core (M8C)
Multiplier/Accumulator G
loba
l Con
nect
Mat
rix
Decimator
DigitalPSoCBlocks
AnalogPSoCBlocks
FlashMemory
Oscillateurs internes
Multiplieur/Acc. Câblé
Contrôleur I2C
Périphériques configurables
E/S paramétrables
Alimentation 3.3/5V
Temp industrielle
!!!!!!!!
15
Modèle de programmation
IE
PC
SP
A
X
FZCSX
IOXA
Program Counter (16 bits)
Stack Pointer (8 bits)
Accumulator (8 bits)
Index (8 bits)
Flags (8 bits)
16
Jeu d'instructions
• 1, 2 ou 3 octets, 4 à 10 cycles/instruction (moyenne 6)• Contrôle déroulement programme :
– CALL, LCALL, SSC, RET, RETI– JMP, LJMP, JACC, JC, JNC, JZ, JNZ– HALT, NOP
• Arithmétique– ADD, ADC, SUB, SBB, INC, DEC, ASL, ASR
• Comparaisons– CMP, TST
• Logique– AND, OR, XOR, CPL, RLC, RRC
• Déplacement de données– MOV, MOVI, SWAP, INDEX, PUSH, POP, ROMX
17
Modes d'adressage
• Immédiat– ADD A, 7– MOV REG[8], 6
'7'AA
OP
18
Modes d'adressage
• Immédiat– ADD A, 7– MOV REG[8], 6
• Direct– AND A, [7]– MOV X, REG[8]– MOV [7], [8] AA
OP
'7'
RAM
19
Modes d'adressage
• Immédiat– ADD A, 7– MOV REG[8], 6
• Direct– AND A, [7]– MOV X, REG[8]– MOV [7], [9]
NOP
'7'
RAM
'9'
20
Modes d'adressage
AA
OP
'7'
RAM
XX
• Immédiat– ADD A, 7– MOV REG[8], 6
• Direct– AND A, [7]– MOV X, REG[8]– MOV [7], [8]
• Indexé– ADD A, [X+7]– MOV A, REG[X+9]– ADD [X+7], A
21
Modes d'adressage
• Immédiat– ADD A, 7– MOV REG[8], 6
• Direct– AND A, [7]– MOV X, REG[8]– MOV [7], [8]
• Indexé– ADD A, [X+7]– MOV A, REG[X+9]– ADD [X+7], A
• Immédiat indexé– ADD [X+7], 5– MOV REG[X+8], 6
OP
'7'
RAM
XX
'5'
22
Modes d'adressage
• Immédiat– ADD A, 7– MOV REG[8], 6
• Direct– AND A, [7]– MOV X, REG[8]– MOV [7], [8]
• Indexé– ADD A, [X+7]– MOV A, REG[X+9]– ADD [X+7], A
• Immédiat indexé– ADD [X+7], 5– MOV REG[X+8], 6
• Indirect post-incrémenté– MVI A, [7]– MVI [7], A
NOP
'7'
RAM
AA
+1
23
Modes d'adressage
• Immédiat– ADD A, 7– MOV REG[8], 6
• Direct– AND A, [7]– MOV X, REG[8]– MOV [7], [8]
• Indexé– ADD A, [X+7]– MOV A, REG[X+9]– ADD [X+7], A
• Immédiat indexé– ADD [X+7], 5– MOV REG[X+8], 6
• Indirect post-incrémenté– MVI A, [8]– MVI [8], A
24
Espaces d'adressage
• Programmes (mémoire Flash)– 4K-32K octets– architecture extensible à 64K octets– espace spécifique (ROM) en mode superviseur
• Données (mémoire SRAM)– 256 octets par page– architecture extensible à 8 pages– 1-4 pages pour les composants actuels
• Registres– pour l'accès aux fonctions internes, aux blocs
logiques/analogiques et aux E/S– deux bancs de 256 registres
25
Espaces d'adressage
FLAG REG
XIO SXA
FLASH
REGRAM
SYSTEMPARAMETERS
SUPERVISORCODE
4 PAGES MAX(64 KB)
8 PAGES MAX2048 BYTES
01
0
1
0
16K
32K
48K
USER MAP SUPER MAP64K
0
16K
32K
48K
26
Mémoire Flash
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
I2C Controller
Configurable I/Os
8-bitMicrocontroller
Core (M8C)
Multiplier/Accumulator G
loba
l Con
nect
Mat
rix
Decimator
DigitalPSoCBlocks
AnalogPSoCBlocks
FlashMemory4K à 32Koct. selon le composant
Process Cypress SONOS (Flash)Organisation par blocs 64 octets50.000 cycles effac./prog par blocProgrammation à tension nominale(Re)programmation in situEmulation EEPROM
27
Mapping mémoire Flash
ResetSurveill. alimentation
Blocs analogique (col.0)
VC3
Blocs analogique (col.1)Blocs analogique (col.2)Blocs analogique (col.3)
GPIOBlocs logique 0Blocs logique 1Blocs logique 2Blocs logique 3Blocs logique 4Blocs logique 5Blocs logique 6Blocs logique 7
I2CSleep Timer
000000040008000C001000140018001C0020
Vecteurs d'interruption00240028002C003000340038003C
00600064
Zone utilisateur
(32K) 7FFF
28
Protection mémoire Flash
• Protection par blocs de 64 octets• 4 niveaux de protection pour chaque bloc
– programmation, lecture externe, écriture interne autorisées– programmation et écriture autorisées, lecture externe interdite– écriture autorisée, programmation et lecture externe interdites– programmation, écriture, lecture externe interdites
• Suppression de la protection par effacement complet du composant
29
Emulation E2PROM
• La mémoire Flash est utilisable pour la lecture/écriture de données non volatiles
• Accès par blocs de 64 octets– Lecture : transfert bloc Flash en RAM– Ecriture : transfert bloc RAM en Flash
• Routines firmware pour émulation accès-octet (Read-Modify-Write)
Flash
Bloc n
RAM
30
Mémoire RAM
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
I2C Controller
Configurable I/Os
8-bitMicrocontroller
Core (M8C)
Multiplier/Accumulator G
loba
l Con
nect
Mat
rix
Decimator
DigitalPSoCBlocks
AnalogPSoCBlocks
FlashMemory
Mémoire paginée, 1 page = 256 octetsJusqu'à 8 pages1-8 pages selon la famille
31
Mapping mémoire RAM
RAM00
Données système
Données utilisateur
Pop
SP
PilePush
FF
32
Mapping Mémoire Registres et I/O
Register Bank 0 Register Bank 1
GPIOData
Registers
DigitalPSoCblockData
Registers
Analog
DataRegisters
SystemResource
DataRegisters
00h
FFh
PSoCblock
GPIOConfig
Registers
Digital
ConfigRegisters
Analog
ConfigRegisters
SystemResourceData and
ConfigRegisters
00h
FFh
PSoCblock
PSoCblock
"User" Space "Config" Space
33
Oscillateurs et Horloges
Oscillateur interne principalfréquence 48MHzprécision +/-2,5% sans composant externepeut être calé sur quartz externe 32KHz si haute précision nécessaire
Oscillateur interne basse fréquencefréquence 32KHzprécision +/-20% sans composant externe (50% en mode veille)peut être calé sur quartz externe 32KHz si haute précision nécessaire
34
Systeme d’horlogerie
Internal (24MHz)
Oscill.Principal
Diviseur 2n
External (1-24MHz)
24V2 : Divis. 1 a 16
SYSCLKSYSCLK2
• Fréquence principale = SYSCLK– 24 MHz si mode interne– 1 à 24 MHz si horloge externe
• Horloge CPU = division de SYSCLK – 8 divisions possibles, de 24/12MHz à 96KHz (mode int.)
• VC1 = division de SYSCLK (1 à 16)• VC2 = division de VC1 (1 à 16)• VC3 = division de VC1/VC2/SYSCLK/SYSCLK2
(1 à 256)• SYSCLK, SYSCLK2, 32KHz, VC1, VC2, VC3 :
horloges globales utilisables par les PSoC blocs• Horloge Sleep Timer = division de 32KHz
– 4 divisions possibles, de 512Hz à 1Hz
SYSCLK2 (48MHz)SYSCLK (24MHz)
CPU
24V1 : Divis. 1 a 16
VC1
VC2
24V3 : Divis. 1 a 256
VC3
Oscill.32KHz
32K
Diviseur 2n
SLP
35
Entrées/Sorties
• Jusqu'à 5 ports 8 bits + 1 port 4 bits• La fonction des broches E/S est paramétrable :
– Entrée et/ou Sortie standard (accessible en lecture et/ou en écriture dans l'espace registre)
– Entrée et/ou Sortie globale (connexion aux PSoC Blocks numériques)– Entrée et/ou Sortie analogique
• Mode de sortie paramétrable– Strong (CMOS), Pull-up, Pull-down, High-Z, Open Drain
• Mode interruption configurable pour chaque broche• Front montant, descendant, ou changement d'état
36
Adaptabilité
Ce qui prCe qui prééccèède dde déécrit un coeur Microcontrcrit un coeur Microcontrôôleur trleur trèès efficaces efficace
Q'estQ'est--ce qui en fait un composant radicalement nouveau ?ce qui en fait un composant radicalement nouveau ?
Programmable SystemProgrammable System--onon--Chip BlocksChip Blocks(PSoC Blocks)(PSoC Blocks)
!
37
PSoC Blocks (example CY8C27xxx)
DigitalPSoCBlocks
AnalogPSoCBlocks
SPI PWM
UART Timer PWMTimer
Comp Ampli Comp
Filtre
CNA CAN
Les PSoC Blocks sont des blocs banalisés (8 blocs logiques et 12 blocs analogiques) configurables par l'utilisateur
Une fois configuré un PSoC Block devient capable de remplir une fonction particulière, choisie dans une bibliothèque de Modules
Les Modules sont paramétrables par l'utilisateur, àl'initialisation aussi bien qu'en fonctionnement
Les Modules sont fournis prêts à l'emploi, avec routines logicielles de paramétrage et de contrôle (API)
La selection, le paramétrage et l'interconnexion des Modules s'effectuent graphiquement via le logiciel de developpement
!
38
PSoC Blocks logiques
• 8 PSoC Blocks logiques, chacun constituant une 'tranche' de 8 bits
• Chaque bloc est constitué de 3 registres Data et 4 registres de configuration
• 2 types de blocs logiques :•• standardstandard : pour toute fonction de
type comptage, PWM, etc.•• commcomm : idem + fonctions de
transmission de type UART, SPI, etc.
• Cascadables et interconnectablesINPUT
PSoC Block logique
DataReg1
INProcess
OUTProcess
Config. registers
DataReg0
DataReg2
CLOCKS
S
CPU Data Bus
Output
Aux. IO
39
Configuration des blocs logiques
Constante 0Constante 1Sortie PSoC Block numerique 3Sortie PSoC Block numerique precedentSortie PSoC Block analogique (colonne 0)Sortie PSoC Block analogique (colonne 1)Sortie PSoC Block analogique (colonne 2)Sortie PSoC Block analogique (colonne 3)Sortie Globale 0 (ou 4)Sortie Globale 1 (ou 5)Sortie Globale 2 (ou 6)Sortie Globale 3 (ou 7)Entree Globale 0 (ou 4)Entree Globale 1 (ou 5)Entree Globale 2 (ou 6)Entree Globale 3 (ou 7)
0000000100100011010001010110011110001001101010111100110111101111
Sélection signal d'entrée
pas d'horlogeSortie Glogale 4 (ou 0)Sortie PSoC Block numerique 3Sortie PSoC Block numerique precedent48M24V124V232KSortie Globale 0 (ou 4)Sortie Globale 1 (ou 5)Sortie Globale 2 (ou 6)Sortie Globale 3 (ou 7)Entree Globale 0 (ou 4)Entree Globale 1 (ou 5)Entree Globale 2 (ou 6)Entree Globale 3 (ou 7)
0000000100100011010001010110011110001001101010111100110111101111
Sélection de l'horloge
DataReg1
INProcess
OUTProcess
Config. registers
DataReg0
DataReg2
CLOCKS
INPUTS
Output
Aux. IO
Invalidation de la sortieSortie Globale 0 (ou 4)
0--100101110111
Sortie Globale 1 (ou 5)Sortie Globale 2 (ou 6)Sortie Globale 3 (ou 7)
Sélection sortie
40
User Modules
• User Module = fonction constituée de un ou plusieurs PSoC Blocks• Regroupés en bibliothèque, et fournis prêts à l'emploi (hardware/firmware)• Modules logiques disponibles :
• Timer 8, 16, 24, 32 bits• Counter 8, 16, 24, 32 bits• Pseudo random sequence generator 8, 16, 24, 32 bits• PWM 8, 16 bit • PWMDB 8, 16 bit (PWM with dead band)• CRC16• UART (Receive, Transmit, Full Duplex)• SPI (Master, Slave)• I2C software (I2C hardware disponible en ressource standard)• IrDA (Receive, Transmit)• E2PROM (software)• LCD (software)
41
Exemple : Module 'Timer'
• Mesure de temps, capture d'événements, génération de baud rate, etc.
• Registre DR1 : Période• Registre DR0 : Décompteur• Registre DR2 : Capture
LSB
TimeDR0
PeriodDR1
CaptureValDR2
Data Registers
Timer Clockfrom Clock Select Logic
ConfigurableIntReq
on CaptureOutput
Internal 8-Bit Data Bus
CompareAuto-Reload
Output may beConfigured to Drive a Pin
or PSoC block Input
R/W R/WR/W
LSB LSB LSB
MSB MSBMSB
• Routines associées : Timer_write_period, Timer_enable_int, Timer_start, Timer_write_captureval, Timer_read_period, Timer_stop, etc.
Timer 8 bits = 1 PSoC block (16 bits = 2 PSoC blocks, etc.)
42
PSoC Blocks analogiques
CTCT CTCTCTCTCTCT
SCSCAA
SCSCBB SCSCAA
SCSCAASCSCBB
SCSCBB
SCSCBB
SCSCAA
Colonne 0 Colonne1 Colonne 2 Colonne 3• 12 PSoC Blocks analogiques (4 colonnes)
• 2 types :•• CTCT : Continuous Time
• fonctions simples : ampli op, PGA, comparateur
•• SCSC : Switched Capacitors• fonctions complexes :
filtrage, conversion, etc.• Cascadables et interconnectables
43
PSoC Blocks 'Continuous Time'
• Ampli-op configurables et paramétrables
• Réseau de résistances échelonnées (précision 2%)
• Référence paramétrable
Port0 Sortie Colonne
Sorties Blocs voisins AGND
VREF
Sorties Blocs voisins AGND VREFHIVREFLO
Mode
+
- VDD
En
CBUS
OBUS
OUT
LOUTGOUT
Sorties Blocs voisins AGND VSS
0
15
44
PSoC Blocks 'Continuous Time'
• Exemple : ampli-op non inverseur Port0
Sortie Colonne Sorties Blocs voisins
Mode
+
- VDD
En
CBUS
OBUS
OUT
LOUTGOUT
Sorties Blocs voisins AGND VSS
0
15
+
-
Vin
RA
Vout
RB
G= 1+ RA/RB
45
PSoC Blocks 'Continuous Time'
• Exemple : comparateurPort0
Sortie Colonne Sorties Blocs voisins
Mode
+
- VDD
En
CBUS
OBUS
OUT
LOUTGOUT
Sorties Blocs voisins AGND VSS
0
15
+
-
Vin
VDD
Vout
RA
RB
46
Blocs 'Switched Cap'
Les résistances sont remplacées par des capacités et des switches
Φ1 Φ2
47
Blocs 'Switched Cap'
Equivalence résistance / capacité commutéeEquivalence résistance / capacité commutée
Φ2
q=C.V
Φ1
+ +q=C.V
Φ1 Φ2
i = q/t = fs.q = fs.C.V
R = 1
Fs.C
VR
i =
!!!
48
Blocs 'Switched Cap'
Φ2
q=C.V
Φ1
+ +q=C.V
Φ1 Φ2
i = q/t = fs.q = fs.C.V
Avantages des capacités commutées :- simplicité de réalisation sur process CMOS- contrôle du courant par la fréquence de commutation des switches
!!!
49
PSoC Blocks 'Switched Cap'
Exemple Exemple : Ampli non inverseur
+
-
VinVout
RARB
G= 1+ RA/RB
+
-
Vin
Vout
G= CB/CA
CB CAΦ1
Φ1
Φ1
Φ2
Φ2
50
PSoC Blocks 'Switched Cap'
• 2 types : SCSCAA et SCSCBB
• Ampli-op programmables• CAN incrémental et ∆−Σ• CNA• Filtres simples et biquad
–– SCSCAA : entrée biquad–– SCSCBB : sortie biquad
+
-
CF(32)
CBUS
OBUS
Φ2
Φ1
Φ2
Φ1
Φ2
Φ1
Φ2
Φ1
Φ2
Φ1
CC(32)
CA(32)
CB(32)
Entrées CB
Entrées CA
Entrées REF
Entrées CC
Type SCSCAA
51
PSoC Blocks 'Switched Cap'
• 2 types : SCSCAA et SCSCBB
• Ampli-op programmables• CAN incrémental et ∆−Σ• CNA• Filtres simples et biquad
–– SCSCAA : entrée biquad–– SCSCBB : sortie biquad
+
-
CF(32)
CBUS
OBUS
Φ2
Φ1
Φ2
Φ1
Φ2
Φ1
Φ2
Φ1
Φ2
Φ1
CC(32)
CA(32)
CB(32)
Entrées CB
Entrées CA
Entrées REF
CARR Type SCSCBB
Φ2
Φ1
52
Exemple : Convertisseur A/N
• Convertisseur Delta Sigma 8 bits• 1 bloc analogique type SC• 1 bloc logique (timer)• Décimateur Hardware (diminue la
charge du firmware)• 8 bit = 32 Kech/s• 11 bit = 7.8 Kech/s
REF+REF-
INPUT
DECIMATOR
GATE
TIMER 256
CLKCLK 16 bit DATA
INTERRUPT
LATCH
φ1
φ1
φ1
φ2
φ2
φ2
ANALOGCLOCKS
CAφ1
CF
÷ 4
53
Exemple : Filtre passe-bas
• 2 blocs SC (ordre 2)• Paramètres programmables
– fréquence de coupure (f0)– facteur d'atténuation– gain
• 300 Hz à 250 kHz
121
41
21
2
4
2
4
32
2
2
2
1
++
−−
−
−=
ss
BA
s
S
in
out
CC
fs
CC
CCCC
fs
fs
CC
VV
φ2
φ2φ2
φ2
φ2 φ2φ1
φ1φ1φ1
Vin
Vout
C1C3
C4
CB
C2
CA
φ1
54
Exemple : Filtre passe-bande
φ2
φ2
φ2
φ2 φ2
φ1
φ1
φ1φ1
Vin
Vout
C1
C3
C4
CB
C2
CA
φ1
AnalogBus
CompBus
• 2 blocs SC (ordre 2)• Paramètres programmables
– fréquence centrale (fc)– Q– gain
• 300 Hz à 250 kHz
121
41
21
2
4
2
4
32
23
2
1
++
−−
+
−=
CC
fs
CC
CCCC
fs
fs
CC
fs
CC
VV
s
BA
s
S
B
s
in
out
55
User Modules analogiques (et mixtes)
• Modules analogiques et mixtes :• Ampli simple, ampli différentiel, ampli inverseur, ampli à gain programmable• Comparateur• Convert. A/N : SAR, delta-sigma, incrémental, double/triple incrémental• Convert. N/A : 6/9 bits, DAC multiplieur• Filtres : passe-bas, passe-bande• Multiplexeur analogique• Générateur DTMF• CapSense (détection capacitive)
• Egalement disponibles : projets complets (sources et documentation), notes d'applications, reference designs
• modem V21• Controleur LIN.• Modulation/demodulation FSK• Etc.
56
Fonctions combinées
L'association de plusieurs modules permet la réalisation de fonctions complexes.Exemples :
Rectifieur Demodulateur Multiplieur
Modulation FSK Modulation hétérodyne votre exemple...
57
Modulateur analogique (blocs SCA)
La polarité du gain des blocs SC est déterminée par le signal ASign (contrôlé par firmware)
Les blocs SCA possèdent en plus un contrôle par signal hardware
VoutVin
= ±CA
CF
φ2
φ1
CA
φ1
φ2
φ1
CF
Vin Vout
ASign
DBA03GlobalOut4GlobalOut0low (no modulation)
AMod
58
Exemple : Rectifieur
SPI (Comparator to Global Output Converter)
PreAmpComparator
Gain Stage (Full Wave Detector)• Signal Flow
– Signal comes into Preamp– Goes to Gain Stage and Comparator– SPI converts comparator to Global
Output– Global Output used to control Gain
Stage modulator bit• Example:
4 cycle 20 kHz burst
59
Exemple : Démodulateurd'amplitude
SPI (Comparator to Global Output Converter)
ComparatorPreAmp
Low Pass Filter (AM Demodulator)• Signal Flow
– Signal comes into Preamp– Goes to Low Pass Filter and
Comparator– SPI converts comparator to Global
Output– Global Output used to control Low
Pass Filter modulator bit• Example:
10 cycle 50 kHz burst
60
Notes d'application (extrait)
AN2060 : Audiometer By: Amit Davjekar
AN2062 : Laser Diode Controller By: Seenath Punnakal
AN2063 : Blood Pressure Recorder By: Dave Goodrich
AN2064 : Variable Color Street Number Sign By: Aubrey Kagan
AN2067 : Bar Code Reading Attendance Register System By: Tejinder Singh
AN2069 : Lock-In Amplifier By: Seenath Punnakal
AN2074 : Poor Man's Oscilloscope By: Elden Crom
AN2077 : Localized GPS Tracker By: G.K.Siddhartha, Puneet Nayyar, Ajit Singh
AN2083 : PSoC485 By: Ray Walker
AN2085 : All Purpose Tester By: Andrew McDowell
AN2086 : Digitally Controlled Sine and Square Wave Generation
AN2087 : Motor Tachometer Speed Calculation Using Hardware Timer Capture Feature
AN2089 : Programmable Bipolar Analog Current Source. PSoC Style
AN2091 : RC5 Codec
AN2092 : Infrared Learner (Remote Control)
AN2093 : Keypad Scan using ADC (SAR6 )
AN2095 : Logarithmic Signal Companding. Not just a good idea, it's m-Law!
AN2098 : FSK Generator using the PSoC Device (Preliminary Draft!)
AN2099 : Single Pole IIR Filters. To Infinity And Beyond! (Preliminary Draft!)
AN2020 : Redundant Fan System
AN2024 : Polyphonic Piano
AN2025 : CTCSS Carrier Generation with a PSoC Microcontroller
AN2028 : Ohmmeter
AN2034 : Keypad Scan, PSoC Style
AN2037 : 8-pin PDIP Produces 100 kHz Pseudo Random White Noise
AN2042 : Multifunctional Optical Sensor
AN2043 : Real-Time Clock in PSoC
AN2044 : Signal Rectification, using Switched Capacitor Modulators
AN2045 : Designing a Compact and Flexible LIN Controller
AN2047 : Ultrasound Motion Sensor (New!)
AN2048 : Range Finder By: Fabio Piana
AN2049 : OnTV-21 By: Bernard Debbasch
AN2050 : Vector-SoC: A 1-GHz Vectorial Network Analyzer By: Robert Lacoste
AN2051 : Precision Digital Controller By: H.N. Naveen and S. G. Sriharsha
AN2052 : Intelligent Light Effects Controller for Entertainment Systems By: Victor Kremin
AN2053 : LCR Meter By: Laurent Lamesch
AN2055 : Low-Power "Contactless" Tag Reader By: Chanh Ho Minh
AN2056 : PAudio Analyzer By: Jerry Wasinger
AN2058 : Remote Human Health Monitoring System By: Victor Kremin
AN2059 : Simple Wireless Bluetooth Mobile Phone Headset By: Wong Kai Juan
PSoC Applications
61
Récapitulatif des caractéristiques (CY8C27xxx)
GénéralesCoeur CPU M8, jusqu’à 24MHzMultiplieur/Accumulateur cableFaible consommationAlim. 3.0V-5.25V (1V avec pompe de charge)Gamme industrielle
!!!!!!
Blocs périphériques12 blocs analogiques rail-to-rail configurables :
ADCs (jusqu’ à 14bits)DACs (jusqu’ à 8 bits)Amplis à gain programmablesFiltres, comparateurs
8 blocs numeriques configurablesTimers, compteurs, PWM, de 8 à 32 bitsCRC, PRSUARTs half/full duplex, SPI maitre/esclavebrochage libre
Réalisation de fonctions complexes par combinaison
Mémoire Flash16K octets4 niveaux de protectionProgrammable in-situ (ISSP)programmable par blocs50000 effacement/programmation par bloc
Horlogerieoscillateur interne 24/48MHz, précision ±2.5%oscillateur interne 32KHz pour Watchdog et Sleephaute précision avec quartz externe 32KHzDiviseurs de fréquence pour blocs périphériques
Entrées/Sortiessortance 25mAsorties avec options pull-up/down, High-Z, Open Drainjusqu’à 12 entrees analogiquesjusqu’à 4 sorties analogiques 40mAInterruption
Autres ressourcesContrôleur I2C maitre/esclave 400KHzWatchdog, Sleep timerSupervision d’alimentation, avec detection de sous-tensionTensions de référence
Système de développementLogiciel téléchargeable gratuitEmulateur et programmateurEmulation temps réelPoints d’arrêt complexesMémoire de trace (128Koct)
62
La famille PSoC
Récapitulatif des caractéristiques principalesRécapitulatif des caractéristiques principales
Operating Frequency
Operating voltage
Program Memory (Kbytes)
Data Memory (Bytes)
Digital Blocs
Analog Blocs
I/O pins
Packages
CY8C29xxx CY8C27xxx CY8C24xxx CY8C21xxx94KHz-24MHz
2.4-5.25V
32 16
256
24 8 4 4
12 12 6 2
24-64
DIP,SSOP,MLF
94KHz-24MHz
3.0-5.25V
2K
6-24-48
DIP,SSOP,MLF
4/16
256/1024 256/512
4/8
6-44
94KHz-24MHz 94KHz-24MHz
3.0-5.25V 2.4-5.25V
6-28
DIP,SSOP,MLF SOIC,SSOP,MLF