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

63
Programmable System-on-Chip TAYARI LASSAAD MAITRE TECHNOLOGUE - ISET GABES [email protected] http://systemesembarques.e-monsite.com/

Upload: others

Post on 18-Aug-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

Programmable

System-on-Chip

TAYARI LASSAAD MAITRE TECHNOLOGUE - ISET GABES [email protected] http://systemesembarques.e-monsite.com/

Page 2: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

Un composant associant un microcontrôleur

et des fonctions logiques et analogiques configurables

2

Programmable System on Chip

Page 3: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 4: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 5: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 6: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 7: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

-

7

Page 8: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 9: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

Sélection/configuration des blocs (PSoC Designer)

9

Page 10: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)
Page 11: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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.

Page 12: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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.

Page 13: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 14: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 15: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 16: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 17: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 18: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

A

Modes d'adressage

• Immédiat –

ADD

MOV

A, 7

REG[8], 6

'7'

OP

17

A

Page 19: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 20: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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'

Page 21: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 22: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 23: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 24: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 25: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 26: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 27: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 28: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 29: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 30: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 31: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 32: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

Mapping mémoire RAM

RAM

00

Données système

Données utilisateur

Pop

SP

Pile Push

FF

31

Page 33: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 34: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 35: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 36: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 37: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 38: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 39: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 40: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 41: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 42: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 43: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 44: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 45: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 46: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 47: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

Blocs 'Switched Cap'

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

46

Φ1 Φ2

Page 48: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

Φ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

Page 49: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

Φ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

Page 50: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 51: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 52: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 53: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 54: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 55: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 56: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 57: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 58: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 59: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 60: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 61: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 62: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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

Page 63: P S -on-Chip - e-monsitesystemesembarques.e-monsite.com/medias/files/presentation-psoc... · Comp Comp CNA CAN UART PWM OCK OCK Sélection/configuration des blocs (PSoC Designer)

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