p s -on-chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · comp...
TRANSCRIPT
Programmable
System-on-Chip
TAYARI LASSAAD MAITRE TECHNOLOGUE - ISET GABES [email protected] http://systemesembarques.e-monsite.com/
Un composant associant un microcontrôleur
et des fonctions logiques et analogiques configurables
2
Programmable System on Chip
Architecture PSoC : les atouts essentiels
Intégrer dans un composant des fonctions analogiques et logiques externes
avec PSoC
(~20 composants)
avant PSoC
(~90 composants)
Définir une plateforme hardware unique pour applications multiples
Reconfigurer/adapter les fonctionnalités en temps réel
3
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
Interrupt Contr
8-bit
Microcontroller
Core (M8C)
Multiplier/
Accumulator
Decimator
Flash
Memory
solution PSoCTM La
Regroupés dans un même composant :
Un coeur Microcontrôleur 8-bits, 16-bits ou 32-bits avec Mémoire Flash
Oscillateurs internes (pas de quartz externe)
Multiplieur/accumulateur
Contrôleur d'interruptions, Sleep Timer, Watchdog Timer
Contrôleur I2C
4
Glo
ba
l C
on
nec
t M
atr
ix
Flash
Memory
8-bit
Microcontroller
Core (M8C)
48MHz Osc
Int 32KHz Osc Decimator
Ext 32KHz Osc Multiplier/
Accumulator
WatchDog Timer
Sleep Timer
I2C Controller
SRAM Configurable I/Os
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
Interrupt Contr
8-bit
Microcontroller
Core (M8C)
Multiplier/
Accumulator
Decimator
Flash
Memory
Configurable I/Os
trix
Ma t c
Conne l
Globa
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
Interrupt Contr
8-bit
Microcontroller
Core (M8C)
Multiplier/
Accumulator
Decimator
Flash
Memory
g
C
ks
P S o C
S R A M
Sl e e p T im er
W at c h D o g T i m e r
I nt 3 2 K H z O s c
E xt 3 2 K H z O s c
4 8 M H z O s c
In t e rr u p t C o n t r
C o n fi g u r a b le I/ O s
8- b i t
M ic r o c o nt r o ll e r
C o r e ( M 8 C )
M ul t i pli e r/
A c c u m u la t o r
t
ri M t c
C
o l
G
D e ci m a t o r
Di it al
B l c k s
A n al o
B l c
F l a s h
M e m o r y
SRAM
Sleep Timer
WatchDog Timer
Int 32KHz Osc
Ext 32KHz Osc
48MHz Osc
Interrupt Contr
8-bit
Microcontroller
Core (M8C)
Multiplier/
Accumulator
Decimator
Flash
Memory
Configurable I/Os
trixx
Ma t c
Connenne l
Globaloba
o
o
PSo
La solution PSoCTM
Regroupés dans un même composant :
Un coeur Microcontrôleur 8-bits , 16-bits ou 32-bits
Des 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.
PSoC
Blocks
Analog
PSoC
Blocks
5
Glo
ba
l C
on
nec
t M
atr
ix
Memory
8-bit
Flash Microcontroller
Core (M8C)
Di g ital
48MHz Osc
Int 32KHz Osc Decimator
Ext 32KHz Osc Multiplier/
Accumulator
WatchDog Timer
Sleep Timer
Interrupt Contr
SRAM Configurable I/Os
Les solutions traditionnelles
Traditionnellement, le choix d'un microcontrôleur consiste à sélectionner dans une
famille 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'autres
superflues
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.
6
-
7
Di
ital
Blo ks
An
Blo
PSoC : une approche radicalement nouvelle
Par opposition l'architecture PSoC intègre des blocs
numériques et analogiques banalisés, configurables au gré de
l'utilisateur : UART, I2C, 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
fonctionnement, permettant d'adapter, de modifier, d'optimiser
dynamiquement les fonctions réalisées
SPI PWM
Timer Timer
Ampli
Filtre
8
Comp
Comp
CNA
CAN
UART
PWM
AN
ALO
G B
LOC
K
LOG
IC B
LOC
K
Sélection/configuration des blocs (PSoC Designer)
9
En résumé
PSoC : une approche radicalement nouvelle microcontrôleurs des applications
Capteur
Micro traditionnel
LED
PSoC LED
!10
Driver LED
Ampli
Filtrage
Microcontrôleur
Driver H.P.
Filtrage Ampli
En résumé
PSoC : une approche radicalement nouvelle microcontrôleurs des applications
Capteur
Micro traditionnel
LED
PSoC LED
11
Driver LED
Modem
Microcontrôleur
...et si nécessaire :
reconfiguration dynamique
Driver H.P.
La famille PSoC
Les principaux membres de la famille et leur différentiation
12
CY8C29xxx
CY8C27xxx
CY8C24xxx
Program Memory (Kbytes)
32
16
4/16
Data Memory (Bytes)
2K
256
256/512
Digital Blocs
16
8
4
Analog Blocs
12
12
6
I/O pins
24-64
6-44
6-48
Availability
Now
Now
Now
CY8C21xxx
4/8
4
2
6-28
Now
PSoC CY8C27xxx
BandGap Out. Amp
POR
GPIO
RAM Analog IF Int Ctrl
Decimator
SMP M8C
SROM
MAC
32K Osc PLL/Osc 13
16
k F
las
h
Le coeur CPU
occupe moins
de 5% de la
surface de la
puce...
Architecture Microcontrôleur
Coeur 8 bits M8C (24MHz) Digital
PSoC
Mémoire Flash ISR Blocks
Oscillateurs internes
Multiplieur/Acc. Câblé Ana
PSoC
Blocks
Contrôleur I2C
Périphériques configurables
E/S paramétrables
Alimentation 3.3/5V
Temp industrielle
!14
Glo
bal C
onnect M
atr
ix
Configurable I/Os
SRAM
Sleep Timer
WatchDog Timer
Ext 32KHz Osc
Int 32KHz Osc
Decimator
Multiplier/
Accumulator
I2C Controller
48MHz Osc
8-bit
Microcontroller
Core (M8C)
Flash
Memory
log
IE
Modèle de programmation
PC
Program Counter (16 bits)
SP
Stack Pointer (8 bits)
A
Accumulator (8 bits)
X
Index (8 bits)
F
Flags (8 bits) X
15
XA IO S C Z
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
16
A
Modes d'adressage
• Immédiat –
–
ADD
MOV
A, 7
REG[8], 6
'7'
OP
17
A
A
Modes d'adressage
• Immédiat RAM –
–
ADD
MOV
A, 7
REG[8], 6
• Direct –
–
–
AND
MOV
MOV
A, [7]
X, REG[8]
[7], [8]
18
'7'
A
OP
Modes d'adressage
• Immédiat RAM –
–
ADD
MOV
A, 7
REG[8], 6
• Direct –
–
–
AND
MOV
MOV
A, [7]
X, REG[8]
[7], [9]
NOP
19
'7'
'9'
A
X
Modes d'adressage
• Immédiat RAM –
–
ADD
MOV
A, 7
REG[8], 6
• Direct –
–
–
AND
MOV
MOV
A, [7]
X, REG[8]
[7], [8]
• Indexé –
–
–
ADD
MOV
ADD
A, [X+7]
A, REG[X+9]
[X+7], A
20
'7'
A
OP
X
X
Modes d'adressage
• Immédiat RAM –
–
ADD
MOV
A, 7
REG[8], 6
• Direct –
–
–
AND
MOV
MOV
A, [7]
X, REG[8]
[7], [8] '5'
• Indexé –
–
–
ADD
MOV
ADD
A, [X+7]
A, REG[X+9]
[X+7], A
OP
• Immédiat indexé –
–
ADD
MOV
[X+7], 5
REG[X+8], 6
21
'7'
X
A
Modes d'adressage
• Immédiat RAM –
–
ADD
MOV
A, 7
REG[8], 6
• Direct –
–
–
AND
MOV
MOV
A, [7]
X, REG[8]
[7], [8]
• Indexé –
–
–
ADD
MOV
ADD
A, [X+7]
A, REG[X+9]
[X+7], A
NOP
• Immédiat indexé –
–
ADD
MOV
[X+7], 5
REG[X+8], 6
• Indirect post-incrémenté –
–
MVI
MVI
A, [7]
[7], A
22
A
'7'
+ 1
Modes d'adressage
• Immédiat –
–
ADD
MOV
A, 7
REG[8], 6
• Direct –
–
–
AND
MOV
MOV
A, [7]
X, REG[8]
[7], [8]
• Indexé –
–
–
ADD
MOV
ADD
A, [X+7]
A, REG[X+9]
[X+7], A
• Immédiat indexé –
–
ADD
MOV
[X+7], 5
REG[X+8], 6
• Indirect post-incrémenté –
–
MVI
MVI
A, [8]
[8], A
23
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 logiques/analogiques et aux E/S
– deux bancs de 256 registres
blocs
24
Espaces d'adressage
25
2048 BYTES 4 PAGES MAX
FLAG REG
XA XIO S
1
0 0
1 0
SUPERVISOR 0
CODE
RAM REG
FLASH 16K
16K
8 PAGES MAX 32K 32K
(64 KB)
48K SYSTEM 48K
PARAMETERS
64K
USER MAP SUPER MAP
Mémoire Flash
4K à 32Koct. selon le composant
Process Cypress SONOS (Flash)
Organisation par blocs 64 octets
50.000 cycles effac./prog par bloc
Programmation à tension nominale
Digital
PSoC
Blocks
Ana
PSoC
Blocks
(Re)programmation in
Emulation EEPROM
situ
26
Configurable I/Os
SRAM
Sleep Timer
WatchDog Timer
Ext 32KHz Osc
Int 32KHz Osc
Decimator
Multiplier/
Accumulator
I2C Controller
48MHz Osc
8-bit
Microcontroller
Core (M8C)
Flash
Memory
log
Mapping mémoire Flash
0000
0004
0008
000C
0010
0014
0018
001C
0020
0024
0028
002C
0030
0034
0038
003C
Vecteurs d'interruption
0060
0064
Zone utilisateur
(32K) 7FFF
27
Reset Surveill. alimentation
Blocs analogique (col.0) Blocs analogique (col.1) Blocs analogique (col.2) Blocs analogique (col.3)
VC3 GPIO
Blocs logique 0 Blocs logique 1 Blocs logique 2 Blocs logique 3 Blocs logique 4 Blocs logique 5 Blocs logique 6 Blocs logique 7
I2C Sleep Timer
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
28
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 Write)
firmware pour émulation accès-octet (Read-Modify-
Flash
RAM
29
Bloc n
Mémoire RAM
Mémoire paginée, 1 page octets Jusqu'à 8 pages
= 256 Digital
PSoC
Blocks
1-8 pages selon la famille Ana
PSoC
Blocks
30
Configurable I/Os
SRAM
Sleep Timer
WatchDog Timer
Ext 32KHz Osc
Int 32KHz Osc
Decimator
Multiplier/
Accumulator
I2C Controller
48MHz Osc
8-bit
Microcontroller
Core (M8C)
Flash
Memory
log
Mapping mémoire RAM
RAM
00
Données système
Données utilisateur
Pop
SP
Pile Push
FF
31
Mapping Mémoire Registres et I/O
Register Bank 0 Register Bank 1
block
PSoC
Registers
"User" Space "Config" Space
32
00h
GPIO Config
Registers
PSoC
Config
Registers
System Resource Data and
Config Registers
FFh
Digital
block
Config
Analog
00h
GPIO Data
Registers
PSoC block
Data
Registers
System Resource
Data Registers
FFh
Digital
PSoC block Data
Registers
Analog
Oscillateurs et Horloges
Oscillateur interne principal
fréquence 48MHz
précision +/-2,5% sans composant externe
peut être calé sur quartz externe 32KHz si haute précision nécessaire
Oscillateur interne basse fréquence
fréquence 32KHz
précision +/-20% sans composant externe (50% en mode veille)
peut être calé sur quartz externe 32KHz si haute précision nécessaire
33
Systeme d’horlogerie
Internal (24MHz) External (1-24MHz)
• Fréquence principale = SYSCLK SYSCLK2 (48MHz) SYSCLK (24MHz) –
–
24 MHz si mode interne
1 à 24 MHz si horloge externe
• Horloge CPU = division de SYSCLK CPU
– 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
VC1
SYSCLK SYSCLK2
VC2
•
VC3
•
– 4 divisions possibles, de 512Hz à 1Hz 32K
SLP 34
Diviseur 2n
Oscill.
32KHz
24V3 : Divis. 1 a 256
24V2 : Divis. 1 a 16
24V1 : Divis. 1 a 16
Diviseur 2n
Oscill.
Principal
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 l'espace registre) Entrée et/ou Sortie
Entrée et/ou Sortie
standard (accessible en lecture et/ou en écriture dans
–
–
globale (connexion aux PSoC Blocks
analogique
numériques)
• 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
•
35
Adaptabilité
Ce qui précède décrit un coeur Microcontrôleur très efficace
Q'est-ce qui en fait un composant radicalement nouveau ?
Programmable System-on-Chip Blocks (PSoC Blocks)
!36
Di
ital
Blo ks
An
Blo
PSoC Blocks (example CY8C27xxx)
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 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
SPI g
PWM PSoC
Timer Timer
de Ampli
PSoC
cks Filtre
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
!37
Comp
Comp a log
CNA
CAN
c
UART
PWM
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 :
•
PSoC Block logique
•
• standard : pour toute fonction de type comptage, PWM, etc. comm : idem + fonctions de transmission de type UART, SPI, etc.
•
Ou
INPUTS Au
• Cascadables et interconnectables CLOCK
38
Data
Process
CPU Data Bus
Data Data
Reg1 Reg0 Reg2
IN Process
OUT
S
Config. registers
Configuration des blocs logiques
Sélection signal d'entrée
Output
INPUTS Aux. IO
CLOCKS
Sélection de l'horloge
Sélection sortie
39
0--
100
101
110
111
Invalidation de la sortie
Sortie Globale 0 (ou 4)
Sortie Globale 1 (ou 5)
Sortie Globale 2 (ou 6)
Sortie Globale 3 (ou 7)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
pas d'horloge
Sortie Glogale 4 (ou 0)
Sortie PSoC Block numerique 3
Sortie PSoC Block numerique precedent
48M
24V1
24V2
32K
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)
Config. registers
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Constante 0
Constante 1
Sortie PSoC Block numerique 3
Sortie PSoC Block numerique precedent
Sortie 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)
Data
Reg1
Data
Reg2
OUT
Process
IN
Process
Data
Reg0
User Modules
•
•
•
User Module = fonction constituée de un ou plusieurs
Regroupés en bibliothèque, et fournis prêts à l'emploi
Modules logiques disponibles :
PSoC Blocks
(hardware/firmware)
•
•
•
•
•
•
•
•
•
•
•
•
Timer
Counter
8, 16, 24, 32 bits
8, 16, 24, 32 bits
Pseudo random sequence generator 8, 16, 24, 32 bits
PWM
PWMDB
CRC16
8, 16 bit
8, 16 bit (PWM with dead band)
UART (Receive, Transmit, Full Duplex)
SPI (Master, Slave)
I2C software (I2C hardware disponible en ressource standard)
IrDA (Receive, Transmit)
E2PROM (software)
LCD (software)
40
LSB
Exemple : Module 'Timer'
Timer 8 bits = 1 PSoC block (16 bits = 2 PSoC blocks, etc.)
Internal 8-Bit Data Bus
• Mesure de temps, capture d'événements, génération de baud rate, etc.
Compare
•
•
•
Registre
Registre
Registre
DR1
DR0
DR2
:
:
:
Période
Décompteur
Capture Configured to Drive a Pin
• Routines associées : Timer_write_period, Timer_enable_int, Timer_start, Timer_write_captureval, Timer_read_period, Timer_stop, etc.
41
Output
R/W Data Registers R/W R/W
Period Auto- Time CaptureVal
DR1 Reload
DR0 DR2
LSB LSB LSB
MSB MSB MSB Configurable
Timer Clock IntReq
from Clock Select Logic Output may be on Capture
or PSoC block Input
PSoC Blocks analogiques
• 12 PSoC Blocks analogiques (4 colonnes) 2 types : •
• CT : Continuous Time
• fonctions simples : ampli op, PGA, comparateur
SC : Switched Capacitors
• fonctions complexes : filtrage, conversion, etc.
•
• Cascadables et interconnectables
42
Colonne 0 Colonne1 Colonne 2 Colonne 3
CT CT CT CT
SCA SCB SCA SCB
SCB SCA SCB SCA
PSoC Blocks 'Continuous Time'
• Ampli-op configurables paramétrables Réseau de résistances échelonnées (précision
et Port0
Sortie Colonne
Sorties Blocs voisins
AGND VREF
• Mode En
+
- 2%) CBUS
Sorties Blocs voisins
AGND VREFHI
VREFLO
• Référence paramétrable OBUS
OUT
LOUT GOUT
Sorties Blocs voisins AGND
VSS
43
0
15
VDD
PSoC Blocks 'Continuous Time'
• Exemple : ampli-op non inverseur Port0
Sortie Colonne
Sorties Blocs voisins
Mode En
+
-
Vin +
-
CBUS Vout
OBUS
RB RA OUT
LOUT GOUT
G= 1+ R /R A B
Sorties Blocs voisins AGND
VSS
44
0
15
VDD
PSoC Blocks 'Continuous Time'
• Exemple : comparateur Port0
Sortie Colonne
Sorties Blocs voisins
Mode En
+
-
Vin +
-
CBUS Vout
OBUS VDD
RA OUT
LOUT GOUT
R B
Sorties Blocs voisins AGND
VSS
45
0
15
VDD
Blocs 'Switched Cap'
Les résistances sont remplacées par des capacités et des switches
46
Φ1 Φ2
Φ2
q=C.V
Φ1
+ + q=C.V
Blocs 'Switched Cap'
Equivalence résistance / capacité commutée
i = q/t = fs.q = fs.C.V
1 R =
F .C s
V
R i =
!47
Φ1 Φ2
Φ2
q=C.V
Φ1
+ + q=C.V
Blocs 'Switched Cap'
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
!48
Φ1 Φ2
PSoC Blocks 'Switched Cap'
Exemple : Ampli non inverseur
Vout
CB CA Φ2 Φ1
Φ2
49
CA
+
-
Vin
Φ1
Φ1
G= CB/CA
Vin + Vout
-
RB RA
G= 1+ RA/RB
PSoC Blocks 'Switched Cap'
•
•
•
•
•
2 types : SCA et SCB
Ampli-op programmables
CAN incrémental et
CNA
Filtres simples et biquad
A
Φ2
Φ1 Φ2
CBUS –
–
SCA : entrée biquad SCB : sortie biquad OBUS
Φ2
50
Φ1
Φ1
Φ1
CB(32)
CC(32) CF(32)
Type SC Φ1
Entrées CC
CA(32)
Entrées CA - Entrées REF
Φ2 +
Entrées CB Φ2
PSoC Blocks 'Switched Cap'
•
•
•
•
•
2 types : SCA et SCB
Ampli-op programmables
CAN incrémental et
CNA
Filtres simples et biquad CBUS –
–
SCA : entrée biquad SCB : sortie biquad
Entrées CB
51
Φ1
Φ1
Φ1
Φ1
CF(32)
Φ1 Φ2
CB(32)
CC(32)
CARR Type SCB Φ1
Φ2
CA(32)
Entrées CA - Entrées REF
Φ2 +
Φ2 OBUS
Φ2 Φ2
Exemple : Convertisseur A/N
•
•
•
•
Convertisseur Delta Sigma 8 bits
1 bloc analogique type SC
1 bloc logique (timer)
Décimateur Hardware charge du firmware) 8 bit = 32 Kech/s
(diminue la
•
• 11 bit = 7.8 Kech/s
52
1
1 CA INPUT
ANALOG 4 1
2
CF
2
REF+
REF-
2
CLOCKS
GATE
CLK CLK 16 bit DATA
DECIMATOR
TIMER 256 LATCH
INTERRUPT
Exemple : Filtre passe-bas
•
•
2 blocs SC (ordre 2)
Paramètres programmables 2
s 1
2 f V C 1 S out –
–
–
fréquence de coupure
facteur d'atténuation
gain
(f0) 2 Vin C 2 s C A C B 1 C 4 s C 4 1
2
4
f C C C f C s
2
3
2 s 2 s
• 300 Hz à 250 kHz
2
C1 V in
V out
53
C4
A
C3
CB
C
C
Exemple : Filtre passe-bande
•
•
2 blocs SC (ordre 2)
Paramètres programmables s C s
1 C f C 2 f
B
V s 3 S out 1 – fréquence centrale
– Q
– gain
(fc) s 2 C C V C C s C 1
4
1
2
in 2
A B 4
4 1 f C C C f C s 2 3 2 s 2
• 300 Hz à 250 kHz
2
C1 V in
V out
logBus
Com pBus 54
Ana
C 4
C B
C3
C
CA
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. 55
Fonctions combinées
L'association de plusieurs
Exemples :
Rectifieur
modules permet la réalisation de fonctions complexes.
Demodulateur Multiplieur
Modulation FSK Modulation hétérodyne votre exemple...
56
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
CA Vout = ±
Vin CF
1
un contrôle par signal hardware 1 CA
1
2 Vin Vout
ASign
DBA03 GlobalO ut4 G lobalO ut0 low (no m odulation)
AM od
57
2
CF
Exemple : Rectifieur
SPI (Comparator to Global Output Converter)
PreAmp
Comparator
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
58
Exemple : Démodulateurd'amplitude
SPI (Comparator to Global Output Converter)
Comparator
PreAmp
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
59
Notes d'application (extrait)
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
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!)
60 PSoC Applications
Récapitulatif des caractéristiques (CY8C27xxx)
ƒ Horlogerie ƒ oscillateur interne 24/48MHz, précision ±2.5% ƒ oscillateur interne 32KHz pour Watchdog et Sleep ƒ haute précision avec quartz externe 32KHz ƒ Diviseurs de fréquence pour blocs périphériques
ƒ Entrées/Sorties ƒ sortance 25mA
ƒ sorties avec options pull-up/down, High-Z, Open Drain ƒ jusqu’à 12 entrees analogiques ƒ jusqu’à 4 sorties analogiques 40mA ƒ Interruption
ƒ Générales ƒ Coeur CPU M8, jusqu’à 24MHz
ƒ Multiplieur/Accumulateur cable ƒ Faible consommation ƒ Alim. 3.0V-5.25V (1V avec pompe de charge) ƒ Gamme industrielle
ƒ Mémoire Flash ƒ 16K octets
ƒ 4 niveaux de protection
ƒ Programmable in-situ (ISSP) ƒ programmable par blocs ƒ 50000 effacement/programmation par bloc
ƒ Blocs périphériques ƒ 12 blocs analogiques rail-to-rail configurables :
ƒ ADCs (jusqu’ à 14bits) ƒ DACs (jusqu’ à 8 bits) ƒ Amplis à gain programmables ƒ Filtres, comparateurs
ƒ 8 blocs numeriques configurables ƒ Timers, compteurs, PWM, de 8 à 32 bits ƒ CRC, PRS ƒ UARTs half/full duplex, SPI maitre/esclave ƒ brochage libre
ƒ Autres ressources ƒ Contrôleur I2C maitre/esclave 400KHz
ƒ Watchdog, Sleep timer ƒ Supervision d’alimentation, avec detection de sous-tension ƒ Tensions de référence
ƒ Système de développement ƒ Logiciel téléchargeable gratuit
ƒ Emulateur et programmateur ƒ Emulation temps réel ƒ Points d’arrêt complexes ƒ Mémoire de trace (128Koct)
ƒ Réalisation de fonctions complexes par combinaison !61
La famille PSoC
Récapitulatif des caractéristiques principales
62
CY8C29xxx
CY8C27xxx
CY8C24xxx
CY8C21xxx
Operating Frequency 94KHz-24MHz 94KHz-24MHz 94KHz-24MHz 94KHz-24MHz
Operating voltage 3.0-5.25V 3.0-5.25V 2.4-5.25V 2.4-5.25V
Program Memory (Kbytes) 32 16 4/16 4/8
Data Memory (Bytes) 2K 256 256/1024 256/512
Digital Blocs 24 8 4 4
Analog Blocs 12 12 6 2
I/O pins 24-64 6-44 6-24-48 6-28
Packages DIP,SSOP,MLF DIP,SSOP,MLF DIP,SSOP,MLF SOIC,SSOP,MLF