62
1 P P rogrammable rogrammable S S ystem ystem - - o o n n - - C C hip hip [email protected] / 2006

systeme embarquée

Embed Size (px)

Citation preview

Page 1: systeme embarquée

1

PProgrammablerogrammable

SSystemystem--oonn--CChiphip

[email protected] / 2006

Page 2: systeme embarquée

2

Programmable System on Chip

Un composant associant un microcontrôleuret des fonctions logiques et analogiques configurables

Page 3: systeme embarquée

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

Page 4: systeme embarquée

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

Page 5: systeme embarquée

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

Page 6: systeme embarquée

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.

Page 7: systeme embarquée

7

beaucoup,beaucoup de variantes

Page 8: systeme embarquée

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

!

Page 9: systeme embarquée

9

Sélection/configuration des blocs (PSoC Designer)

Page 10: systeme embarquée

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

!!

Page 11: systeme embarquée

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

Page 12: systeme embarquée

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

Page 13: systeme embarquée

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

Page 14: systeme embarquée

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

!!!!!!!!

Page 15: systeme embarquée

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)

Page 16: systeme embarquée

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

Page 17: systeme embarquée

17

Modes d'adressage

• Immédiat– ADD A, 7– MOV REG[8], 6

'7'AA

OP

Page 18: systeme embarquée

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

Page 19: systeme embarquée

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'

Page 20: systeme embarquée

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

Page 21: systeme embarquée

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'

Page 22: systeme embarquée

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

Page 23: systeme embarquée

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

Page 24: systeme embarquée

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

Page 25: systeme embarquée

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

Page 26: systeme embarquée

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

Page 27: systeme embarquée

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

Page 28: systeme embarquée

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

Page 29: systeme embarquée

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

Page 30: systeme embarquée

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

Page 31: systeme embarquée

31

Mapping mémoire RAM

RAM00

Données système

Données utilisateur

Pop

SP

PilePush

FF

Page 32: systeme embarquée

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

Page 33: systeme embarquée

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

Page 34: systeme embarquée

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

Page 35: systeme embarquée

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

Page 36: systeme embarquée

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)

!

Page 37: systeme embarquée

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

!

Page 38: systeme embarquée

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

Page 39: systeme embarquée

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

Page 40: systeme embarquée

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)

Page 41: systeme embarquée

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.)

Page 42: systeme embarquée

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

Page 43: systeme embarquée

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

Page 44: systeme embarquée

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

Page 45: systeme embarquée

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

Page 46: systeme embarquée

46

Blocs 'Switched Cap'

Les résistances sont remplacées par des capacités et des switches

Φ1 Φ2

Page 47: systeme embarquée

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 =

!!!

Page 48: systeme embarquée

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

!!!

Page 49: systeme embarquée

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

Page 50: systeme embarquée

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

Page 51: systeme embarquée

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

Page 52: systeme embarquée

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

Page 53: systeme embarquée

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

Page 54: systeme embarquée

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

Page 55: systeme embarquée

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.

Page 56: systeme embarquée

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...

Page 57: systeme embarquée

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

Page 58: systeme embarquée

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

Page 59: systeme embarquée

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

Page 60: systeme embarquée

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

Page 61: systeme embarquée

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)

Page 62: systeme embarquée

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