p s -on-chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · comp...

Post on 18-Aug-2020

8 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programmable

System-on-Chip

TAYARI LASSAAD MAITRE TECHNOLOGUE - ISET GABES Lassaad.tayari@isetn.rnu.tn 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

top related