Cours PSoC Chapitre 1 2019/2020 Architecture d'un PSOC 1.1 Définition PSoC : Programmable System on Chip, est une famille de circuits intégrés introduits au début des années 2000 par Cypress C'est un circuit intégré qui comprend un microcontrôleur et des fonctions logiques et analogiques configurables et interconnectables entre eux. L'idée est de remplacer le microcontrôleur et les circuits d'interfaces analogiques (convertisseurs AN et NA, filtres, amplificateurs opérationnels, etc..) ou numériques (compteurs, timers, uart, interfaces pour bus divers, etc..) associés par un circuit unique. On intègre ainsi un système électronique embarqué complet dans un circuit intégré unique, ou tout au moins, on réduit très considérablement le nombre de composants Le PSoC est un circuit reconfigurable en fonctionnement : on peut par exemple imaginer un système embarqué qui s'arrête de fonctionner 1 à 2 minutes par jour pour se reconfigurer en modem et envoyer toutes les données qu'il a acquises dans la journée. Les fonctions utilisées pour la mesure sont reconfigurées en modem. Hmaied Sarhene Page 1 Cours PSoC 2019/2020 1.2. Applications Elles sont très variées ainsi que le montre ce document Cypress. Hmaied Sarhene Page 2 Cours PSoC 2019/2020 1.3. Architecture d'un PSoC Un PSoC est formé de : -Un cœur Microcontrôleur8-bits, avec • Mémoire Flash • Oscillateurs internes (pas de quartz externe) • Multiplieur/accumulateur • Contrôleur d'interruptions, Sleep Timer, Watchdog Timer • Contrôleur I2C -Des blocs logiques et analogiques banalisés configurables • Blocs logiques configurables en compteurs, timers, UARTs, PWMs, SPI, générateurs CRC, séquences pseudo aléatoires, etc. • Blocs analogiques configurables en amplis-op simples, comparateurs, filtres, CNAs, CANs, modem, etc. 1.3.1. Mémoire Flash -4K-32K octets -architecture extensible à64K octets -espace spécifique (ROM) en mode superviseur Hmaied Sarhene Page 3 Cours PSoC 2019/2020 Mapping mémoire Flash 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 1.3.2. Mémoire RAM -Mémoire paginée, 1 page = 256 octets -Jusqu'à 8 pages -1-8 pages selon la famille Mapping mémoire RAM Hmaied Sarhene Page 4 Cours PSoC 2019/2020 1.3.3. Registres -pour l'accès aux fonctions internes, aux blocs logiques/analogiques et aux E/S -deux bancs de 256registres 1.3.4. Oscillateurs et Horloges Oscillateur interne principal -Fréquence 48MHz -Précision +/-2,5% sans composant externe Hmaied Sarhene Page 5 Cours PSoC 2019/2020 -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 Système d’horlogerie •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 Hmaied Sarhene Page 6 Cours PSoC 2019/2020 1.3.5. 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 1.3.6. PSoC Blocks (exemple CY8C27xxx) Les PSoC Blocks sont des blocs banalisés (8 blocs logiques et 12 blocs analogiques) configurables par l'utilisateur Hmaied Sarhene Page 7 Cours PSoC 2019/2020 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 sélection, le paramétrage et l'interconnexion des Modules s'effectuent graphiquement via le logiciel de développement a- 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 standard : pour toute fonction de type comptage, PWM, etc. comm : idem + fonctions de transmission de type UART, SPI, etc. Cascadables et interconnectables Hmaied Sarhene Page 8 Cours PSoC 2019/2020 *Configuration des blocs logiques *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 generator8, 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) Hmaied Sarhene Page 9 Cours PSoC 2019/2020 I2C software (I2C hardware disponible en ressource standard) IrDA (Receive, Transmit) E2PROM (software) LCD (software) 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 •Routines associées: Timer_write_period, Timer_enable_int, Timer_start, Timer_write_captureval, Timer_read_period, Timer_stop, etc. b-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. Hmaied Sarhene Page 10 Cours PSoC 2019/2020 •Cascadables et interconnectables b-1-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 Exemple : Comparateur Hmaied Sarhene Page 11 Cours PSoC 2019/2020 b-2- Blocs 'Switched Cap' Les résistances sont remplacées par des capacités et des switches i = q/t = fs.q = fs.C.V Or i=V/R donc R=1/fs.C Hmaied Sarhene Page 12 Cours PSoC 2019/2020 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 Exemple : Ampli non inverseur Remarques: Il existe deux types de bloc 'Switched Cap' •2 types: SCA et SCB •Ampli-op programmables •CAN incrémental et Δ−Σ •CNA •Filtres simples et biquad – SCA : entrée biquad – SCB : sortie biquad Hmaied Sarhene Page 13 Cours PSoC 2019/2020 1.3.7. Convertisseur A/N •Convertisseur Delta Sigma 8 bits •1bloc analogique type SC •1bloclogique (timer) •Décimateur Hardware (diminue la charge du firmware) •8 bit = 32 Kech/s •11 bit = 7.8 Kech/s Hmaied Sarhene Page 14 Cours PSoC 2019/2020 Exemple : Filtre passe-bas •2 blocs SC (ordre 2) •Paramètres programmables –fréquence centrale (fc) –Q –gain •300 Hz à 250 kHz Hmaied Sarhene Page 15 Cours PSoC 2019/2020 1.3.8. 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) Hmaied Sarhene Page 16 Cours PSoC 2019/2020 1.3.9. Fonctions combinées 1.4. Modèle de programmation 1.5. 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 Hmaied Sarhene Page 17 Cours PSoC 2019/2020 • 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 1.6. Modes d'adressage • Immédiat Exemple: ADD A, 7 •Direct Exemple: AND Hmaied Sarhene A, [7] Page 18 Cours PSoC 2019/2020 •Indexé Exemple: ADD A, [X+7] •Immédiat indexé Exemple: ADD [X+7], 5 •Indirect post-incrémenté Exemple: MVI A, [7] Hmaied Sarhene Page 19