FX2LP contrôleur USB : CY7C68013

Le FX2LP de Cypress est un contrôleur USB fréquemment utilisé pour transférer des données entre un FGPA et un PC, c'est une version basse puissance du FX2.



Catégories :

Connectique - Composant électronique

Page(s) en rapport avec ce sujet :

  • cy7c68013 le 480Mbit maisj'ai utilise les autres... plus petit et moins rapide.... je comprends que la solution controleur externe Cypress soit plus souple..... des peripheriques rapide comme les interface USB /IDE ou USB /SATA..... L'USB envoie des paquets de donnée, pas un octet par ci par là.... (source : abcelectronique)
  • 8Msps USB interface using FT245BM. 420Msps USB interface using CY7C68013...... Dans le chapitre 9.4. le contrôleur USB FTDI FT245BM, opté pour ce.... FX2 - 100S-1.27DS. FX2BA-100SA-1.27R. FX803DW. G18E06050. G18E08050...... d'interface FIFO style FT245BM avec bus de données bi-directionnel et interface "hand-.... (source : epcity)

Le FX2LP (CY7C68013A/14A) de Cypress est un contrôleur USB fréquemment utilisé pour transférer des données entre un FGPA et un PC, c'est une version basse puissance du FX2 (CY7C68013).

Il est fortement intégré et comprend :

Datasheet

Disponible sur le site de Cypress : CY7C68013A/14A

Interface de communication : CyConsole

Pour communiquer avec un PC, il est indispensable d'avoir une interface de communication, pour Windows c'est la CyConsole (Cypress USB Console), disponible sur le site de Cypress à partir de SuiteUSB 1.0 - USB Development tools for Visual C++ 6.0 (2) sous le nom USBDevStudio_1703. exe : CyConsole
Une fois installé une documentation illustrée présentant l'interface (Users'Guide) CyConsole. pdf est disponible dans C :\Program Files\Cypress\USB DevStudio\CyConsole

ATTENTION : Ne pas oublier de modifier le CyUSB. inf pour que le FX2LP soit reconnu (cf : Part 3 du Users'Guide)

Driver : CyUSB. sys

A l'installation de l'interface de communication CyConsole, le driver CyUSB. sys se trouve dans C :\Program Files\Cypress\USB DevStudio\Driver

Schéma bloc

Schéma Bloc du FX2LP

Plus exactement le FX2LP se compose de :

  • 8051 : Microcontrôleur Intel
  • SIE : Smart Interface Engine
  • GPIF : General Programmable Interface
  • FIFO : First In First Out
  • I2C : Inter Integrated Circuit bus
  • ECC : Error Correcting Codes
  • USB2.0 : Transciever
  • RAM : Random Access Memory
  • PLL : Phase-Locked Loop
Signaux externes 
D+/D- : reliés au connecteur USB
Horloge externe : mettre un oscillateur de 24 MHz
Adresses (16) / Données (8)  : sert à connecter une mémoire externe
SCL / SDA : permet d'ajouter une EEPROM I2C
Additional I/O (24)  : permet de programmer les interruptions, timers et USARTs du 8051
Addresses (9) / RDY (6) / CTL (9)  : signaux de contrôle du GPIF
(8) / (16)  : broches multiplexées
soit PB (8) +PD (8)  : ports d'entrée/sortie bidirectionnels
soit FD (16)  : bus de données bidirectionnel GPIF/FIFOS
Différence entre les boîtiers (packages)  

Le schéma bloc du FX2LP montre la version complète du composant (128 pins).

Le Microcontrôleur

C'est un Intel 8051 perfectionné. Il comprend :

Son rôle 
Applique le protocole USB de niveau élevé en faisant des demandes de requêtes à l'hôte (PC), il s'occupe aussi du protocole I2C.
Disponible sans reprogrammation, pour une utilisation standard du FX2LP.
Ce n'est pas lui qui s'occupe du transfert USB (trop rapide pour lui), il permet de programmer l'interface, c'est les fifos qui vont s'occuper de transférer directement les données entre le FX2LP et l'interface externe.

Pour avoir plus de détails sur la configuration des registres et le fonctionnement du Microcontrôleur : EZ-USB TRM (Technical Reference Manual) .

SIE

C'est un moteur d'interface intelligent (Smart Interface Engine) qui décode et encode les données sur D+/D-.
Il lit les signaux différentiels D+/D-, en extrait les données et envoie un paquet d'acquittement (ACK) pour signaler à l'hôte (PC) qu'il a bien reçu les données.
Il procède en sens inverse pour envoyer des données à l'hôte : il lit les données, les met au format USB et les envoie sur D+/D-.

GPIF

C'est une interface programmable (General Programmable Interface) qui sert à générer des signaux de contrôle (CTL), des adresses (GPIFADR) et des données (FD) pour commander un périphérique externe (ASICs, DSPs... ). Il peut aussi attendre un évènement externe sur les broches RDY.
Ces signaux peuvent être programmés par l'utilisateur en modifiant les registres du 8051.
Ainsi le FX2LP fonctionne en mode Maitre (Master). Le GPIF peut être synchronisé par l'horloge interne (30/48 MHz) ou par une horloge externe sur IFCLK.

FIFO

I2C

Il est envisageable d'ajouter une EEPROM I2C. Sa fréquence de fonctionnement sera de 100 ou 400 kHz. L'EEPROM communique avec le 8051 par l'intermédiaire de 2 signaux SCL (clk) et SDA (données).

Le FX2LP gère automatiquement la mémoire I2C. Celle-ci est programmable par l'USB. Si le circuit détecte un boot loader (0xC0 ou 0xC2 sur le premier octet), alors il charge dans sa RAM, le programme contenu dans la mémoire I2C, puis l'exécute.

PLL

C'est une boucle à verrouillage de phase (Phase-Locked Loop), elle permet de multiplier ou diviser la fréquence (24 MHz)  :

La valeur du registre CLKSPD1 :0 détermine la fréquence d'utilisation du 8051.

Énumération

L'énumération est une étape qui permet d'identifier et de configurer le périphérique qui vient juste d'être branché sur le bus USB.
Pendant l'énumération le périphérique apporte à l'hôte (PC) une suite de descripteurs qui permettent son identification complète. L'hôte assigne une adresse unique au périphérique (adressage dynamique) et configure le périphérique.

Le FX2LP dispose déjà de l'énumération, aucun programme n'est indispensable, on passe directement au transfert des données.

Modes et registres par défaut

Valeur des registres par défaut pour le 56 pins
CONFIGURATIONS REGISTRES
CPU Clk = 12 MHz CLKSPD1 :0 = 00
FIFO/GPIF Clk = 30 MHz interne IFCLKSRC = 1
3048 MHZ = 0
Interface Mode (Ports/FIFO/GPIF) = Ports IFCFG1 :0 = 00
Endpoint valides VALID = 1
Endpoint en INPUT DIR = 1
Type de transfert : en block (BULK) TYPE1 :0 = 10
Taille des Buffers Endpoint = 512 octets SIZE = 0
Endpoint doublement bufferisé BUF1 :0 = 10
INT0 et INT1 ne sont pas valide sur le port A INT1 :0 = 00
I²C Clk = 100KHz 400KHZ = 0
Ports A, B et D en INPUT ŒA = 0
ŒB = 0
ŒD = 0

Voir aussi

Liens externes

Recherche sur Amazon (livres) :



Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/FX2LP_contr%C3%B4leur_USB_:_CY7C68013.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 07/04/2010.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu